@ampeco/public-api-mcp 3.104.3 → 3.105.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2169,6 +2169,71 @@
2169
2169
  }
2170
2170
  }
2171
2171
  },
2172
+ "evseBulkAssignTariffGroups": {
2173
+ "401": {
2174
+ "schema": {
2175
+ "type": "object",
2176
+ "properties": {
2177
+ "message": {
2178
+ "type": "string"
2179
+ }
2180
+ }
2181
+ }
2182
+ },
2183
+ "403": {
2184
+ "schema": {
2185
+ "type": "object",
2186
+ "properties": {
2187
+ "message": {
2188
+ "type": "string",
2189
+ "default": "This action is unauthorized."
2190
+ }
2191
+ }
2192
+ }
2193
+ },
2194
+ "404": {
2195
+ "schema": {
2196
+ "type": "object",
2197
+ "properties": {
2198
+ "message": {
2199
+ "type": "string"
2200
+ }
2201
+ }
2202
+ }
2203
+ },
2204
+ "422": {
2205
+ "schema": {
2206
+ "type": "object",
2207
+ "required": [
2208
+ "message"
2209
+ ],
2210
+ "properties": {
2211
+ "message": {
2212
+ "type": "string"
2213
+ },
2214
+ "errors": {
2215
+ "type": "object",
2216
+ "additionalProperties": {
2217
+ "type": "array",
2218
+ "items": {
2219
+ "type": "string"
2220
+ }
2221
+ }
2222
+ }
2223
+ }
2224
+ }
2225
+ },
2226
+ "429": {
2227
+ "schema": {
2228
+ "type": "object",
2229
+ "properties": {
2230
+ "message": {
2231
+ "type": "string"
2232
+ }
2233
+ }
2234
+ }
2235
+ }
2236
+ },
2172
2237
  "evseStartChargingWithEvseId": {
2173
2238
  "202": {
2174
2239
  "schema": {
@@ -6279,7 +6344,8 @@
6279
6344
  "items": {
6280
6345
  "anyOf": [
6281
6346
  {
6282
- "title": "Create Booking",
6347
+ "title": "Create Booking Base",
6348
+ "description": "Base properties for create booking request (shared between input and response)",
6283
6349
  "type": "object",
6284
6350
  "properties": {
6285
6351
  "id": {
@@ -6306,7 +6372,7 @@
6306
6372
  },
6307
6373
  "rejectionReason": {
6308
6374
  "type": "string",
6309
- "description": "Reason for rejection (if status is rejected)",
6375
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6310
6376
  "readOnly": true
6311
6377
  },
6312
6378
  "createdAt": {
@@ -6327,79 +6393,194 @@
6327
6393
  "type": "integer",
6328
6394
  "description": "ID of the target location"
6329
6395
  },
6396
+ "externalId": {
6397
+ "type": "string",
6398
+ "maxLength": 255,
6399
+ "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"
6400
+ },
6401
+ "startAt": {
6402
+ "type": "string",
6403
+ "format": "date-time",
6404
+ "description": "Start time of the booking"
6405
+ },
6406
+ "endAt": {
6407
+ "type": "string",
6408
+ "format": "date-time",
6409
+ "description": "End time of the booking"
6410
+ },
6330
6411
  "evseId": {
6331
6412
  "type": "integer",
6332
- "description": "Specific EVSE ID (optional - if not provided, system will choose any available EVSE)"
6413
+ "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"
6333
6414
  },
6334
6415
  "evseCriteria": {
6335
6416
  "type": "object",
6336
- "description": "Criteria for selecting EVSE to be booked, not used if `evseId` is passed",
6417
+ "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",
6337
6418
  "properties": {
6338
6419
  "currentType": {
6339
- "type": "string",
6340
- "enum": [
6341
- "ac",
6342
- "dc"
6420
+ "oneOf": [
6421
+ {
6422
+ "type": "string",
6423
+ "enum": [
6424
+ "ac",
6425
+ "dc"
6426
+ ],
6427
+ "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
6428
+ },
6429
+ {
6430
+ "type": "null"
6431
+ }
6343
6432
  ],
6344
- "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
6433
+ "description": "Required current type (AC or DC). Omitted in response when not specified."
6345
6434
  },
6346
6435
  "minPower": {
6347
6436
  "type": "number",
6348
- "description": "Minimum power requirement (kW)"
6437
+ "description": "Minimum power requirement in kW. Omitted in response when not specified."
6349
6438
  },
6350
6439
  "maxPower": {
6351
6440
  "type": "number",
6352
- "description": "Maximum power requirement (kW)"
6441
+ "description": "Maximum power requirement in kW. Omitted in response when not specified."
6353
6442
  },
6354
6443
  "connectorType": {
6355
- "type": "string",
6356
- "enum": [
6357
- "type1",
6358
- "type2",
6359
- "type3",
6360
- "chademo",
6361
- "ccs1",
6362
- "ccs2",
6363
- "schuko",
6364
- "nacs",
6365
- "cee16",
6366
- "cee32",
6367
- "j1772",
6368
- "inductive",
6369
- "nema-5-20",
6370
- "type-e-french",
6371
- "type-g-british",
6372
- "type-j-swiss",
6373
- "avcon",
6374
- "gb-t-ac",
6375
- "gb-t-dc",
6376
- "chaoji",
6377
- "nema-6-30",
6378
- "nema-6-50"
6444
+ "oneOf": [
6445
+ {
6446
+ "type": "string",
6447
+ "enum": [
6448
+ "type1",
6449
+ "type2",
6450
+ "type3",
6451
+ "chademo",
6452
+ "ccs1",
6453
+ "ccs2",
6454
+ "schuko",
6455
+ "nacs",
6456
+ "cee16",
6457
+ "cee32",
6458
+ "j1772",
6459
+ "inductive",
6460
+ "nema-5-20",
6461
+ "type-e-french",
6462
+ "type-g-british",
6463
+ "type-j-swiss",
6464
+ "avcon",
6465
+ "gb-t-ac",
6466
+ "gb-t-dc",
6467
+ "chaoji",
6468
+ "nema-6-30",
6469
+ "nema-6-50"
6470
+ ],
6471
+ "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"
6472
+ },
6473
+ {
6474
+ "type": "null"
6475
+ }
6379
6476
  ],
6380
- "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"
6477
+ "description": "Required connector type. Omitted in response when not specified."
6381
6478
  }
6382
6479
  }
6383
6480
  },
6384
- "startAt": {
6385
- "type": "string",
6386
- "format": "date-time",
6387
- "description": "Start time of the booking"
6388
- },
6389
- "endAt": {
6390
- "type": "string",
6391
- "format": "date-time",
6392
- "description": "End time of the booking"
6481
+ "parkingSpaceCriteria": {
6482
+ "type": "object",
6483
+ "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",
6484
+ "properties": {
6485
+ "vehicleWeightKg": {
6486
+ "type": "integer",
6487
+ "description": "Vehicle weight in kilograms. Omitted in response when not specified.",
6488
+ "minimum": 1
6489
+ },
6490
+ "vehicleHeightCm": {
6491
+ "type": "integer",
6492
+ "description": "Vehicle height in centimeters. Omitted in response when not specified.",
6493
+ "minimum": 1
6494
+ },
6495
+ "vehicleLengthCm": {
6496
+ "type": "integer",
6497
+ "description": "Vehicle length in centimeters. Omitted in response when not specified.",
6498
+ "minimum": 1
6499
+ },
6500
+ "vehicleWidthCm": {
6501
+ "type": "integer",
6502
+ "description": "Vehicle width in centimeters. Omitted in response when not specified.",
6503
+ "minimum": 1
6504
+ },
6505
+ "vehicleType": {
6506
+ "oneOf": [
6507
+ {
6508
+ "type": "string",
6509
+ "enum": [
6510
+ "two_and_three_wheel_vehicles_and_quadricycles",
6511
+ "passenger_vehicles",
6512
+ "passenger_vehicles_with_trailer",
6513
+ "light_duty_vans",
6514
+ "heavy_duty_tractor_units_without_trailer",
6515
+ "heavy_duty_trucks_without_articulation_point",
6516
+ "heavy_duty_trucks_with_trailer_attached",
6517
+ "buses_or_motor_coaches"
6518
+ ],
6519
+ "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"
6520
+ },
6521
+ {
6522
+ "type": "null"
6523
+ }
6524
+ ],
6525
+ "description": "Required vehicle type. Omitted in response when not specified."
6526
+ },
6527
+ "driveThroughRequired": {
6528
+ "type": "boolean",
6529
+ "description": "Whether parking space must support drive-through charging. Omitted in response when not specified."
6530
+ },
6531
+ "refrigerationOutletRequired": {
6532
+ "type": "boolean",
6533
+ "description": "Whether parking space must have refrigeration outlet. Omitted in response when not specified."
6534
+ },
6535
+ "dangerousGoodsAllowed": {
6536
+ "type": "boolean",
6537
+ "description": "Whether parking space must allow dangerous goods vehicles. Omitted in response when not specified."
6538
+ }
6539
+ }
6393
6540
  },
6394
- "externalId": {
6395
- "type": "string",
6396
- "maxLength": 255,
6397
- "nullable": true,
6398
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
6541
+ "authorizedTokens": {
6542
+ "type": "array",
6543
+ "items": {
6544
+ "type": "object",
6545
+ "properties": {
6546
+ "id": {
6547
+ "type": "integer",
6548
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
6549
+ },
6550
+ "uid": {
6551
+ "type": "string",
6552
+ "description": "Unique identifier of the OCPI token"
6553
+ },
6554
+ "type": {
6555
+ "type": "string",
6556
+ "description": "Type of token (e.g., RFID, APP_USER)"
6557
+ },
6558
+ "contractId": {
6559
+ "type": "string",
6560
+ "description": "Contract identifier associated with the token (optional)"
6561
+ },
6562
+ "emspCountryCode": {
6563
+ "type": "string",
6564
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
6565
+ },
6566
+ "emspPartyId": {
6567
+ "type": "string",
6568
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
6569
+ }
6570
+ },
6571
+ "required": [
6572
+ "id",
6573
+ "uid",
6574
+ "type",
6575
+ "emspCountryCode",
6576
+ "emspPartyId"
6577
+ ]
6578
+ },
6579
+ "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"
6399
6580
  },
6400
6581
  "bookingId": {
6401
6582
  "type": "integer",
6402
- "description": "ID of the created booking (present only if status is approved)"
6583
+ "description": "ID of the created booking.\n\nResponse behavior: Only present when status is \"approved\". Omitted for \"pending\" and \"rejected\" requests.\n"
6403
6584
  }
6404
6585
  },
6405
6586
  "required": [
@@ -6415,7 +6596,8 @@
6415
6596
  ]
6416
6597
  },
6417
6598
  {
6418
- "title": "Update the given Booking",
6599
+ "title": "Update Booking Base",
6600
+ "description": "Base properties for update booking request (shared between input and response)",
6419
6601
  "type": "object",
6420
6602
  "properties": {
6421
6603
  "id": {
@@ -6442,7 +6624,7 @@
6442
6624
  },
6443
6625
  "rejectionReason": {
6444
6626
  "type": "string",
6445
- "description": "Reason for rejection (if status is rejected)",
6627
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6446
6628
  "readOnly": true
6447
6629
  },
6448
6630
  "createdAt": {
@@ -6463,6 +6645,11 @@
6463
6645
  "type": "integer",
6464
6646
  "description": "ID of the user for whom the booking is made"
6465
6647
  },
6648
+ "externalId": {
6649
+ "type": "string",
6650
+ "maxLength": 255,
6651
+ "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"
6652
+ },
6466
6653
  "startAt": {
6467
6654
  "type": "string",
6468
6655
  "format": "date-time",
@@ -6473,11 +6660,45 @@
6473
6660
  "format": "date-time",
6474
6661
  "description": "Updated end time of the booking"
6475
6662
  },
6476
- "externalId": {
6477
- "type": "string",
6478
- "maxLength": 255,
6479
- "nullable": true,
6480
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
6663
+ "authorizedTokens": {
6664
+ "type": "array",
6665
+ "items": {
6666
+ "type": "object",
6667
+ "properties": {
6668
+ "id": {
6669
+ "type": "integer",
6670
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
6671
+ },
6672
+ "uid": {
6673
+ "type": "string",
6674
+ "description": "Unique identifier of the OCPI token"
6675
+ },
6676
+ "type": {
6677
+ "type": "string",
6678
+ "description": "Type of token (e.g., RFID, APP_USER)"
6679
+ },
6680
+ "contractId": {
6681
+ "type": "string",
6682
+ "description": "Contract identifier associated with the token (optional)"
6683
+ },
6684
+ "emspCountryCode": {
6685
+ "type": "string",
6686
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
6687
+ },
6688
+ "emspPartyId": {
6689
+ "type": "string",
6690
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
6691
+ }
6692
+ },
6693
+ "required": [
6694
+ "id",
6695
+ "uid",
6696
+ "type",
6697
+ "emspCountryCode",
6698
+ "emspPartyId"
6699
+ ]
6700
+ },
6701
+ "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"
6481
6702
  }
6482
6703
  },
6483
6704
  "required": [
@@ -6517,7 +6738,7 @@
6517
6738
  },
6518
6739
  "rejectionReason": {
6519
6740
  "type": "string",
6520
- "description": "Reason for rejection (if status is rejected)",
6741
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6521
6742
  "readOnly": true
6522
6743
  },
6523
6744
  "createdAt": {
@@ -6536,9 +6757,8 @@
6536
6757
  },
6537
6758
  "externalId": {
6538
6759
  "type": "string",
6539
- "nullable": true,
6540
6760
  "maxLength": 255,
6541
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
6761
+ "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"
6542
6762
  }
6543
6763
  },
6544
6764
  "required": [
@@ -6644,7 +6864,8 @@
6644
6864
  "data": {
6645
6865
  "anyOf": [
6646
6866
  {
6647
- "title": "Create Booking",
6867
+ "title": "Create Booking Base",
6868
+ "description": "Base properties for create booking request (shared between input and response)",
6648
6869
  "type": "object",
6649
6870
  "properties": {
6650
6871
  "id": {
@@ -6671,7 +6892,7 @@
6671
6892
  },
6672
6893
  "rejectionReason": {
6673
6894
  "type": "string",
6674
- "description": "Reason for rejection (if status is rejected)",
6895
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6675
6896
  "readOnly": true
6676
6897
  },
6677
6898
  "createdAt": {
@@ -6692,79 +6913,194 @@
6692
6913
  "type": "integer",
6693
6914
  "description": "ID of the target location"
6694
6915
  },
6916
+ "externalId": {
6917
+ "type": "string",
6918
+ "maxLength": 255,
6919
+ "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"
6920
+ },
6921
+ "startAt": {
6922
+ "type": "string",
6923
+ "format": "date-time",
6924
+ "description": "Start time of the booking"
6925
+ },
6926
+ "endAt": {
6927
+ "type": "string",
6928
+ "format": "date-time",
6929
+ "description": "End time of the booking"
6930
+ },
6695
6931
  "evseId": {
6696
6932
  "type": "integer",
6697
- "description": "Specific EVSE ID (optional - if not provided, system will choose any available EVSE)"
6933
+ "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"
6698
6934
  },
6699
6935
  "evseCriteria": {
6700
6936
  "type": "object",
6701
- "description": "Criteria for selecting EVSE to be booked, not used if `evseId` is passed",
6937
+ "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",
6702
6938
  "properties": {
6703
6939
  "currentType": {
6704
- "type": "string",
6705
- "enum": [
6706
- "ac",
6707
- "dc"
6940
+ "oneOf": [
6941
+ {
6942
+ "type": "string",
6943
+ "enum": [
6944
+ "ac",
6945
+ "dc"
6946
+ ],
6947
+ "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
6948
+ },
6949
+ {
6950
+ "type": "null"
6951
+ }
6708
6952
  ],
6709
- "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
6953
+ "description": "Required current type (AC or DC). Omitted in response when not specified."
6710
6954
  },
6711
6955
  "minPower": {
6712
6956
  "type": "number",
6713
- "description": "Minimum power requirement (kW)"
6957
+ "description": "Minimum power requirement in kW. Omitted in response when not specified."
6714
6958
  },
6715
6959
  "maxPower": {
6716
6960
  "type": "number",
6717
- "description": "Maximum power requirement (kW)"
6961
+ "description": "Maximum power requirement in kW. Omitted in response when not specified."
6718
6962
  },
6719
6963
  "connectorType": {
6720
- "type": "string",
6721
- "enum": [
6722
- "type1",
6723
- "type2",
6724
- "type3",
6725
- "chademo",
6726
- "ccs1",
6727
- "ccs2",
6728
- "schuko",
6729
- "nacs",
6730
- "cee16",
6731
- "cee32",
6732
- "j1772",
6733
- "inductive",
6734
- "nema-5-20",
6735
- "type-e-french",
6736
- "type-g-british",
6737
- "type-j-swiss",
6738
- "avcon",
6739
- "gb-t-ac",
6740
- "gb-t-dc",
6741
- "chaoji",
6742
- "nema-6-30",
6743
- "nema-6-50"
6964
+ "oneOf": [
6965
+ {
6966
+ "type": "string",
6967
+ "enum": [
6968
+ "type1",
6969
+ "type2",
6970
+ "type3",
6971
+ "chademo",
6972
+ "ccs1",
6973
+ "ccs2",
6974
+ "schuko",
6975
+ "nacs",
6976
+ "cee16",
6977
+ "cee32",
6978
+ "j1772",
6979
+ "inductive",
6980
+ "nema-5-20",
6981
+ "type-e-french",
6982
+ "type-g-british",
6983
+ "type-j-swiss",
6984
+ "avcon",
6985
+ "gb-t-ac",
6986
+ "gb-t-dc",
6987
+ "chaoji",
6988
+ "nema-6-30",
6989
+ "nema-6-50"
6990
+ ],
6991
+ "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"
6992
+ },
6993
+ {
6994
+ "type": "null"
6995
+ }
6744
6996
  ],
6745
- "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"
6997
+ "description": "Required connector type. Omitted in response when not specified."
6746
6998
  }
6747
6999
  }
6748
7000
  },
6749
- "startAt": {
6750
- "type": "string",
6751
- "format": "date-time",
6752
- "description": "Start time of the booking"
6753
- },
6754
- "endAt": {
6755
- "type": "string",
6756
- "format": "date-time",
6757
- "description": "End time of the booking"
7001
+ "parkingSpaceCriteria": {
7002
+ "type": "object",
7003
+ "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",
7004
+ "properties": {
7005
+ "vehicleWeightKg": {
7006
+ "type": "integer",
7007
+ "description": "Vehicle weight in kilograms. Omitted in response when not specified.",
7008
+ "minimum": 1
7009
+ },
7010
+ "vehicleHeightCm": {
7011
+ "type": "integer",
7012
+ "description": "Vehicle height in centimeters. Omitted in response when not specified.",
7013
+ "minimum": 1
7014
+ },
7015
+ "vehicleLengthCm": {
7016
+ "type": "integer",
7017
+ "description": "Vehicle length in centimeters. Omitted in response when not specified.",
7018
+ "minimum": 1
7019
+ },
7020
+ "vehicleWidthCm": {
7021
+ "type": "integer",
7022
+ "description": "Vehicle width in centimeters. Omitted in response when not specified.",
7023
+ "minimum": 1
7024
+ },
7025
+ "vehicleType": {
7026
+ "oneOf": [
7027
+ {
7028
+ "type": "string",
7029
+ "enum": [
7030
+ "two_and_three_wheel_vehicles_and_quadricycles",
7031
+ "passenger_vehicles",
7032
+ "passenger_vehicles_with_trailer",
7033
+ "light_duty_vans",
7034
+ "heavy_duty_tractor_units_without_trailer",
7035
+ "heavy_duty_trucks_without_articulation_point",
7036
+ "heavy_duty_trucks_with_trailer_attached",
7037
+ "buses_or_motor_coaches"
7038
+ ],
7039
+ "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"
7040
+ },
7041
+ {
7042
+ "type": "null"
7043
+ }
7044
+ ],
7045
+ "description": "Required vehicle type. Omitted in response when not specified."
7046
+ },
7047
+ "driveThroughRequired": {
7048
+ "type": "boolean",
7049
+ "description": "Whether parking space must support drive-through charging. Omitted in response when not specified."
7050
+ },
7051
+ "refrigerationOutletRequired": {
7052
+ "type": "boolean",
7053
+ "description": "Whether parking space must have refrigeration outlet. Omitted in response when not specified."
7054
+ },
7055
+ "dangerousGoodsAllowed": {
7056
+ "type": "boolean",
7057
+ "description": "Whether parking space must allow dangerous goods vehicles. Omitted in response when not specified."
7058
+ }
7059
+ }
6758
7060
  },
6759
- "externalId": {
6760
- "type": "string",
6761
- "maxLength": 255,
6762
- "nullable": true,
6763
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7061
+ "authorizedTokens": {
7062
+ "type": "array",
7063
+ "items": {
7064
+ "type": "object",
7065
+ "properties": {
7066
+ "id": {
7067
+ "type": "integer",
7068
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
7069
+ },
7070
+ "uid": {
7071
+ "type": "string",
7072
+ "description": "Unique identifier of the OCPI token"
7073
+ },
7074
+ "type": {
7075
+ "type": "string",
7076
+ "description": "Type of token (e.g., RFID, APP_USER)"
7077
+ },
7078
+ "contractId": {
7079
+ "type": "string",
7080
+ "description": "Contract identifier associated with the token (optional)"
7081
+ },
7082
+ "emspCountryCode": {
7083
+ "type": "string",
7084
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
7085
+ },
7086
+ "emspPartyId": {
7087
+ "type": "string",
7088
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
7089
+ }
7090
+ },
7091
+ "required": [
7092
+ "id",
7093
+ "uid",
7094
+ "type",
7095
+ "emspCountryCode",
7096
+ "emspPartyId"
7097
+ ]
7098
+ },
7099
+ "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"
6764
7100
  },
6765
7101
  "bookingId": {
6766
7102
  "type": "integer",
6767
- "description": "ID of the created booking (present only if status is approved)"
7103
+ "description": "ID of the created booking.\n\nResponse behavior: Only present when status is \"approved\". Omitted for \"pending\" and \"rejected\" requests.\n"
6768
7104
  }
6769
7105
  },
6770
7106
  "required": [
@@ -6780,7 +7116,8 @@
6780
7116
  ]
6781
7117
  },
6782
7118
  {
6783
- "title": "Update the given Booking",
7119
+ "title": "Update Booking Base",
7120
+ "description": "Base properties for update booking request (shared between input and response)",
6784
7121
  "type": "object",
6785
7122
  "properties": {
6786
7123
  "id": {
@@ -6807,7 +7144,7 @@
6807
7144
  },
6808
7145
  "rejectionReason": {
6809
7146
  "type": "string",
6810
- "description": "Reason for rejection (if status is rejected)",
7147
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6811
7148
  "readOnly": true
6812
7149
  },
6813
7150
  "createdAt": {
@@ -6828,6 +7165,11 @@
6828
7165
  "type": "integer",
6829
7166
  "description": "ID of the user for whom the booking is made"
6830
7167
  },
7168
+ "externalId": {
7169
+ "type": "string",
7170
+ "maxLength": 255,
7171
+ "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"
7172
+ },
6831
7173
  "startAt": {
6832
7174
  "type": "string",
6833
7175
  "format": "date-time",
@@ -6838,11 +7180,45 @@
6838
7180
  "format": "date-time",
6839
7181
  "description": "Updated end time of the booking"
6840
7182
  },
6841
- "externalId": {
6842
- "type": "string",
6843
- "maxLength": 255,
6844
- "nullable": true,
6845
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7183
+ "authorizedTokens": {
7184
+ "type": "array",
7185
+ "items": {
7186
+ "type": "object",
7187
+ "properties": {
7188
+ "id": {
7189
+ "type": "integer",
7190
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
7191
+ },
7192
+ "uid": {
7193
+ "type": "string",
7194
+ "description": "Unique identifier of the OCPI token"
7195
+ },
7196
+ "type": {
7197
+ "type": "string",
7198
+ "description": "Type of token (e.g., RFID, APP_USER)"
7199
+ },
7200
+ "contractId": {
7201
+ "type": "string",
7202
+ "description": "Contract identifier associated with the token (optional)"
7203
+ },
7204
+ "emspCountryCode": {
7205
+ "type": "string",
7206
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
7207
+ },
7208
+ "emspPartyId": {
7209
+ "type": "string",
7210
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
7211
+ }
7212
+ },
7213
+ "required": [
7214
+ "id",
7215
+ "uid",
7216
+ "type",
7217
+ "emspCountryCode",
7218
+ "emspPartyId"
7219
+ ]
7220
+ },
7221
+ "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"
6846
7222
  }
6847
7223
  },
6848
7224
  "required": [
@@ -6882,7 +7258,7 @@
6882
7258
  },
6883
7259
  "rejectionReason": {
6884
7260
  "type": "string",
6885
- "description": "Reason for rejection (if status is rejected)",
7261
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6886
7262
  "readOnly": true
6887
7263
  },
6888
7264
  "createdAt": {
@@ -6901,9 +7277,8 @@
6901
7277
  },
6902
7278
  "externalId": {
6903
7279
  "type": "string",
6904
- "nullable": true,
6905
7280
  "maxLength": 255,
6906
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7281
+ "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"
6907
7282
  }
6908
7283
  },
6909
7284
  "required": [
@@ -6992,7 +7367,8 @@
6992
7367
  "data": {
6993
7368
  "anyOf": [
6994
7369
  {
6995
- "title": "Create Booking",
7370
+ "title": "Create Booking Base",
7371
+ "description": "Base properties for create booking request (shared between input and response)",
6996
7372
  "type": "object",
6997
7373
  "properties": {
6998
7374
  "id": {
@@ -7019,7 +7395,7 @@
7019
7395
  },
7020
7396
  "rejectionReason": {
7021
7397
  "type": "string",
7022
- "description": "Reason for rejection (if status is rejected)",
7398
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
7023
7399
  "readOnly": true
7024
7400
  },
7025
7401
  "createdAt": {
@@ -7040,79 +7416,194 @@
7040
7416
  "type": "integer",
7041
7417
  "description": "ID of the target location"
7042
7418
  },
7419
+ "externalId": {
7420
+ "type": "string",
7421
+ "maxLength": 255,
7422
+ "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"
7423
+ },
7424
+ "startAt": {
7425
+ "type": "string",
7426
+ "format": "date-time",
7427
+ "description": "Start time of the booking"
7428
+ },
7429
+ "endAt": {
7430
+ "type": "string",
7431
+ "format": "date-time",
7432
+ "description": "End time of the booking"
7433
+ },
7043
7434
  "evseId": {
7044
7435
  "type": "integer",
7045
- "description": "Specific EVSE ID (optional - if not provided, system will choose any available EVSE)"
7436
+ "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"
7046
7437
  },
7047
7438
  "evseCriteria": {
7048
7439
  "type": "object",
7049
- "description": "Criteria for selecting EVSE to be booked, not used if `evseId` is passed",
7440
+ "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",
7050
7441
  "properties": {
7051
7442
  "currentType": {
7052
- "type": "string",
7053
- "enum": [
7054
- "ac",
7055
- "dc"
7443
+ "oneOf": [
7444
+ {
7445
+ "type": "string",
7446
+ "enum": [
7447
+ "ac",
7448
+ "dc"
7449
+ ],
7450
+ "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
7451
+ },
7452
+ {
7453
+ "type": "null"
7454
+ }
7056
7455
  ],
7057
- "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
7456
+ "description": "Required current type (AC or DC). Omitted in response when not specified."
7058
7457
  },
7059
7458
  "minPower": {
7060
7459
  "type": "number",
7061
- "description": "Minimum power requirement (kW)"
7460
+ "description": "Minimum power requirement in kW. Omitted in response when not specified."
7062
7461
  },
7063
7462
  "maxPower": {
7064
7463
  "type": "number",
7065
- "description": "Maximum power requirement (kW)"
7464
+ "description": "Maximum power requirement in kW. Omitted in response when not specified."
7066
7465
  },
7067
7466
  "connectorType": {
7068
- "type": "string",
7069
- "enum": [
7070
- "type1",
7071
- "type2",
7072
- "type3",
7073
- "chademo",
7074
- "ccs1",
7075
- "ccs2",
7076
- "schuko",
7077
- "nacs",
7078
- "cee16",
7079
- "cee32",
7080
- "j1772",
7081
- "inductive",
7082
- "nema-5-20",
7083
- "type-e-french",
7084
- "type-g-british",
7085
- "type-j-swiss",
7086
- "avcon",
7087
- "gb-t-ac",
7088
- "gb-t-dc",
7089
- "chaoji",
7090
- "nema-6-30",
7091
- "nema-6-50"
7467
+ "oneOf": [
7468
+ {
7469
+ "type": "string",
7470
+ "enum": [
7471
+ "type1",
7472
+ "type2",
7473
+ "type3",
7474
+ "chademo",
7475
+ "ccs1",
7476
+ "ccs2",
7477
+ "schuko",
7478
+ "nacs",
7479
+ "cee16",
7480
+ "cee32",
7481
+ "j1772",
7482
+ "inductive",
7483
+ "nema-5-20",
7484
+ "type-e-french",
7485
+ "type-g-british",
7486
+ "type-j-swiss",
7487
+ "avcon",
7488
+ "gb-t-ac",
7489
+ "gb-t-dc",
7490
+ "chaoji",
7491
+ "nema-6-30",
7492
+ "nema-6-50"
7493
+ ],
7494
+ "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"
7495
+ },
7496
+ {
7497
+ "type": "null"
7498
+ }
7092
7499
  ],
7093
- "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"
7500
+ "description": "Required connector type. Omitted in response when not specified."
7094
7501
  }
7095
7502
  }
7096
7503
  },
7097
- "startAt": {
7098
- "type": "string",
7099
- "format": "date-time",
7100
- "description": "Start time of the booking"
7101
- },
7102
- "endAt": {
7103
- "type": "string",
7104
- "format": "date-time",
7105
- "description": "End time of the booking"
7504
+ "parkingSpaceCriteria": {
7505
+ "type": "object",
7506
+ "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",
7507
+ "properties": {
7508
+ "vehicleWeightKg": {
7509
+ "type": "integer",
7510
+ "description": "Vehicle weight in kilograms. Omitted in response when not specified.",
7511
+ "minimum": 1
7512
+ },
7513
+ "vehicleHeightCm": {
7514
+ "type": "integer",
7515
+ "description": "Vehicle height in centimeters. Omitted in response when not specified.",
7516
+ "minimum": 1
7517
+ },
7518
+ "vehicleLengthCm": {
7519
+ "type": "integer",
7520
+ "description": "Vehicle length in centimeters. Omitted in response when not specified.",
7521
+ "minimum": 1
7522
+ },
7523
+ "vehicleWidthCm": {
7524
+ "type": "integer",
7525
+ "description": "Vehicle width in centimeters. Omitted in response when not specified.",
7526
+ "minimum": 1
7527
+ },
7528
+ "vehicleType": {
7529
+ "oneOf": [
7530
+ {
7531
+ "type": "string",
7532
+ "enum": [
7533
+ "two_and_three_wheel_vehicles_and_quadricycles",
7534
+ "passenger_vehicles",
7535
+ "passenger_vehicles_with_trailer",
7536
+ "light_duty_vans",
7537
+ "heavy_duty_tractor_units_without_trailer",
7538
+ "heavy_duty_trucks_without_articulation_point",
7539
+ "heavy_duty_trucks_with_trailer_attached",
7540
+ "buses_or_motor_coaches"
7541
+ ],
7542
+ "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"
7543
+ },
7544
+ {
7545
+ "type": "null"
7546
+ }
7547
+ ],
7548
+ "description": "Required vehicle type. Omitted in response when not specified."
7549
+ },
7550
+ "driveThroughRequired": {
7551
+ "type": "boolean",
7552
+ "description": "Whether parking space must support drive-through charging. Omitted in response when not specified."
7553
+ },
7554
+ "refrigerationOutletRequired": {
7555
+ "type": "boolean",
7556
+ "description": "Whether parking space must have refrigeration outlet. Omitted in response when not specified."
7557
+ },
7558
+ "dangerousGoodsAllowed": {
7559
+ "type": "boolean",
7560
+ "description": "Whether parking space must allow dangerous goods vehicles. Omitted in response when not specified."
7561
+ }
7562
+ }
7106
7563
  },
7107
- "externalId": {
7108
- "type": "string",
7109
- "maxLength": 255,
7110
- "nullable": true,
7111
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7564
+ "authorizedTokens": {
7565
+ "type": "array",
7566
+ "items": {
7567
+ "type": "object",
7568
+ "properties": {
7569
+ "id": {
7570
+ "type": "integer",
7571
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
7572
+ },
7573
+ "uid": {
7574
+ "type": "string",
7575
+ "description": "Unique identifier of the OCPI token"
7576
+ },
7577
+ "type": {
7578
+ "type": "string",
7579
+ "description": "Type of token (e.g., RFID, APP_USER)"
7580
+ },
7581
+ "contractId": {
7582
+ "type": "string",
7583
+ "description": "Contract identifier associated with the token (optional)"
7584
+ },
7585
+ "emspCountryCode": {
7586
+ "type": "string",
7587
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
7588
+ },
7589
+ "emspPartyId": {
7590
+ "type": "string",
7591
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
7592
+ }
7593
+ },
7594
+ "required": [
7595
+ "id",
7596
+ "uid",
7597
+ "type",
7598
+ "emspCountryCode",
7599
+ "emspPartyId"
7600
+ ]
7601
+ },
7602
+ "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"
7112
7603
  },
7113
7604
  "bookingId": {
7114
7605
  "type": "integer",
7115
- "description": "ID of the created booking (present only if status is approved)"
7606
+ "description": "ID of the created booking.\n\nResponse behavior: Only present when status is \"approved\". Omitted for \"pending\" and \"rejected\" requests.\n"
7116
7607
  }
7117
7608
  },
7118
7609
  "required": [
@@ -7128,7 +7619,8 @@
7128
7619
  ]
7129
7620
  },
7130
7621
  {
7131
- "title": "Update the given Booking",
7622
+ "title": "Update Booking Base",
7623
+ "description": "Base properties for update booking request (shared between input and response)",
7132
7624
  "type": "object",
7133
7625
  "properties": {
7134
7626
  "id": {
@@ -7155,7 +7647,7 @@
7155
7647
  },
7156
7648
  "rejectionReason": {
7157
7649
  "type": "string",
7158
- "description": "Reason for rejection (if status is rejected)",
7650
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
7159
7651
  "readOnly": true
7160
7652
  },
7161
7653
  "createdAt": {
@@ -7176,6 +7668,11 @@
7176
7668
  "type": "integer",
7177
7669
  "description": "ID of the user for whom the booking is made"
7178
7670
  },
7671
+ "externalId": {
7672
+ "type": "string",
7673
+ "maxLength": 255,
7674
+ "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"
7675
+ },
7179
7676
  "startAt": {
7180
7677
  "type": "string",
7181
7678
  "format": "date-time",
@@ -7186,11 +7683,45 @@
7186
7683
  "format": "date-time",
7187
7684
  "description": "Updated end time of the booking"
7188
7685
  },
7189
- "externalId": {
7190
- "type": "string",
7191
- "maxLength": 255,
7192
- "nullable": true,
7193
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7686
+ "authorizedTokens": {
7687
+ "type": "array",
7688
+ "items": {
7689
+ "type": "object",
7690
+ "properties": {
7691
+ "id": {
7692
+ "type": "integer",
7693
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
7694
+ },
7695
+ "uid": {
7696
+ "type": "string",
7697
+ "description": "Unique identifier of the OCPI token"
7698
+ },
7699
+ "type": {
7700
+ "type": "string",
7701
+ "description": "Type of token (e.g., RFID, APP_USER)"
7702
+ },
7703
+ "contractId": {
7704
+ "type": "string",
7705
+ "description": "Contract identifier associated with the token (optional)"
7706
+ },
7707
+ "emspCountryCode": {
7708
+ "type": "string",
7709
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
7710
+ },
7711
+ "emspPartyId": {
7712
+ "type": "string",
7713
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
7714
+ }
7715
+ },
7716
+ "required": [
7717
+ "id",
7718
+ "uid",
7719
+ "type",
7720
+ "emspCountryCode",
7721
+ "emspPartyId"
7722
+ ]
7723
+ },
7724
+ "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"
7194
7725
  }
7195
7726
  },
7196
7727
  "required": [
@@ -7230,7 +7761,7 @@
7230
7761
  },
7231
7762
  "rejectionReason": {
7232
7763
  "type": "string",
7233
- "description": "Reason for rejection (if status is rejected)",
7764
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
7234
7765
  "readOnly": true
7235
7766
  },
7236
7767
  "createdAt": {
@@ -7249,9 +7780,8 @@
7249
7780
  },
7250
7781
  "externalId": {
7251
7782
  "type": "string",
7252
- "nullable": true,
7253
7783
  "maxLength": 255,
7254
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7784
+ "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"
7255
7785
  }
7256
7786
  },
7257
7787
  "required": [
@@ -7329,9 +7859,45 @@
7329
7859
  "type": "integer",
7330
7860
  "description": "ID of the user associated with the booking"
7331
7861
  },
7332
- "ocpiTokenId": {
7333
- "type": "integer",
7334
- "description": "ID of the OCPI token associated with the booking"
7862
+ "authorizedTokens": {
7863
+ "type": "array",
7864
+ "items": {
7865
+ "type": "object",
7866
+ "properties": {
7867
+ "id": {
7868
+ "type": "integer",
7869
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
7870
+ },
7871
+ "uid": {
7872
+ "type": "string",
7873
+ "description": "Unique identifier of the OCPI token"
7874
+ },
7875
+ "type": {
7876
+ "type": "string",
7877
+ "description": "Type of token (e.g., RFID, APP_USER)"
7878
+ },
7879
+ "contractId": {
7880
+ "type": "string",
7881
+ "description": "Contract identifier associated with the token (optional)"
7882
+ },
7883
+ "emspCountryCode": {
7884
+ "type": "string",
7885
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
7886
+ },
7887
+ "emspPartyId": {
7888
+ "type": "string",
7889
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
7890
+ }
7891
+ },
7892
+ "required": [
7893
+ "id",
7894
+ "uid",
7895
+ "type",
7896
+ "emspCountryCode",
7897
+ "emspPartyId"
7898
+ ]
7899
+ },
7900
+ "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)."
7335
7901
  },
7336
7902
  "locationId": {
7337
7903
  "type": "integer",
@@ -7485,9 +8051,45 @@
7485
8051
  "type": "integer",
7486
8052
  "description": "ID of the user associated with the booking"
7487
8053
  },
7488
- "ocpiTokenId": {
7489
- "type": "integer",
7490
- "description": "ID of the OCPI token associated with the booking"
8054
+ "authorizedTokens": {
8055
+ "type": "array",
8056
+ "items": {
8057
+ "type": "object",
8058
+ "properties": {
8059
+ "id": {
8060
+ "type": "integer",
8061
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
8062
+ },
8063
+ "uid": {
8064
+ "type": "string",
8065
+ "description": "Unique identifier of the OCPI token"
8066
+ },
8067
+ "type": {
8068
+ "type": "string",
8069
+ "description": "Type of token (e.g., RFID, APP_USER)"
8070
+ },
8071
+ "contractId": {
8072
+ "type": "string",
8073
+ "description": "Contract identifier associated with the token (optional)"
8074
+ },
8075
+ "emspCountryCode": {
8076
+ "type": "string",
8077
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
8078
+ },
8079
+ "emspPartyId": {
8080
+ "type": "string",
8081
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
8082
+ }
8083
+ },
8084
+ "required": [
8085
+ "id",
8086
+ "uid",
8087
+ "type",
8088
+ "emspCountryCode",
8089
+ "emspPartyId"
8090
+ ]
8091
+ },
8092
+ "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)."
7491
8093
  },
7492
8094
  "locationId": {
7493
8095
  "type": "integer",
@@ -24269,14 +24871,14 @@
24269
24871
  },
24270
24872
  "termType": {
24271
24873
  "type": "string",
24272
- "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",
24874
+ "readOnly": true,
24273
24875
  "enum": [
24274
24876
  "marketing",
24275
24877
  "signup",
24276
24878
  "subscription",
24277
24879
  "top-up"
24278
24880
  ],
24279
- "readOnly": true
24881
+ "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"
24280
24882
  },
24281
24883
  "status": {
24282
24884
  "type": "string",
@@ -44006,6 +44608,10 @@
44006
44608
  "type": "integer",
44007
44609
  "readOnly": true
44008
44610
  },
44611
+ "externalId": {
44612
+ "type": "string",
44613
+ "nullable": true
44614
+ },
44009
44615
  "name": {
44010
44616
  "type": "array",
44011
44617
  "items": {
@@ -44021,7 +44627,7 @@
44021
44627
  }
44022
44628
  }
44023
44629
  },
44024
- "shortDescription": {
44630
+ "description": {
44025
44631
  "type": "array",
44026
44632
  "items": {
44027
44633
  "type": "object",
@@ -44036,7 +44642,7 @@
44036
44642
  }
44037
44643
  }
44038
44644
  },
44039
- "description": {
44645
+ "shortDescription": {
44040
44646
  "type": "array",
44041
44647
  "items": {
44042
44648
  "type": "object",
@@ -44066,51 +44672,6 @@
44066
44672
  }
44067
44673
  }
44068
44674
  },
44069
- "locationImage": {
44070
- "type": "object",
44071
- "properties": {
44072
- "original": {
44073
- "type": "string",
44074
- "description": "URL to the original image"
44075
- },
44076
- "thumbnail": {
44077
- "type": "string",
44078
- "description": "URL to a thumbnail image"
44079
- },
44080
- "mimeType": {
44081
- "type": "string"
44082
- }
44083
- },
44084
- "required": [
44085
- "original",
44086
- "mimeType"
44087
- ]
44088
- },
44089
- "images": {
44090
- "type": "array",
44091
- "items": {
44092
- "type": "object",
44093
- "properties": {
44094
- "original": {
44095
- "type": "string",
44096
- "description": "URL to the original image"
44097
- },
44098
- "thumbnail": {
44099
- "type": "string",
44100
- "description": "URL to a thumbnail image"
44101
- },
44102
- "mimeType": {
44103
- "type": "string"
44104
- }
44105
- },
44106
- "required": [
44107
- "original",
44108
- "mimeType"
44109
- ]
44110
- },
44111
- "readOnly": true,
44112
- "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
44113
- },
44114
44675
  "geoposition": {
44115
44676
  "type": "object",
44116
44677
  "properties": {
@@ -44604,6 +45165,119 @@
44604
45165
  "type": "string",
44605
45166
  "nullable": true
44606
45167
  },
45168
+ "timezone": {
45169
+ "type": "string",
45170
+ "nullable": true,
45171
+ "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
45172
+ },
45173
+ "parkingType": {
45174
+ "type": "string",
45175
+ "nullable": true,
45176
+ "enum": [
45177
+ "ALONG_MOTORWAY",
45178
+ "PARKING_GARAGE",
45179
+ "PARKING_LOT",
45180
+ "ON_DRIVEWAY",
45181
+ "ON_STREET",
45182
+ "UNDERGROUND_GARAGE"
45183
+ ],
45184
+ "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\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"
45185
+ },
45186
+ "accessMethods": {
45187
+ "type": "array",
45188
+ "nullable": true,
45189
+ "items": {
45190
+ "type": "string",
45191
+ "enum": [
45192
+ "OPEN",
45193
+ "TOKEN",
45194
+ "LICENSE_PLATE",
45195
+ "ACCESS_CODE",
45196
+ "INTERCOM",
45197
+ "PARKING_TICKET"
45198
+ ]
45199
+ },
45200
+ "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",
45201
+ "example": [
45202
+ "OPEN",
45203
+ "TOKEN"
45204
+ ]
45205
+ },
45206
+ "facilities": {
45207
+ "type": "array",
45208
+ "nullable": true,
45209
+ "items": {
45210
+ "type": "string",
45211
+ "enum": [
45212
+ "AIRPORT",
45213
+ "BIKE_SHARING",
45214
+ "BUS_STOP",
45215
+ "CAFE",
45216
+ "CARPOOL_PARKING",
45217
+ "FUEL_STATION",
45218
+ "HOTEL",
45219
+ "MALL",
45220
+ "METRO_STATION",
45221
+ "MUSEUM",
45222
+ "NATURE",
45223
+ "PARKING_LOT",
45224
+ "RECREATION_AREA",
45225
+ "RESTAURANT",
45226
+ "SPORT",
45227
+ "SUPERMARKET",
45228
+ "TAXI_STAND",
45229
+ "TRAIN_STATION",
45230
+ "TRAM_STOP",
45231
+ "WIFI"
45232
+ ]
45233
+ },
45234
+ "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\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"
45235
+ },
45236
+ "locationImage": {
45237
+ "type": "object",
45238
+ "properties": {
45239
+ "original": {
45240
+ "type": "string",
45241
+ "description": "URL to the original image"
45242
+ },
45243
+ "thumbnail": {
45244
+ "type": "string",
45245
+ "description": "URL to a thumbnail image"
45246
+ },
45247
+ "mimeType": {
45248
+ "type": "string"
45249
+ }
45250
+ },
45251
+ "required": [
45252
+ "original",
45253
+ "mimeType"
45254
+ ]
45255
+ },
45256
+ "images": {
45257
+ "type": "array",
45258
+ "items": {
45259
+ "type": "object",
45260
+ "properties": {
45261
+ "original": {
45262
+ "type": "string",
45263
+ "description": "URL to the original image"
45264
+ },
45265
+ "thumbnail": {
45266
+ "type": "string",
45267
+ "description": "URL to a thumbnail image"
45268
+ },
45269
+ "mimeType": {
45270
+ "type": "string"
45271
+ }
45272
+ },
45273
+ "required": [
45274
+ "original",
45275
+ "mimeType"
45276
+ ]
45277
+ },
45278
+ "readOnly": true,
45279
+ "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
45280
+ },
44607
45281
  "workingHours": {
44608
45282
  "type": "object",
44609
45283
  "properties": {
@@ -44798,25 +45472,6 @@
44798
45472
  }
44799
45473
  }
44800
45474
  },
44801
- "timezone": {
44802
- "type": "string",
44803
- "nullable": true,
44804
- "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
44805
- },
44806
- "externalId": {
44807
- "type": "string",
44808
- "nullable": true
44809
- },
44810
- "roamingOperatorId": {
44811
- "description": "For roaming Locations, the ID of the roaming operator is provided.",
44812
- "type": "integer"
44813
- },
44814
- "lastUpdatedAt": {
44815
- "type": "string",
44816
- "format": "date-time",
44817
- "readOnly": true,
44818
- "description": "ISO 8601 formatted date"
44819
- },
44820
45475
  "chargingZones": {
44821
45476
  "type": "array",
44822
45477
  "readOnly": true,
@@ -44886,11 +45541,9 @@
44886
45541
  },
44887
45542
  "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
44888
45543
  },
44889
- "externalAppData": {
44890
- "description": "Used to hold any external application data related to the session.",
44891
- "type": "object",
44892
- "nullable": true,
44893
- "additionalProperties": true
45544
+ "roamingOperatorId": {
45545
+ "description": "For roaming Locations, the ID of the roaming operator is provided.",
45546
+ "type": "integer"
44894
45547
  },
44895
45548
  "roaming": {
44896
45549
  "type": "object",
@@ -44932,6 +45585,18 @@
44932
45585
  "type": "string"
44933
45586
  }
44934
45587
  },
45588
+ "externalAppData": {
45589
+ "description": "Used to hold any external application data related to the session.",
45590
+ "type": "object",
45591
+ "nullable": true,
45592
+ "additionalProperties": true
45593
+ },
45594
+ "lastUpdatedAt": {
45595
+ "type": "string",
45596
+ "format": "date-time",
45597
+ "readOnly": true,
45598
+ "description": "ISO 8601 formatted date"
45599
+ },
44935
45600
  "status": {
44936
45601
  "deprecated": true,
44937
45602
  "type": "string",
@@ -44939,25 +45604,6 @@
44939
45604
  "enabled",
44940
45605
  "disabled"
44941
45606
  ]
44942
- },
44943
- "accessMethods": {
44944
- "type": "array",
44945
- "items": {
44946
- "type": "string",
44947
- "enum": [
44948
- "OPEN",
44949
- "TOKEN",
44950
- "LICENSE_PLATE",
44951
- "ACCESS_CODE",
44952
- "INTERCOM",
44953
- "PARKING_TICKET"
44954
- ]
44955
- },
44956
- "description": "Physical access methods available at this location. Multiple methods can be selected if the site supports different access types.\n\n**Response behavior**: Field is omitted from response when no access methods are configured.\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",
44957
- "example": [
44958
- "OPEN",
44959
- "TOKEN"
44960
- ]
44961
45607
  }
44962
45608
  }
44963
45609
  }
@@ -45075,6 +45721,10 @@
45075
45721
  "type": "integer",
45076
45722
  "readOnly": true
45077
45723
  },
45724
+ "externalId": {
45725
+ "type": "string",
45726
+ "nullable": true
45727
+ },
45078
45728
  "name": {
45079
45729
  "type": "array",
45080
45730
  "items": {
@@ -45090,7 +45740,7 @@
45090
45740
  }
45091
45741
  }
45092
45742
  },
45093
- "shortDescription": {
45743
+ "description": {
45094
45744
  "type": "array",
45095
45745
  "items": {
45096
45746
  "type": "object",
@@ -45105,7 +45755,7 @@
45105
45755
  }
45106
45756
  }
45107
45757
  },
45108
- "description": {
45758
+ "shortDescription": {
45109
45759
  "type": "array",
45110
45760
  "items": {
45111
45761
  "type": "object",
@@ -45135,51 +45785,6 @@
45135
45785
  }
45136
45786
  }
45137
45787
  },
45138
- "locationImage": {
45139
- "type": "object",
45140
- "properties": {
45141
- "original": {
45142
- "type": "string",
45143
- "description": "URL to the original image"
45144
- },
45145
- "thumbnail": {
45146
- "type": "string",
45147
- "description": "URL to a thumbnail image"
45148
- },
45149
- "mimeType": {
45150
- "type": "string"
45151
- }
45152
- },
45153
- "required": [
45154
- "original",
45155
- "mimeType"
45156
- ]
45157
- },
45158
- "images": {
45159
- "type": "array",
45160
- "items": {
45161
- "type": "object",
45162
- "properties": {
45163
- "original": {
45164
- "type": "string",
45165
- "description": "URL to the original image"
45166
- },
45167
- "thumbnail": {
45168
- "type": "string",
45169
- "description": "URL to a thumbnail image"
45170
- },
45171
- "mimeType": {
45172
- "type": "string"
45173
- }
45174
- },
45175
- "required": [
45176
- "original",
45177
- "mimeType"
45178
- ]
45179
- },
45180
- "readOnly": true,
45181
- "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
45182
- },
45183
45788
  "geoposition": {
45184
45789
  "type": "object",
45185
45790
  "properties": {
@@ -45673,6 +46278,119 @@
45673
46278
  "type": "string",
45674
46279
  "nullable": true
45675
46280
  },
46281
+ "timezone": {
46282
+ "type": "string",
46283
+ "nullable": true,
46284
+ "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
46285
+ },
46286
+ "parkingType": {
46287
+ "type": "string",
46288
+ "nullable": true,
46289
+ "enum": [
46290
+ "ALONG_MOTORWAY",
46291
+ "PARKING_GARAGE",
46292
+ "PARKING_LOT",
46293
+ "ON_DRIVEWAY",
46294
+ "ON_STREET",
46295
+ "UNDERGROUND_GARAGE"
46296
+ ],
46297
+ "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\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"
46298
+ },
46299
+ "accessMethods": {
46300
+ "type": "array",
46301
+ "nullable": true,
46302
+ "items": {
46303
+ "type": "string",
46304
+ "enum": [
46305
+ "OPEN",
46306
+ "TOKEN",
46307
+ "LICENSE_PLATE",
46308
+ "ACCESS_CODE",
46309
+ "INTERCOM",
46310
+ "PARKING_TICKET"
46311
+ ]
46312
+ },
46313
+ "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",
46314
+ "example": [
46315
+ "OPEN",
46316
+ "TOKEN"
46317
+ ]
46318
+ },
46319
+ "facilities": {
46320
+ "type": "array",
46321
+ "nullable": true,
46322
+ "items": {
46323
+ "type": "string",
46324
+ "enum": [
46325
+ "AIRPORT",
46326
+ "BIKE_SHARING",
46327
+ "BUS_STOP",
46328
+ "CAFE",
46329
+ "CARPOOL_PARKING",
46330
+ "FUEL_STATION",
46331
+ "HOTEL",
46332
+ "MALL",
46333
+ "METRO_STATION",
46334
+ "MUSEUM",
46335
+ "NATURE",
46336
+ "PARKING_LOT",
46337
+ "RECREATION_AREA",
46338
+ "RESTAURANT",
46339
+ "SPORT",
46340
+ "SUPERMARKET",
46341
+ "TAXI_STAND",
46342
+ "TRAIN_STATION",
46343
+ "TRAM_STOP",
46344
+ "WIFI"
46345
+ ]
46346
+ },
46347
+ "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\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"
46348
+ },
46349
+ "locationImage": {
46350
+ "type": "object",
46351
+ "properties": {
46352
+ "original": {
46353
+ "type": "string",
46354
+ "description": "URL to the original image"
46355
+ },
46356
+ "thumbnail": {
46357
+ "type": "string",
46358
+ "description": "URL to a thumbnail image"
46359
+ },
46360
+ "mimeType": {
46361
+ "type": "string"
46362
+ }
46363
+ },
46364
+ "required": [
46365
+ "original",
46366
+ "mimeType"
46367
+ ]
46368
+ },
46369
+ "images": {
46370
+ "type": "array",
46371
+ "items": {
46372
+ "type": "object",
46373
+ "properties": {
46374
+ "original": {
46375
+ "type": "string",
46376
+ "description": "URL to the original image"
46377
+ },
46378
+ "thumbnail": {
46379
+ "type": "string",
46380
+ "description": "URL to a thumbnail image"
46381
+ },
46382
+ "mimeType": {
46383
+ "type": "string"
46384
+ }
46385
+ },
46386
+ "required": [
46387
+ "original",
46388
+ "mimeType"
46389
+ ]
46390
+ },
46391
+ "readOnly": true,
46392
+ "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
46393
+ },
45676
46394
  "workingHours": {
45677
46395
  "type": "object",
45678
46396
  "properties": {
@@ -45867,25 +46585,6 @@
45867
46585
  }
45868
46586
  }
45869
46587
  },
45870
- "timezone": {
45871
- "type": "string",
45872
- "nullable": true,
45873
- "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
45874
- },
45875
- "externalId": {
45876
- "type": "string",
45877
- "nullable": true
45878
- },
45879
- "roamingOperatorId": {
45880
- "description": "For roaming Locations, the ID of the roaming operator is provided.",
45881
- "type": "integer"
45882
- },
45883
- "lastUpdatedAt": {
45884
- "type": "string",
45885
- "format": "date-time",
45886
- "readOnly": true,
45887
- "description": "ISO 8601 formatted date"
45888
- },
45889
46588
  "chargingZones": {
45890
46589
  "type": "array",
45891
46590
  "readOnly": true,
@@ -45955,11 +46654,9 @@
45955
46654
  },
45956
46655
  "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
45957
46656
  },
45958
- "externalAppData": {
45959
- "description": "Used to hold any external application data related to the session.",
45960
- "type": "object",
45961
- "nullable": true,
45962
- "additionalProperties": true
46657
+ "roamingOperatorId": {
46658
+ "description": "For roaming Locations, the ID of the roaming operator is provided.",
46659
+ "type": "integer"
45963
46660
  },
45964
46661
  "roaming": {
45965
46662
  "type": "object",
@@ -46001,6 +46698,18 @@
46001
46698
  "type": "string"
46002
46699
  }
46003
46700
  },
46701
+ "externalAppData": {
46702
+ "description": "Used to hold any external application data related to the session.",
46703
+ "type": "object",
46704
+ "nullable": true,
46705
+ "additionalProperties": true
46706
+ },
46707
+ "lastUpdatedAt": {
46708
+ "type": "string",
46709
+ "format": "date-time",
46710
+ "readOnly": true,
46711
+ "description": "ISO 8601 formatted date"
46712
+ },
46004
46713
  "status": {
46005
46714
  "deprecated": true,
46006
46715
  "type": "string",
@@ -46008,25 +46717,6 @@
46008
46717
  "enabled",
46009
46718
  "disabled"
46010
46719
  ]
46011
- },
46012
- "accessMethods": {
46013
- "type": "array",
46014
- "items": {
46015
- "type": "string",
46016
- "enum": [
46017
- "OPEN",
46018
- "TOKEN",
46019
- "LICENSE_PLATE",
46020
- "ACCESS_CODE",
46021
- "INTERCOM",
46022
- "PARKING_TICKET"
46023
- ]
46024
- },
46025
- "description": "Physical access methods available at this location. Multiple methods can be selected if the site supports different access types.\n\n**Response behavior**: Field is omitted from response when no access methods are configured.\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",
46026
- "example": [
46027
- "OPEN",
46028
- "TOKEN"
46029
- ]
46030
46720
  }
46031
46721
  }
46032
46722
  }
@@ -46117,6 +46807,10 @@
46117
46807
  "type": "integer",
46118
46808
  "readOnly": true
46119
46809
  },
46810
+ "externalId": {
46811
+ "type": "string",
46812
+ "nullable": true
46813
+ },
46120
46814
  "name": {
46121
46815
  "type": "array",
46122
46816
  "items": {
@@ -46132,7 +46826,7 @@
46132
46826
  }
46133
46827
  }
46134
46828
  },
46135
- "shortDescription": {
46829
+ "description": {
46136
46830
  "type": "array",
46137
46831
  "items": {
46138
46832
  "type": "object",
@@ -46147,7 +46841,7 @@
46147
46841
  }
46148
46842
  }
46149
46843
  },
46150
- "description": {
46844
+ "shortDescription": {
46151
46845
  "type": "array",
46152
46846
  "items": {
46153
46847
  "type": "object",
@@ -46177,51 +46871,6 @@
46177
46871
  }
46178
46872
  }
46179
46873
  },
46180
- "locationImage": {
46181
- "type": "object",
46182
- "properties": {
46183
- "original": {
46184
- "type": "string",
46185
- "description": "URL to the original image"
46186
- },
46187
- "thumbnail": {
46188
- "type": "string",
46189
- "description": "URL to a thumbnail image"
46190
- },
46191
- "mimeType": {
46192
- "type": "string"
46193
- }
46194
- },
46195
- "required": [
46196
- "original",
46197
- "mimeType"
46198
- ]
46199
- },
46200
- "images": {
46201
- "type": "array",
46202
- "items": {
46203
- "type": "object",
46204
- "properties": {
46205
- "original": {
46206
- "type": "string",
46207
- "description": "URL to the original image"
46208
- },
46209
- "thumbnail": {
46210
- "type": "string",
46211
- "description": "URL to a thumbnail image"
46212
- },
46213
- "mimeType": {
46214
- "type": "string"
46215
- }
46216
- },
46217
- "required": [
46218
- "original",
46219
- "mimeType"
46220
- ]
46221
- },
46222
- "readOnly": true,
46223
- "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
46224
- },
46225
46874
  "geoposition": {
46226
46875
  "type": "object",
46227
46876
  "properties": {
@@ -46715,6 +47364,119 @@
46715
47364
  "type": "string",
46716
47365
  "nullable": true
46717
47366
  },
47367
+ "timezone": {
47368
+ "type": "string",
47369
+ "nullable": true,
47370
+ "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
47371
+ },
47372
+ "parkingType": {
47373
+ "type": "string",
47374
+ "nullable": true,
47375
+ "enum": [
47376
+ "ALONG_MOTORWAY",
47377
+ "PARKING_GARAGE",
47378
+ "PARKING_LOT",
47379
+ "ON_DRIVEWAY",
47380
+ "ON_STREET",
47381
+ "UNDERGROUND_GARAGE"
47382
+ ],
47383
+ "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\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"
47384
+ },
47385
+ "accessMethods": {
47386
+ "type": "array",
47387
+ "nullable": true,
47388
+ "items": {
47389
+ "type": "string",
47390
+ "enum": [
47391
+ "OPEN",
47392
+ "TOKEN",
47393
+ "LICENSE_PLATE",
47394
+ "ACCESS_CODE",
47395
+ "INTERCOM",
47396
+ "PARKING_TICKET"
47397
+ ]
47398
+ },
47399
+ "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",
47400
+ "example": [
47401
+ "OPEN",
47402
+ "TOKEN"
47403
+ ]
47404
+ },
47405
+ "facilities": {
47406
+ "type": "array",
47407
+ "nullable": true,
47408
+ "items": {
47409
+ "type": "string",
47410
+ "enum": [
47411
+ "AIRPORT",
47412
+ "BIKE_SHARING",
47413
+ "BUS_STOP",
47414
+ "CAFE",
47415
+ "CARPOOL_PARKING",
47416
+ "FUEL_STATION",
47417
+ "HOTEL",
47418
+ "MALL",
47419
+ "METRO_STATION",
47420
+ "MUSEUM",
47421
+ "NATURE",
47422
+ "PARKING_LOT",
47423
+ "RECREATION_AREA",
47424
+ "RESTAURANT",
47425
+ "SPORT",
47426
+ "SUPERMARKET",
47427
+ "TAXI_STAND",
47428
+ "TRAIN_STATION",
47429
+ "TRAM_STOP",
47430
+ "WIFI"
47431
+ ]
47432
+ },
47433
+ "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\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"
47434
+ },
47435
+ "locationImage": {
47436
+ "type": "object",
47437
+ "properties": {
47438
+ "original": {
47439
+ "type": "string",
47440
+ "description": "URL to the original image"
47441
+ },
47442
+ "thumbnail": {
47443
+ "type": "string",
47444
+ "description": "URL to a thumbnail image"
47445
+ },
47446
+ "mimeType": {
47447
+ "type": "string"
47448
+ }
47449
+ },
47450
+ "required": [
47451
+ "original",
47452
+ "mimeType"
47453
+ ]
47454
+ },
47455
+ "images": {
47456
+ "type": "array",
47457
+ "items": {
47458
+ "type": "object",
47459
+ "properties": {
47460
+ "original": {
47461
+ "type": "string",
47462
+ "description": "URL to the original image"
47463
+ },
47464
+ "thumbnail": {
47465
+ "type": "string",
47466
+ "description": "URL to a thumbnail image"
47467
+ },
47468
+ "mimeType": {
47469
+ "type": "string"
47470
+ }
47471
+ },
47472
+ "required": [
47473
+ "original",
47474
+ "mimeType"
47475
+ ]
47476
+ },
47477
+ "readOnly": true,
47478
+ "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
47479
+ },
46718
47480
  "workingHours": {
46719
47481
  "type": "object",
46720
47482
  "properties": {
@@ -46909,25 +47671,6 @@
46909
47671
  }
46910
47672
  }
46911
47673
  },
46912
- "timezone": {
46913
- "type": "string",
46914
- "nullable": true,
46915
- "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
46916
- },
46917
- "externalId": {
46918
- "type": "string",
46919
- "nullable": true
46920
- },
46921
- "roamingOperatorId": {
46922
- "description": "For roaming Locations, the ID of the roaming operator is provided.",
46923
- "type": "integer"
46924
- },
46925
- "lastUpdatedAt": {
46926
- "type": "string",
46927
- "format": "date-time",
46928
- "readOnly": true,
46929
- "description": "ISO 8601 formatted date"
46930
- },
46931
47674
  "chargingZones": {
46932
47675
  "type": "array",
46933
47676
  "readOnly": true,
@@ -46997,11 +47740,9 @@
46997
47740
  },
46998
47741
  "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
46999
47742
  },
47000
- "externalAppData": {
47001
- "description": "Used to hold any external application data related to the session.",
47002
- "type": "object",
47003
- "nullable": true,
47004
- "additionalProperties": true
47743
+ "roamingOperatorId": {
47744
+ "description": "For roaming Locations, the ID of the roaming operator is provided.",
47745
+ "type": "integer"
47005
47746
  },
47006
47747
  "roaming": {
47007
47748
  "type": "object",
@@ -47043,6 +47784,18 @@
47043
47784
  "type": "string"
47044
47785
  }
47045
47786
  },
47787
+ "externalAppData": {
47788
+ "description": "Used to hold any external application data related to the session.",
47789
+ "type": "object",
47790
+ "nullable": true,
47791
+ "additionalProperties": true
47792
+ },
47793
+ "lastUpdatedAt": {
47794
+ "type": "string",
47795
+ "format": "date-time",
47796
+ "readOnly": true,
47797
+ "description": "ISO 8601 formatted date"
47798
+ },
47046
47799
  "status": {
47047
47800
  "deprecated": true,
47048
47801
  "type": "string",
@@ -47050,25 +47803,6 @@
47050
47803
  "enabled",
47051
47804
  "disabled"
47052
47805
  ]
47053
- },
47054
- "accessMethods": {
47055
- "type": "array",
47056
- "items": {
47057
- "type": "string",
47058
- "enum": [
47059
- "OPEN",
47060
- "TOKEN",
47061
- "LICENSE_PLATE",
47062
- "ACCESS_CODE",
47063
- "INTERCOM",
47064
- "PARKING_TICKET"
47065
- ]
47066
- },
47067
- "description": "Physical access methods available at this location. Multiple methods can be selected if the site supports different access types.\n\n**Response behavior**: Field is omitted from response when no access methods are configured.\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",
47068
- "example": [
47069
- "OPEN",
47070
- "TOKEN"
47071
- ]
47072
47806
  }
47073
47807
  }
47074
47808
  }
@@ -47180,6 +47914,10 @@
47180
47914
  "type": "integer",
47181
47915
  "readOnly": true
47182
47916
  },
47917
+ "externalId": {
47918
+ "type": "string",
47919
+ "nullable": true
47920
+ },
47183
47921
  "name": {
47184
47922
  "type": "array",
47185
47923
  "items": {
@@ -47195,7 +47933,7 @@
47195
47933
  }
47196
47934
  }
47197
47935
  },
47198
- "shortDescription": {
47936
+ "description": {
47199
47937
  "type": "array",
47200
47938
  "items": {
47201
47939
  "type": "object",
@@ -47210,7 +47948,7 @@
47210
47948
  }
47211
47949
  }
47212
47950
  },
47213
- "description": {
47951
+ "shortDescription": {
47214
47952
  "type": "array",
47215
47953
  "items": {
47216
47954
  "type": "object",
@@ -47240,51 +47978,6 @@
47240
47978
  }
47241
47979
  }
47242
47980
  },
47243
- "locationImage": {
47244
- "type": "object",
47245
- "properties": {
47246
- "original": {
47247
- "type": "string",
47248
- "description": "URL to the original image"
47249
- },
47250
- "thumbnail": {
47251
- "type": "string",
47252
- "description": "URL to a thumbnail image"
47253
- },
47254
- "mimeType": {
47255
- "type": "string"
47256
- }
47257
- },
47258
- "required": [
47259
- "original",
47260
- "mimeType"
47261
- ]
47262
- },
47263
- "images": {
47264
- "type": "array",
47265
- "items": {
47266
- "type": "object",
47267
- "properties": {
47268
- "original": {
47269
- "type": "string",
47270
- "description": "URL to the original image"
47271
- },
47272
- "thumbnail": {
47273
- "type": "string",
47274
- "description": "URL to a thumbnail image"
47275
- },
47276
- "mimeType": {
47277
- "type": "string"
47278
- }
47279
- },
47280
- "required": [
47281
- "original",
47282
- "mimeType"
47283
- ]
47284
- },
47285
- "readOnly": true,
47286
- "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
47287
- },
47288
47981
  "geoposition": {
47289
47982
  "type": "object",
47290
47983
  "properties": {
@@ -47778,6 +48471,119 @@
47778
48471
  "type": "string",
47779
48472
  "nullable": true
47780
48473
  },
48474
+ "timezone": {
48475
+ "type": "string",
48476
+ "nullable": true,
48477
+ "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
48478
+ },
48479
+ "parkingType": {
48480
+ "type": "string",
48481
+ "nullable": true,
48482
+ "enum": [
48483
+ "ALONG_MOTORWAY",
48484
+ "PARKING_GARAGE",
48485
+ "PARKING_LOT",
48486
+ "ON_DRIVEWAY",
48487
+ "ON_STREET",
48488
+ "UNDERGROUND_GARAGE"
48489
+ ],
48490
+ "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\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"
48491
+ },
48492
+ "accessMethods": {
48493
+ "type": "array",
48494
+ "nullable": true,
48495
+ "items": {
48496
+ "type": "string",
48497
+ "enum": [
48498
+ "OPEN",
48499
+ "TOKEN",
48500
+ "LICENSE_PLATE",
48501
+ "ACCESS_CODE",
48502
+ "INTERCOM",
48503
+ "PARKING_TICKET"
48504
+ ]
48505
+ },
48506
+ "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",
48507
+ "example": [
48508
+ "OPEN",
48509
+ "TOKEN"
48510
+ ]
48511
+ },
48512
+ "facilities": {
48513
+ "type": "array",
48514
+ "nullable": true,
48515
+ "items": {
48516
+ "type": "string",
48517
+ "enum": [
48518
+ "AIRPORT",
48519
+ "BIKE_SHARING",
48520
+ "BUS_STOP",
48521
+ "CAFE",
48522
+ "CARPOOL_PARKING",
48523
+ "FUEL_STATION",
48524
+ "HOTEL",
48525
+ "MALL",
48526
+ "METRO_STATION",
48527
+ "MUSEUM",
48528
+ "NATURE",
48529
+ "PARKING_LOT",
48530
+ "RECREATION_AREA",
48531
+ "RESTAURANT",
48532
+ "SPORT",
48533
+ "SUPERMARKET",
48534
+ "TAXI_STAND",
48535
+ "TRAIN_STATION",
48536
+ "TRAM_STOP",
48537
+ "WIFI"
48538
+ ]
48539
+ },
48540
+ "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\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"
48541
+ },
48542
+ "locationImage": {
48543
+ "type": "object",
48544
+ "properties": {
48545
+ "original": {
48546
+ "type": "string",
48547
+ "description": "URL to the original image"
48548
+ },
48549
+ "thumbnail": {
48550
+ "type": "string",
48551
+ "description": "URL to a thumbnail image"
48552
+ },
48553
+ "mimeType": {
48554
+ "type": "string"
48555
+ }
48556
+ },
48557
+ "required": [
48558
+ "original",
48559
+ "mimeType"
48560
+ ]
48561
+ },
48562
+ "images": {
48563
+ "type": "array",
48564
+ "items": {
48565
+ "type": "object",
48566
+ "properties": {
48567
+ "original": {
48568
+ "type": "string",
48569
+ "description": "URL to the original image"
48570
+ },
48571
+ "thumbnail": {
48572
+ "type": "string",
48573
+ "description": "URL to a thumbnail image"
48574
+ },
48575
+ "mimeType": {
48576
+ "type": "string"
48577
+ }
48578
+ },
48579
+ "required": [
48580
+ "original",
48581
+ "mimeType"
48582
+ ]
48583
+ },
48584
+ "readOnly": true,
48585
+ "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
48586
+ },
47781
48587
  "workingHours": {
47782
48588
  "type": "object",
47783
48589
  "properties": {
@@ -47972,25 +48778,6 @@
47972
48778
  }
47973
48779
  }
47974
48780
  },
47975
- "timezone": {
47976
- "type": "string",
47977
- "nullable": true,
47978
- "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
47979
- },
47980
- "externalId": {
47981
- "type": "string",
47982
- "nullable": true
47983
- },
47984
- "roamingOperatorId": {
47985
- "description": "For roaming Locations, the ID of the roaming operator is provided.",
47986
- "type": "integer"
47987
- },
47988
- "lastUpdatedAt": {
47989
- "type": "string",
47990
- "format": "date-time",
47991
- "readOnly": true,
47992
- "description": "ISO 8601 formatted date"
47993
- },
47994
48781
  "chargingZones": {
47995
48782
  "type": "array",
47996
48783
  "readOnly": true,
@@ -48060,11 +48847,9 @@
48060
48847
  },
48061
48848
  "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
48062
48849
  },
48063
- "externalAppData": {
48064
- "description": "Used to hold any external application data related to the session.",
48065
- "type": "object",
48066
- "nullable": true,
48067
- "additionalProperties": true
48850
+ "roamingOperatorId": {
48851
+ "description": "For roaming Locations, the ID of the roaming operator is provided.",
48852
+ "type": "integer"
48068
48853
  },
48069
48854
  "roaming": {
48070
48855
  "type": "object",
@@ -48106,6 +48891,18 @@
48106
48891
  "type": "string"
48107
48892
  }
48108
48893
  },
48894
+ "externalAppData": {
48895
+ "description": "Used to hold any external application data related to the session.",
48896
+ "type": "object",
48897
+ "nullable": true,
48898
+ "additionalProperties": true
48899
+ },
48900
+ "lastUpdatedAt": {
48901
+ "type": "string",
48902
+ "format": "date-time",
48903
+ "readOnly": true,
48904
+ "description": "ISO 8601 formatted date"
48905
+ },
48109
48906
  "status": {
48110
48907
  "deprecated": true,
48111
48908
  "type": "string",
@@ -48113,25 +48910,6 @@
48113
48910
  "enabled",
48114
48911
  "disabled"
48115
48912
  ]
48116
- },
48117
- "accessMethods": {
48118
- "type": "array",
48119
- "items": {
48120
- "type": "string",
48121
- "enum": [
48122
- "OPEN",
48123
- "TOKEN",
48124
- "LICENSE_PLATE",
48125
- "ACCESS_CODE",
48126
- "INTERCOM",
48127
- "PARKING_TICKET"
48128
- ]
48129
- },
48130
- "description": "Physical access methods available at this location. Multiple methods can be selected if the site supports different access types.\n\n**Response behavior**: Field is omitted from response when no access methods are configured.\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",
48131
- "example": [
48132
- "OPEN",
48133
- "TOKEN"
48134
- ]
48135
48913
  }
48136
48914
  }
48137
48915
  }
@@ -59012,7 +59790,8 @@
59012
59790
  "Windcave",
59013
59791
  "Web portal",
59014
59792
  "AdyenCastles",
59015
- "Printec Castles"
59793
+ "Printec Castles",
59794
+ "Cardlink Castles"
59016
59795
  ]
59017
59796
  },
59018
59797
  "operatorId": {
@@ -59133,7 +59912,8 @@
59133
59912
  "Windcave",
59134
59913
  "Web portal",
59135
59914
  "AdyenCastles",
59136
- "Printec Castles"
59915
+ "Printec Castles",
59916
+ "Cardlink Castles"
59137
59917
  ]
59138
59918
  },
59139
59919
  "operatorId": {
@@ -59268,7 +60048,8 @@
59268
60048
  "Windcave",
59269
60049
  "Web portal",
59270
60050
  "AdyenCastles",
59271
- "Printec Castles"
60051
+ "Printec Castles",
60052
+ "Cardlink Castles"
59272
60053
  ]
59273
60054
  },
59274
60055
  "operatorId": {
@@ -59323,7 +60104,8 @@
59323
60104
  "Windcave",
59324
60105
  "Web portal",
59325
60106
  "AdyenCastles",
59326
- "Printec Castles"
60107
+ "Printec Castles",
60108
+ "Cardlink Castles"
59327
60109
  ]
59328
60110
  },
59329
60111
  "operatorId": {
@@ -59388,7 +60170,8 @@
59388
60170
  "Windcave",
59389
60171
  "Web portal",
59390
60172
  "AdyenCastles",
59391
- "Printec Castles"
60173
+ "Printec Castles",
60174
+ "Cardlink Castles"
59392
60175
  ]
59393
60176
  },
59394
60177
  "operatorId": {
@@ -59447,7 +60230,8 @@
59447
60230
  "Windcave",
59448
60231
  "Web portal",
59449
60232
  "AdyenCastles",
59450
- "Printec Castles"
60233
+ "Printec Castles",
60234
+ "Cardlink Castles"
59451
60235
  ]
59452
60236
  },
59453
60237
  "operatorId": {
@@ -59505,7 +60289,8 @@
59505
60289
  "Windcave",
59506
60290
  "Web portal",
59507
60291
  "AdyenCastles",
59508
- "Printec Castles"
60292
+ "Printec Castles",
60293
+ "Cardlink Castles"
59509
60294
  ]
59510
60295
  },
59511
60296
  "operatorId": {
@@ -59585,7 +60370,8 @@
59585
60370
  "Windcave",
59586
60371
  "Web portal",
59587
60372
  "AdyenCastles",
59588
- "Printec Castles"
60373
+ "Printec Castles",
60374
+ "Cardlink Castles"
59589
60375
  ]
59590
60376
  },
59591
60377
  "operatorId": {
@@ -59640,7 +60426,8 @@
59640
60426
  "Windcave",
59641
60427
  "Web portal",
59642
60428
  "AdyenCastles",
59643
- "Printec Castles"
60429
+ "Printec Castles",
60430
+ "Cardlink Castles"
59644
60431
  ]
59645
60432
  },
59646
60433
  "operatorId": {
@@ -59717,7 +60504,268 @@
59717
60504
  "Windcave",
59718
60505
  "Web portal",
59719
60506
  "AdyenCastles",
59720
- "Printec Castles"
60507
+ "Printec Castles",
60508
+ "Cardlink Castles"
60509
+ ]
60510
+ },
60511
+ "operatorId": {
60512
+ "type": "integer"
60513
+ },
60514
+ "chargingZoneId": {
60515
+ "type": "integer",
60516
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
60517
+ },
60518
+ "chargePointId": {
60519
+ "type": "integer",
60520
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
60521
+ },
60522
+ "adminToken": {
60523
+ "type": "string",
60524
+ "readOnly": true,
60525
+ "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."
60526
+ },
60527
+ "networkStatus": {
60528
+ "type": "string",
60529
+ "enum": [
60530
+ "online",
60531
+ "offline",
60532
+ "unknown"
60533
+ ]
60534
+ },
60535
+ "phone": {
60536
+ "type": "string"
60537
+ },
60538
+ "defaultLanguage": {
60539
+ "type": "string"
60540
+ },
60541
+ "presentCardOnStopSession": {
60542
+ "type": "boolean",
60543
+ "default": false
60544
+ },
60545
+ "info": {
60546
+ "type": "array",
60547
+ "items": {
60548
+ "type": "object",
60549
+ "properties": {
60550
+ "locale": {
60551
+ "type": "string",
60552
+ "description": "valid locale"
60553
+ },
60554
+ "translation": {
60555
+ "type": "string"
60556
+ }
60557
+ }
60558
+ }
60559
+ },
60560
+ "currencyCode": {
60561
+ "type": "string",
60562
+ "readOnly": true
60563
+ },
60564
+ "serialNumber": {
60565
+ "type": "string"
60566
+ },
60567
+ "externalId": {
60568
+ "type": "string"
60569
+ },
60570
+ "merchantAccount": {
60571
+ "type": "string",
60572
+ "description": "Unique identifier of the merchant in Adyen's portal"
60573
+ },
60574
+ "adyenApiKey": {
60575
+ "type": "string",
60576
+ "description": "API key to authenticate requests to Adyen"
60577
+ },
60578
+ "supportedLanguages": {
60579
+ "type": "array",
60580
+ "items": {
60581
+ "type": "string"
60582
+ },
60583
+ "nullable": true,
60584
+ "readOnly": true
60585
+ },
60586
+ "networkStatusMonitoringEnabled": {
60587
+ "type": "boolean",
60588
+ "readOnly": true
60589
+ }
60590
+ }
60591
+ },
60592
+ {
60593
+ "title": "Printec Castles",
60594
+ "required": [
60595
+ "phone",
60596
+ "defaultLanguage",
60597
+ "info",
60598
+ "bundle",
60599
+ "name",
60600
+ "integrationId",
60601
+ "terminalType",
60602
+ "operatorId"
60603
+ ],
60604
+ "type": "object",
60605
+ "properties": {
60606
+ "id": {
60607
+ "type": "integer",
60608
+ "readOnly": true
60609
+ },
60610
+ "name": {
60611
+ "type": "string"
60612
+ },
60613
+ "integrationId": {
60614
+ "type": "integer"
60615
+ },
60616
+ "terminalType": {
60617
+ "type": "string",
60618
+ "enum": [
60619
+ "Payter",
60620
+ "Valina",
60621
+ "Crane",
60622
+ "Ampeco",
60623
+ "Nayax",
60624
+ "Embedded",
60625
+ "Pax",
60626
+ "Windcave",
60627
+ "Web portal",
60628
+ "AdyenCastles",
60629
+ "Printec Castles",
60630
+ "Cardlink Castles"
60631
+ ]
60632
+ },
60633
+ "operatorId": {
60634
+ "type": "integer"
60635
+ },
60636
+ "chargingZoneId": {
60637
+ "type": "integer",
60638
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
60639
+ },
60640
+ "chargePointId": {
60641
+ "type": "integer",
60642
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
60643
+ },
60644
+ "adminToken": {
60645
+ "type": "string",
60646
+ "readOnly": true,
60647
+ "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."
60648
+ },
60649
+ "networkStatus": {
60650
+ "type": "string",
60651
+ "enum": [
60652
+ "online",
60653
+ "offline",
60654
+ "unknown"
60655
+ ]
60656
+ },
60657
+ "phone": {
60658
+ "type": "string"
60659
+ },
60660
+ "defaultLanguage": {
60661
+ "type": "string"
60662
+ },
60663
+ "presentCardOnStopSession": {
60664
+ "type": "boolean",
60665
+ "default": false
60666
+ },
60667
+ "info": {
60668
+ "type": "array",
60669
+ "items": {
60670
+ "type": "object",
60671
+ "properties": {
60672
+ "locale": {
60673
+ "type": "string",
60674
+ "description": "valid locale"
60675
+ },
60676
+ "translation": {
60677
+ "type": "string"
60678
+ }
60679
+ }
60680
+ }
60681
+ },
60682
+ "currencyCode": {
60683
+ "type": "string",
60684
+ "readOnly": true
60685
+ },
60686
+ "countryCode": {
60687
+ "type": "string",
60688
+ "description": "ISO 3166-1 alpha-2 country code",
60689
+ "readOnly": true
60690
+ },
60691
+ "serialNumber": {
60692
+ "type": "string"
60693
+ },
60694
+ "externalId": {
60695
+ "type": "string"
60696
+ },
60697
+ "supportedLanguages": {
60698
+ "type": "array",
60699
+ "items": {
60700
+ "type": "string"
60701
+ },
60702
+ "nullable": true,
60703
+ "readOnly": true
60704
+ },
60705
+ "bundle": {
60706
+ "type": "object",
60707
+ "readOnly": true,
60708
+ "properties": {
60709
+ "version": {
60710
+ "type": "string",
60711
+ "example": [
60712
+ "1.0.0",
60713
+ "1.0.1",
60714
+ "2.1.0"
60715
+ ],
60716
+ "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."
60717
+ },
60718
+ "downloadUrl": {
60719
+ "type": "string",
60720
+ "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
60721
+ }
60722
+ }
60723
+ },
60724
+ "networkStatusMonitoringEnabled": {
60725
+ "type": "boolean",
60726
+ "readOnly": true
60727
+ }
60728
+ }
60729
+ },
60730
+ {
60731
+ "title": "Cardlink Castles",
60732
+ "required": [
60733
+ "phone",
60734
+ "defaultLanguage",
60735
+ "info",
60736
+ "bundle",
60737
+ "name",
60738
+ "integrationId",
60739
+ "terminalType",
60740
+ "operatorId"
60741
+ ],
60742
+ "type": "object",
60743
+ "properties": {
60744
+ "id": {
60745
+ "type": "integer",
60746
+ "readOnly": true
60747
+ },
60748
+ "name": {
60749
+ "type": "string"
60750
+ },
60751
+ "integrationId": {
60752
+ "type": "integer"
60753
+ },
60754
+ "terminalType": {
60755
+ "type": "string",
60756
+ "enum": [
60757
+ "Payter",
60758
+ "Valina",
60759
+ "Crane",
60760
+ "Ampeco",
60761
+ "Nayax",
60762
+ "Embedded",
60763
+ "Pax",
60764
+ "Windcave",
60765
+ "Web portal",
60766
+ "AdyenCastles",
60767
+ "Printec Castles",
60768
+ "Cardlink Castles"
59721
60769
  ]
59722
60770
  },
59723
60771
  "operatorId": {
@@ -59736,126 +60784,11 @@
59736
60784
  "readOnly": true,
59737
60785
  "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."
59738
60786
  },
59739
- "networkStatus": {
59740
- "type": "string",
59741
- "enum": [
59742
- "online",
59743
- "offline",
59744
- "unknown"
59745
- ]
59746
- },
59747
- "phone": {
59748
- "type": "string"
59749
- },
59750
- "defaultLanguage": {
59751
- "type": "string"
59752
- },
59753
- "presentCardOnStopSession": {
59754
- "type": "boolean",
59755
- "default": false
59756
- },
59757
- "info": {
59758
- "type": "array",
59759
- "items": {
59760
- "type": "object",
59761
- "properties": {
59762
- "locale": {
59763
- "type": "string",
59764
- "description": "valid locale"
59765
- },
59766
- "translation": {
59767
- "type": "string"
59768
- }
59769
- }
59770
- }
59771
- },
59772
- "currencyCode": {
59773
- "type": "string",
59774
- "readOnly": true
59775
- },
59776
- "serialNumber": {
59777
- "type": "string"
59778
- },
59779
- "externalId": {
59780
- "type": "string"
59781
- },
59782
- "merchantAccount": {
59783
- "type": "string",
59784
- "description": "Unique identifier of the merchant in Adyen's portal"
59785
- },
59786
- "adyenApiKey": {
59787
- "type": "string",
59788
- "description": "API key to authenticate requests to Adyen"
59789
- },
59790
- "supportedLanguages": {
59791
- "type": "array",
59792
- "items": {
59793
- "type": "string"
59794
- },
59795
- "nullable": true,
59796
- "readOnly": true
59797
- },
59798
- "networkStatusMonitoringEnabled": {
60787
+ "isOnline": {
59799
60788
  "type": "boolean",
59800
- "readOnly": true
59801
- }
59802
- }
59803
- },
59804
- {
59805
- "title": "Printec Castles",
59806
- "required": [
59807
- "phone",
59808
- "defaultLanguage",
59809
- "info",
59810
- "bundle",
59811
- "name",
59812
- "integrationId",
59813
- "terminalType",
59814
- "operatorId"
59815
- ],
59816
- "type": "object",
59817
- "properties": {
59818
- "id": {
59819
- "type": "integer",
59820
- "readOnly": true
59821
- },
59822
- "name": {
59823
- "type": "string"
59824
- },
59825
- "integrationId": {
59826
- "type": "integer"
59827
- },
59828
- "terminalType": {
59829
- "type": "string",
59830
- "enum": [
59831
- "Payter",
59832
- "Valina",
59833
- "Crane",
59834
- "Ampeco",
59835
- "Nayax",
59836
- "Embedded",
59837
- "Pax",
59838
- "Windcave",
59839
- "Web portal",
59840
- "AdyenCastles",
59841
- "Printec Castles"
59842
- ]
59843
- },
59844
- "operatorId": {
59845
- "type": "integer"
59846
- },
59847
- "chargingZoneId": {
59848
- "type": "integer",
59849
- "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
59850
- },
59851
- "chargePointId": {
59852
- "type": "integer",
59853
- "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
59854
- },
59855
- "adminToken": {
59856
- "type": "string",
59857
60789
  "readOnly": true,
59858
- "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."
60790
+ "deprecated": true,
60791
+ "description": "Use `networkStatus` instead"
59859
60792
  },
59860
60793
  "networkStatus": {
59861
60794
  "type": "string",
@@ -59894,11 +60827,6 @@
59894
60827
  "type": "string",
59895
60828
  "readOnly": true
59896
60829
  },
59897
- "countryCode": {
59898
- "type": "string",
59899
- "description": "ISO 3166-1 alpha-2 country code",
59900
- "readOnly": true
59901
- },
59902
60830
  "serialNumber": {
59903
60831
  "type": "string"
59904
60832
  },
@@ -60093,7 +61021,8 @@
60093
61021
  "Windcave",
60094
61022
  "Web portal",
60095
61023
  "AdyenCastles",
60096
- "Printec Castles"
61024
+ "Printec Castles",
61025
+ "Cardlink Castles"
60097
61026
  ]
60098
61027
  },
60099
61028
  "operatorId": {
@@ -60214,7 +61143,8 @@
60214
61143
  "Windcave",
60215
61144
  "Web portal",
60216
61145
  "AdyenCastles",
60217
- "Printec Castles"
61146
+ "Printec Castles",
61147
+ "Cardlink Castles"
60218
61148
  ]
60219
61149
  },
60220
61150
  "operatorId": {
@@ -60349,7 +61279,8 @@
60349
61279
  "Windcave",
60350
61280
  "Web portal",
60351
61281
  "AdyenCastles",
60352
- "Printec Castles"
61282
+ "Printec Castles",
61283
+ "Cardlink Castles"
60353
61284
  ]
60354
61285
  },
60355
61286
  "operatorId": {
@@ -60404,7 +61335,8 @@
60404
61335
  "Windcave",
60405
61336
  "Web portal",
60406
61337
  "AdyenCastles",
60407
- "Printec Castles"
61338
+ "Printec Castles",
61339
+ "Cardlink Castles"
60408
61340
  ]
60409
61341
  },
60410
61342
  "operatorId": {
@@ -60469,7 +61401,8 @@
60469
61401
  "Windcave",
60470
61402
  "Web portal",
60471
61403
  "AdyenCastles",
60472
- "Printec Castles"
61404
+ "Printec Castles",
61405
+ "Cardlink Castles"
60473
61406
  ]
60474
61407
  },
60475
61408
  "operatorId": {
@@ -60528,7 +61461,8 @@
60528
61461
  "Windcave",
60529
61462
  "Web portal",
60530
61463
  "AdyenCastles",
60531
- "Printec Castles"
61464
+ "Printec Castles",
61465
+ "Cardlink Castles"
60532
61466
  ]
60533
61467
  },
60534
61468
  "operatorId": {
@@ -60586,7 +61520,8 @@
60586
61520
  "Windcave",
60587
61521
  "Web portal",
60588
61522
  "AdyenCastles",
60589
- "Printec Castles"
61523
+ "Printec Castles",
61524
+ "Cardlink Castles"
60590
61525
  ]
60591
61526
  },
60592
61527
  "operatorId": {
@@ -60666,7 +61601,8 @@
60666
61601
  "Windcave",
60667
61602
  "Web portal",
60668
61603
  "AdyenCastles",
60669
- "Printec Castles"
61604
+ "Printec Castles",
61605
+ "Cardlink Castles"
60670
61606
  ]
60671
61607
  },
60672
61608
  "operatorId": {
@@ -60721,7 +61657,8 @@
60721
61657
  "Windcave",
60722
61658
  "Web portal",
60723
61659
  "AdyenCastles",
60724
- "Printec Castles"
61660
+ "Printec Castles",
61661
+ "Cardlink Castles"
60725
61662
  ]
60726
61663
  },
60727
61664
  "operatorId": {
@@ -60798,7 +61735,8 @@
60798
61735
  "Windcave",
60799
61736
  "Web portal",
60800
61737
  "AdyenCastles",
60801
- "Printec Castles"
61738
+ "Printec Castles",
61739
+ "Cardlink Castles"
60802
61740
  ]
60803
61741
  },
60804
61742
  "operatorId": {
@@ -60919,7 +61857,146 @@
60919
61857
  "Windcave",
60920
61858
  "Web portal",
60921
61859
  "AdyenCastles",
60922
- "Printec Castles"
61860
+ "Printec Castles",
61861
+ "Cardlink Castles"
61862
+ ]
61863
+ },
61864
+ "operatorId": {
61865
+ "type": "integer"
61866
+ },
61867
+ "chargingZoneId": {
61868
+ "type": "integer",
61869
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
61870
+ },
61871
+ "chargePointId": {
61872
+ "type": "integer",
61873
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
61874
+ },
61875
+ "adminToken": {
61876
+ "type": "string",
61877
+ "readOnly": true,
61878
+ "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."
61879
+ },
61880
+ "networkStatus": {
61881
+ "type": "string",
61882
+ "enum": [
61883
+ "online",
61884
+ "offline",
61885
+ "unknown"
61886
+ ]
61887
+ },
61888
+ "phone": {
61889
+ "type": "string"
61890
+ },
61891
+ "defaultLanguage": {
61892
+ "type": "string"
61893
+ },
61894
+ "presentCardOnStopSession": {
61895
+ "type": "boolean",
61896
+ "default": false
61897
+ },
61898
+ "info": {
61899
+ "type": "array",
61900
+ "items": {
61901
+ "type": "object",
61902
+ "properties": {
61903
+ "locale": {
61904
+ "type": "string",
61905
+ "description": "valid locale"
61906
+ },
61907
+ "translation": {
61908
+ "type": "string"
61909
+ }
61910
+ }
61911
+ }
61912
+ },
61913
+ "currencyCode": {
61914
+ "type": "string",
61915
+ "readOnly": true
61916
+ },
61917
+ "countryCode": {
61918
+ "type": "string",
61919
+ "description": "ISO 3166-1 alpha-2 country code",
61920
+ "readOnly": true
61921
+ },
61922
+ "serialNumber": {
61923
+ "type": "string"
61924
+ },
61925
+ "externalId": {
61926
+ "type": "string"
61927
+ },
61928
+ "supportedLanguages": {
61929
+ "type": "array",
61930
+ "items": {
61931
+ "type": "string"
61932
+ },
61933
+ "nullable": true,
61934
+ "readOnly": true
61935
+ },
61936
+ "bundle": {
61937
+ "type": "object",
61938
+ "readOnly": true,
61939
+ "properties": {
61940
+ "version": {
61941
+ "type": "string",
61942
+ "example": [
61943
+ "1.0.0",
61944
+ "1.0.1",
61945
+ "2.1.0"
61946
+ ],
61947
+ "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."
61948
+ },
61949
+ "downloadUrl": {
61950
+ "type": "string",
61951
+ "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
61952
+ }
61953
+ }
61954
+ },
61955
+ "networkStatusMonitoringEnabled": {
61956
+ "type": "boolean",
61957
+ "readOnly": true
61958
+ }
61959
+ }
61960
+ },
61961
+ {
61962
+ "title": "Cardlink Castles",
61963
+ "required": [
61964
+ "phone",
61965
+ "defaultLanguage",
61966
+ "info",
61967
+ "bundle",
61968
+ "name",
61969
+ "integrationId",
61970
+ "terminalType",
61971
+ "operatorId"
61972
+ ],
61973
+ "type": "object",
61974
+ "properties": {
61975
+ "id": {
61976
+ "type": "integer",
61977
+ "readOnly": true
61978
+ },
61979
+ "name": {
61980
+ "type": "string"
61981
+ },
61982
+ "integrationId": {
61983
+ "type": "integer"
61984
+ },
61985
+ "terminalType": {
61986
+ "type": "string",
61987
+ "enum": [
61988
+ "Payter",
61989
+ "Valina",
61990
+ "Crane",
61991
+ "Ampeco",
61992
+ "Nayax",
61993
+ "Embedded",
61994
+ "Pax",
61995
+ "Windcave",
61996
+ "Web portal",
61997
+ "AdyenCastles",
61998
+ "Printec Castles",
61999
+ "Cardlink Castles"
60923
62000
  ]
60924
62001
  },
60925
62002
  "operatorId": {
@@ -60938,6 +62015,12 @@
60938
62015
  "readOnly": true,
60939
62016
  "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."
60940
62017
  },
62018
+ "isOnline": {
62019
+ "type": "boolean",
62020
+ "readOnly": true,
62021
+ "deprecated": true,
62022
+ "description": "Use `networkStatus` instead"
62023
+ },
60941
62024
  "networkStatus": {
60942
62025
  "type": "string",
60943
62026
  "enum": [
@@ -60975,11 +62058,6 @@
60975
62058
  "type": "string",
60976
62059
  "readOnly": true
60977
62060
  },
60978
- "countryCode": {
60979
- "type": "string",
60980
- "description": "ISO 3166-1 alpha-2 country code",
60981
- "readOnly": true
60982
- },
60983
62061
  "serialNumber": {
60984
62062
  "type": "string"
60985
62063
  },
@@ -61111,7 +62189,8 @@
61111
62189
  "Windcave",
61112
62190
  "Web portal",
61113
62191
  "AdyenCastles",
61114
- "Printec Castles"
62192
+ "Printec Castles",
62193
+ "Cardlink Castles"
61115
62194
  ]
61116
62195
  },
61117
62196
  "operatorId": {
@@ -61232,7 +62311,8 @@
61232
62311
  "Windcave",
61233
62312
  "Web portal",
61234
62313
  "AdyenCastles",
61235
- "Printec Castles"
62314
+ "Printec Castles",
62315
+ "Cardlink Castles"
61236
62316
  ]
61237
62317
  },
61238
62318
  "operatorId": {
@@ -61367,7 +62447,8 @@
61367
62447
  "Windcave",
61368
62448
  "Web portal",
61369
62449
  "AdyenCastles",
61370
- "Printec Castles"
62450
+ "Printec Castles",
62451
+ "Cardlink Castles"
61371
62452
  ]
61372
62453
  },
61373
62454
  "operatorId": {
@@ -61422,7 +62503,8 @@
61422
62503
  "Windcave",
61423
62504
  "Web portal",
61424
62505
  "AdyenCastles",
61425
- "Printec Castles"
62506
+ "Printec Castles",
62507
+ "Cardlink Castles"
61426
62508
  ]
61427
62509
  },
61428
62510
  "operatorId": {
@@ -61487,7 +62569,8 @@
61487
62569
  "Windcave",
61488
62570
  "Web portal",
61489
62571
  "AdyenCastles",
61490
- "Printec Castles"
62572
+ "Printec Castles",
62573
+ "Cardlink Castles"
61491
62574
  ]
61492
62575
  },
61493
62576
  "operatorId": {
@@ -61546,7 +62629,8 @@
61546
62629
  "Windcave",
61547
62630
  "Web portal",
61548
62631
  "AdyenCastles",
61549
- "Printec Castles"
62632
+ "Printec Castles",
62633
+ "Cardlink Castles"
61550
62634
  ]
61551
62635
  },
61552
62636
  "operatorId": {
@@ -61604,7 +62688,8 @@
61604
62688
  "Windcave",
61605
62689
  "Web portal",
61606
62690
  "AdyenCastles",
61607
- "Printec Castles"
62691
+ "Printec Castles",
62692
+ "Cardlink Castles"
61608
62693
  ]
61609
62694
  },
61610
62695
  "operatorId": {
@@ -61684,7 +62769,8 @@
61684
62769
  "Windcave",
61685
62770
  "Web portal",
61686
62771
  "AdyenCastles",
61687
- "Printec Castles"
62772
+ "Printec Castles",
62773
+ "Cardlink Castles"
61688
62774
  ]
61689
62775
  },
61690
62776
  "operatorId": {
@@ -61739,7 +62825,8 @@
61739
62825
  "Windcave",
61740
62826
  "Web portal",
61741
62827
  "AdyenCastles",
61742
- "Printec Castles"
62828
+ "Printec Castles",
62829
+ "Cardlink Castles"
61743
62830
  ]
61744
62831
  },
61745
62832
  "operatorId": {
@@ -61816,7 +62903,268 @@
61816
62903
  "Windcave",
61817
62904
  "Web portal",
61818
62905
  "AdyenCastles",
61819
- "Printec Castles"
62906
+ "Printec Castles",
62907
+ "Cardlink Castles"
62908
+ ]
62909
+ },
62910
+ "operatorId": {
62911
+ "type": "integer"
62912
+ },
62913
+ "chargingZoneId": {
62914
+ "type": "integer",
62915
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
62916
+ },
62917
+ "chargePointId": {
62918
+ "type": "integer",
62919
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
62920
+ },
62921
+ "adminToken": {
62922
+ "type": "string",
62923
+ "readOnly": true,
62924
+ "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."
62925
+ },
62926
+ "networkStatus": {
62927
+ "type": "string",
62928
+ "enum": [
62929
+ "online",
62930
+ "offline",
62931
+ "unknown"
62932
+ ]
62933
+ },
62934
+ "phone": {
62935
+ "type": "string"
62936
+ },
62937
+ "defaultLanguage": {
62938
+ "type": "string"
62939
+ },
62940
+ "presentCardOnStopSession": {
62941
+ "type": "boolean",
62942
+ "default": false
62943
+ },
62944
+ "info": {
62945
+ "type": "array",
62946
+ "items": {
62947
+ "type": "object",
62948
+ "properties": {
62949
+ "locale": {
62950
+ "type": "string",
62951
+ "description": "valid locale"
62952
+ },
62953
+ "translation": {
62954
+ "type": "string"
62955
+ }
62956
+ }
62957
+ }
62958
+ },
62959
+ "currencyCode": {
62960
+ "type": "string",
62961
+ "readOnly": true
62962
+ },
62963
+ "serialNumber": {
62964
+ "type": "string"
62965
+ },
62966
+ "externalId": {
62967
+ "type": "string"
62968
+ },
62969
+ "merchantAccount": {
62970
+ "type": "string",
62971
+ "description": "Unique identifier of the merchant in Adyen's portal"
62972
+ },
62973
+ "adyenApiKey": {
62974
+ "type": "string",
62975
+ "description": "API key to authenticate requests to Adyen"
62976
+ },
62977
+ "supportedLanguages": {
62978
+ "type": "array",
62979
+ "items": {
62980
+ "type": "string"
62981
+ },
62982
+ "nullable": true,
62983
+ "readOnly": true
62984
+ },
62985
+ "networkStatusMonitoringEnabled": {
62986
+ "type": "boolean",
62987
+ "readOnly": true
62988
+ }
62989
+ }
62990
+ },
62991
+ {
62992
+ "title": "Printec Castles",
62993
+ "required": [
62994
+ "phone",
62995
+ "defaultLanguage",
62996
+ "info",
62997
+ "bundle",
62998
+ "name",
62999
+ "integrationId",
63000
+ "terminalType",
63001
+ "operatorId"
63002
+ ],
63003
+ "type": "object",
63004
+ "properties": {
63005
+ "id": {
63006
+ "type": "integer",
63007
+ "readOnly": true
63008
+ },
63009
+ "name": {
63010
+ "type": "string"
63011
+ },
63012
+ "integrationId": {
63013
+ "type": "integer"
63014
+ },
63015
+ "terminalType": {
63016
+ "type": "string",
63017
+ "enum": [
63018
+ "Payter",
63019
+ "Valina",
63020
+ "Crane",
63021
+ "Ampeco",
63022
+ "Nayax",
63023
+ "Embedded",
63024
+ "Pax",
63025
+ "Windcave",
63026
+ "Web portal",
63027
+ "AdyenCastles",
63028
+ "Printec Castles",
63029
+ "Cardlink Castles"
63030
+ ]
63031
+ },
63032
+ "operatorId": {
63033
+ "type": "integer"
63034
+ },
63035
+ "chargingZoneId": {
63036
+ "type": "integer",
63037
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
63038
+ },
63039
+ "chargePointId": {
63040
+ "type": "integer",
63041
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
63042
+ },
63043
+ "adminToken": {
63044
+ "type": "string",
63045
+ "readOnly": true,
63046
+ "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."
63047
+ },
63048
+ "networkStatus": {
63049
+ "type": "string",
63050
+ "enum": [
63051
+ "online",
63052
+ "offline",
63053
+ "unknown"
63054
+ ]
63055
+ },
63056
+ "phone": {
63057
+ "type": "string"
63058
+ },
63059
+ "defaultLanguage": {
63060
+ "type": "string"
63061
+ },
63062
+ "presentCardOnStopSession": {
63063
+ "type": "boolean",
63064
+ "default": false
63065
+ },
63066
+ "info": {
63067
+ "type": "array",
63068
+ "items": {
63069
+ "type": "object",
63070
+ "properties": {
63071
+ "locale": {
63072
+ "type": "string",
63073
+ "description": "valid locale"
63074
+ },
63075
+ "translation": {
63076
+ "type": "string"
63077
+ }
63078
+ }
63079
+ }
63080
+ },
63081
+ "currencyCode": {
63082
+ "type": "string",
63083
+ "readOnly": true
63084
+ },
63085
+ "countryCode": {
63086
+ "type": "string",
63087
+ "description": "ISO 3166-1 alpha-2 country code",
63088
+ "readOnly": true
63089
+ },
63090
+ "serialNumber": {
63091
+ "type": "string"
63092
+ },
63093
+ "externalId": {
63094
+ "type": "string"
63095
+ },
63096
+ "supportedLanguages": {
63097
+ "type": "array",
63098
+ "items": {
63099
+ "type": "string"
63100
+ },
63101
+ "nullable": true,
63102
+ "readOnly": true
63103
+ },
63104
+ "bundle": {
63105
+ "type": "object",
63106
+ "readOnly": true,
63107
+ "properties": {
63108
+ "version": {
63109
+ "type": "string",
63110
+ "example": [
63111
+ "1.0.0",
63112
+ "1.0.1",
63113
+ "2.1.0"
63114
+ ],
63115
+ "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."
63116
+ },
63117
+ "downloadUrl": {
63118
+ "type": "string",
63119
+ "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
63120
+ }
63121
+ }
63122
+ },
63123
+ "networkStatusMonitoringEnabled": {
63124
+ "type": "boolean",
63125
+ "readOnly": true
63126
+ }
63127
+ }
63128
+ },
63129
+ {
63130
+ "title": "Cardlink Castles",
63131
+ "required": [
63132
+ "phone",
63133
+ "defaultLanguage",
63134
+ "info",
63135
+ "bundle",
63136
+ "name",
63137
+ "integrationId",
63138
+ "terminalType",
63139
+ "operatorId"
63140
+ ],
63141
+ "type": "object",
63142
+ "properties": {
63143
+ "id": {
63144
+ "type": "integer",
63145
+ "readOnly": true
63146
+ },
63147
+ "name": {
63148
+ "type": "string"
63149
+ },
63150
+ "integrationId": {
63151
+ "type": "integer"
63152
+ },
63153
+ "terminalType": {
63154
+ "type": "string",
63155
+ "enum": [
63156
+ "Payter",
63157
+ "Valina",
63158
+ "Crane",
63159
+ "Ampeco",
63160
+ "Nayax",
63161
+ "Embedded",
63162
+ "Pax",
63163
+ "Windcave",
63164
+ "Web portal",
63165
+ "AdyenCastles",
63166
+ "Printec Castles",
63167
+ "Cardlink Castles"
61820
63168
  ]
61821
63169
  },
61822
63170
  "operatorId": {
@@ -61835,126 +63183,11 @@
61835
63183
  "readOnly": true,
61836
63184
  "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."
61837
63185
  },
61838
- "networkStatus": {
61839
- "type": "string",
61840
- "enum": [
61841
- "online",
61842
- "offline",
61843
- "unknown"
61844
- ]
61845
- },
61846
- "phone": {
61847
- "type": "string"
61848
- },
61849
- "defaultLanguage": {
61850
- "type": "string"
61851
- },
61852
- "presentCardOnStopSession": {
61853
- "type": "boolean",
61854
- "default": false
61855
- },
61856
- "info": {
61857
- "type": "array",
61858
- "items": {
61859
- "type": "object",
61860
- "properties": {
61861
- "locale": {
61862
- "type": "string",
61863
- "description": "valid locale"
61864
- },
61865
- "translation": {
61866
- "type": "string"
61867
- }
61868
- }
61869
- }
61870
- },
61871
- "currencyCode": {
61872
- "type": "string",
61873
- "readOnly": true
61874
- },
61875
- "serialNumber": {
61876
- "type": "string"
61877
- },
61878
- "externalId": {
61879
- "type": "string"
61880
- },
61881
- "merchantAccount": {
61882
- "type": "string",
61883
- "description": "Unique identifier of the merchant in Adyen's portal"
61884
- },
61885
- "adyenApiKey": {
61886
- "type": "string",
61887
- "description": "API key to authenticate requests to Adyen"
61888
- },
61889
- "supportedLanguages": {
61890
- "type": "array",
61891
- "items": {
61892
- "type": "string"
61893
- },
61894
- "nullable": true,
61895
- "readOnly": true
61896
- },
61897
- "networkStatusMonitoringEnabled": {
63186
+ "isOnline": {
61898
63187
  "type": "boolean",
61899
- "readOnly": true
61900
- }
61901
- }
61902
- },
61903
- {
61904
- "title": "Printec Castles",
61905
- "required": [
61906
- "phone",
61907
- "defaultLanguage",
61908
- "info",
61909
- "bundle",
61910
- "name",
61911
- "integrationId",
61912
- "terminalType",
61913
- "operatorId"
61914
- ],
61915
- "type": "object",
61916
- "properties": {
61917
- "id": {
61918
- "type": "integer",
61919
- "readOnly": true
61920
- },
61921
- "name": {
61922
- "type": "string"
61923
- },
61924
- "integrationId": {
61925
- "type": "integer"
61926
- },
61927
- "terminalType": {
61928
- "type": "string",
61929
- "enum": [
61930
- "Payter",
61931
- "Valina",
61932
- "Crane",
61933
- "Ampeco",
61934
- "Nayax",
61935
- "Embedded",
61936
- "Pax",
61937
- "Windcave",
61938
- "Web portal",
61939
- "AdyenCastles",
61940
- "Printec Castles"
61941
- ]
61942
- },
61943
- "operatorId": {
61944
- "type": "integer"
61945
- },
61946
- "chargingZoneId": {
61947
- "type": "integer",
61948
- "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
61949
- },
61950
- "chargePointId": {
61951
- "type": "integer",
61952
- "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
61953
- },
61954
- "adminToken": {
61955
- "type": "string",
61956
63188
  "readOnly": true,
61957
- "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."
63189
+ "deprecated": true,
63190
+ "description": "Use `networkStatus` instead"
61958
63191
  },
61959
63192
  "networkStatus": {
61960
63193
  "type": "string",
@@ -61993,11 +63226,6 @@
61993
63226
  "type": "string",
61994
63227
  "readOnly": true
61995
63228
  },
61996
- "countryCode": {
61997
- "type": "string",
61998
- "description": "ISO 3166-1 alpha-2 country code",
61999
- "readOnly": true
62000
- },
62001
63229
  "serialNumber": {
62002
63230
  "type": "string"
62003
63231
  },
@@ -62172,7 +63400,8 @@
62172
63400
  "Windcave",
62173
63401
  "Web portal",
62174
63402
  "AdyenCastles",
62175
- "Printec Castles"
63403
+ "Printec Castles",
63404
+ "Cardlink Castles"
62176
63405
  ]
62177
63406
  },
62178
63407
  "operatorId": {
@@ -62293,7 +63522,8 @@
62293
63522
  "Windcave",
62294
63523
  "Web portal",
62295
63524
  "AdyenCastles",
62296
- "Printec Castles"
63525
+ "Printec Castles",
63526
+ "Cardlink Castles"
62297
63527
  ]
62298
63528
  },
62299
63529
  "operatorId": {
@@ -62428,7 +63658,8 @@
62428
63658
  "Windcave",
62429
63659
  "Web portal",
62430
63660
  "AdyenCastles",
62431
- "Printec Castles"
63661
+ "Printec Castles",
63662
+ "Cardlink Castles"
62432
63663
  ]
62433
63664
  },
62434
63665
  "operatorId": {
@@ -62483,7 +63714,8 @@
62483
63714
  "Windcave",
62484
63715
  "Web portal",
62485
63716
  "AdyenCastles",
62486
- "Printec Castles"
63717
+ "Printec Castles",
63718
+ "Cardlink Castles"
62487
63719
  ]
62488
63720
  },
62489
63721
  "operatorId": {
@@ -62548,7 +63780,8 @@
62548
63780
  "Windcave",
62549
63781
  "Web portal",
62550
63782
  "AdyenCastles",
62551
- "Printec Castles"
63783
+ "Printec Castles",
63784
+ "Cardlink Castles"
62552
63785
  ]
62553
63786
  },
62554
63787
  "operatorId": {
@@ -62607,7 +63840,8 @@
62607
63840
  "Windcave",
62608
63841
  "Web portal",
62609
63842
  "AdyenCastles",
62610
- "Printec Castles"
63843
+ "Printec Castles",
63844
+ "Cardlink Castles"
62611
63845
  ]
62612
63846
  },
62613
63847
  "operatorId": {
@@ -62665,56 +63899,191 @@
62665
63899
  "Windcave",
62666
63900
  "Web portal",
62667
63901
  "AdyenCastles",
62668
- "Printec Castles"
63902
+ "Printec Castles",
63903
+ "Cardlink Castles"
63904
+ ]
63905
+ },
63906
+ "operatorId": {
63907
+ "type": "integer"
63908
+ },
63909
+ "chargingZoneId": {
63910
+ "type": "integer",
63911
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
63912
+ },
63913
+ "chargePointId": {
63914
+ "type": "integer",
63915
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
63916
+ },
63917
+ "verificationCode": {
63918
+ "type": "string"
63919
+ },
63920
+ "defaultLanguage": {
63921
+ "type": "string"
63922
+ },
63923
+ "presentCardOnStopSession": {
63924
+ "type": "boolean",
63925
+ "default": false
63926
+ },
63927
+ "info": {
63928
+ "type": "array",
63929
+ "items": {
63930
+ "type": "object",
63931
+ "properties": {
63932
+ "locale": {
63933
+ "type": "string",
63934
+ "description": "valid locale"
63935
+ },
63936
+ "translation": {
63937
+ "type": "string"
63938
+ }
63939
+ }
63940
+ }
63941
+ },
63942
+ "serialNumber": {
63943
+ "type": "string"
63944
+ },
63945
+ "externalId": {
63946
+ "type": "string"
63947
+ }
63948
+ }
63949
+ },
63950
+ {
63951
+ "title": "Windcave",
63952
+ "required": [
63953
+ "name",
63954
+ "integrationId",
63955
+ "terminalType",
63956
+ "operatorId"
63957
+ ],
63958
+ "type": "object",
63959
+ "properties": {
63960
+ "id": {
63961
+ "type": "integer",
63962
+ "readOnly": true
63963
+ },
63964
+ "name": {
63965
+ "type": "string"
63966
+ },
63967
+ "integrationId": {
63968
+ "type": "integer"
63969
+ },
63970
+ "terminalType": {
63971
+ "type": "string",
63972
+ "enum": [
63973
+ "Payter",
63974
+ "Valina",
63975
+ "Crane",
63976
+ "Ampeco",
63977
+ "Nayax",
63978
+ "Embedded",
63979
+ "Pax",
63980
+ "Windcave",
63981
+ "Web portal",
63982
+ "AdyenCastles",
63983
+ "Printec Castles",
63984
+ "Cardlink Castles"
63985
+ ]
63986
+ },
63987
+ "operatorId": {
63988
+ "type": "integer"
63989
+ },
63990
+ "chargingZoneId": {
63991
+ "type": "integer",
63992
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
63993
+ },
63994
+ "chargePointId": {
63995
+ "type": "integer",
63996
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
63997
+ },
63998
+ "serialNumber": {
63999
+ "type": "string"
64000
+ },
64001
+ "externalId": {
64002
+ "type": "string"
64003
+ }
64004
+ }
64005
+ },
64006
+ {
64007
+ "title": "Web portal",
64008
+ "required": [
64009
+ "name",
64010
+ "integrationId",
64011
+ "terminalType",
64012
+ "operatorId"
64013
+ ],
64014
+ "type": "object",
64015
+ "properties": {
64016
+ "id": {
64017
+ "type": "integer",
64018
+ "readOnly": true
64019
+ },
64020
+ "name": {
64021
+ "type": "string"
64022
+ },
64023
+ "integrationId": {
64024
+ "type": "integer"
64025
+ },
64026
+ "terminalType": {
64027
+ "type": "string",
64028
+ "enum": [
64029
+ "Payter",
64030
+ "Valina",
64031
+ "Crane",
64032
+ "Ampeco",
64033
+ "Nayax",
64034
+ "Embedded",
64035
+ "Pax",
64036
+ "Windcave",
64037
+ "Web portal",
64038
+ "AdyenCastles",
64039
+ "Printec Castles",
64040
+ "Cardlink Castles"
62669
64041
  ]
62670
64042
  },
62671
64043
  "operatorId": {
62672
64044
  "type": "integer"
62673
64045
  },
62674
- "chargingZoneId": {
62675
- "type": "integer",
62676
- "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
62677
- },
62678
- "chargePointId": {
62679
- "type": "integer",
62680
- "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
62681
- },
62682
- "verificationCode": {
62683
- "type": "string"
62684
- },
62685
- "defaultLanguage": {
62686
- "type": "string"
62687
- },
62688
- "presentCardOnStopSession": {
62689
- "type": "boolean",
62690
- "default": false
62691
- },
62692
- "info": {
64046
+ "invoiceFields": {
62693
64047
  "type": "array",
64048
+ "readOnly": true,
64049
+ "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
62694
64050
  "items": {
62695
64051
  "type": "object",
62696
64052
  "properties": {
62697
- "locale": {
64053
+ "field": {
62698
64054
  "type": "string",
62699
- "description": "valid locale"
64055
+ "description": "Field identifier (e.g., email, name, taxId, country)"
62700
64056
  },
62701
- "translation": {
62702
- "type": "string"
64057
+ "required": {
64058
+ "type": "boolean",
64059
+ "description": "Whether this field is required or optional"
64060
+ },
64061
+ "type": {
64062
+ "type": "string",
64063
+ "enum": [
64064
+ "individual",
64065
+ "company"
64066
+ ],
64067
+ "description": "The invoice type this field belongs to (individual or company)"
62703
64068
  }
62704
- }
64069
+ },
64070
+ "required": [
64071
+ "field",
64072
+ "required",
64073
+ "type"
64074
+ ]
62705
64075
  }
62706
- },
62707
- "serialNumber": {
62708
- "type": "string"
62709
- },
62710
- "externalId": {
62711
- "type": "string"
62712
64076
  }
62713
64077
  }
62714
64078
  },
62715
64079
  {
62716
- "title": "Windcave",
64080
+ "title": "AdyenCastles",
62717
64081
  "required": [
64082
+ "phone",
64083
+ "defaultLanguage",
64084
+ "info",
64085
+ "merchantAccount",
64086
+ "adyenApiKey",
62718
64087
  "name",
62719
64088
  "integrationId",
62720
64089
  "terminalType",
@@ -62745,7 +64114,8 @@
62745
64114
  "Windcave",
62746
64115
  "Web portal",
62747
64116
  "AdyenCastles",
62748
- "Printec Castles"
64117
+ "Printec Castles",
64118
+ "Cardlink Castles"
62749
64119
  ]
62750
64120
  },
62751
64121
  "operatorId": {
@@ -62759,94 +64129,83 @@
62759
64129
  "type": "integer",
62760
64130
  "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
62761
64131
  },
62762
- "serialNumber": {
62763
- "type": "string"
62764
- },
62765
- "externalId": {
62766
- "type": "string"
62767
- }
62768
- }
62769
- },
62770
- {
62771
- "title": "Web portal",
62772
- "required": [
62773
- "name",
62774
- "integrationId",
62775
- "terminalType",
62776
- "operatorId"
62777
- ],
62778
- "type": "object",
62779
- "properties": {
62780
- "id": {
62781
- "type": "integer",
62782
- "readOnly": true
62783
- },
62784
- "name": {
62785
- "type": "string"
62786
- },
62787
- "integrationId": {
62788
- "type": "integer"
64132
+ "adminToken": {
64133
+ "type": "string",
64134
+ "readOnly": true,
64135
+ "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."
62789
64136
  },
62790
- "terminalType": {
64137
+ "networkStatus": {
62791
64138
  "type": "string",
62792
64139
  "enum": [
62793
- "Payter",
62794
- "Valina",
62795
- "Crane",
62796
- "Ampeco",
62797
- "Nayax",
62798
- "Embedded",
62799
- "Pax",
62800
- "Windcave",
62801
- "Web portal",
62802
- "AdyenCastles",
62803
- "Printec Castles"
64140
+ "online",
64141
+ "offline",
64142
+ "unknown"
62804
64143
  ]
62805
64144
  },
62806
- "operatorId": {
62807
- "type": "integer"
64145
+ "phone": {
64146
+ "type": "string"
62808
64147
  },
62809
- "invoiceFields": {
64148
+ "defaultLanguage": {
64149
+ "type": "string"
64150
+ },
64151
+ "presentCardOnStopSession": {
64152
+ "type": "boolean",
64153
+ "default": false
64154
+ },
64155
+ "info": {
62810
64156
  "type": "array",
62811
- "readOnly": true,
62812
- "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
62813
64157
  "items": {
62814
64158
  "type": "object",
62815
64159
  "properties": {
62816
- "field": {
64160
+ "locale": {
62817
64161
  "type": "string",
62818
- "description": "Field identifier (e.g., email, name, taxId, country)"
62819
- },
62820
- "required": {
62821
- "type": "boolean",
62822
- "description": "Whether this field is required or optional"
64162
+ "description": "valid locale"
62823
64163
  },
62824
- "type": {
62825
- "type": "string",
62826
- "enum": [
62827
- "individual",
62828
- "company"
62829
- ],
62830
- "description": "The invoice type this field belongs to (individual or company)"
64164
+ "translation": {
64165
+ "type": "string"
62831
64166
  }
62832
- },
62833
- "required": [
62834
- "field",
62835
- "required",
62836
- "type"
62837
- ]
64167
+ }
62838
64168
  }
64169
+ },
64170
+ "currencyCode": {
64171
+ "type": "string",
64172
+ "readOnly": true
64173
+ },
64174
+ "serialNumber": {
64175
+ "type": "string"
64176
+ },
64177
+ "externalId": {
64178
+ "type": "string"
64179
+ },
64180
+ "merchantAccount": {
64181
+ "type": "string",
64182
+ "description": "Unique identifier of the merchant in Adyen's portal"
64183
+ },
64184
+ "adyenApiKey": {
64185
+ "type": "string",
64186
+ "description": "API key to authenticate requests to Adyen"
64187
+ },
64188
+ "supportedLanguages": {
64189
+ "type": "array",
64190
+ "items": {
64191
+ "type": "string"
64192
+ },
64193
+ "nullable": true,
64194
+ "readOnly": true
64195
+ },
64196
+ "networkStatusMonitoringEnabled": {
64197
+ "type": "boolean",
64198
+ "readOnly": true
62839
64199
  }
62840
64200
  }
62841
64201
  },
62842
64202
  {
62843
- "title": "AdyenCastles",
64203
+ "title": "Printec Castles",
62844
64204
  "required": [
62845
64205
  "phone",
62846
64206
  "defaultLanguage",
62847
64207
  "info",
62848
- "merchantAccount",
62849
- "adyenApiKey",
64208
+ "bundle",
62850
64209
  "name",
62851
64210
  "integrationId",
62852
64211
  "terminalType",
@@ -62877,7 +64236,8 @@
62877
64236
  "Windcave",
62878
64237
  "Web portal",
62879
64238
  "AdyenCastles",
62880
- "Printec Castles"
64239
+ "Printec Castles",
64240
+ "Cardlink Castles"
62881
64241
  ]
62882
64242
  },
62883
64243
  "operatorId": {
@@ -62933,20 +64293,17 @@
62933
64293
  "type": "string",
62934
64294
  "readOnly": true
62935
64295
  },
64296
+ "countryCode": {
64297
+ "type": "string",
64298
+ "description": "ISO 3166-1 alpha-2 country code",
64299
+ "readOnly": true
64300
+ },
62936
64301
  "serialNumber": {
62937
64302
  "type": "string"
62938
64303
  },
62939
64304
  "externalId": {
62940
64305
  "type": "string"
62941
64306
  },
62942
- "merchantAccount": {
62943
- "type": "string",
62944
- "description": "Unique identifier of the merchant in Adyen's portal"
62945
- },
62946
- "adyenApiKey": {
62947
- "type": "string",
62948
- "description": "API key to authenticate requests to Adyen"
62949
- },
62950
64307
  "supportedLanguages": {
62951
64308
  "type": "array",
62952
64309
  "items": {
@@ -62955,6 +64312,25 @@
62955
64312
  "nullable": true,
62956
64313
  "readOnly": true
62957
64314
  },
64315
+ "bundle": {
64316
+ "type": "object",
64317
+ "readOnly": true,
64318
+ "properties": {
64319
+ "version": {
64320
+ "type": "string",
64321
+ "example": [
64322
+ "1.0.0",
64323
+ "1.0.1",
64324
+ "2.1.0"
64325
+ ],
64326
+ "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."
64327
+ },
64328
+ "downloadUrl": {
64329
+ "type": "string",
64330
+ "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
64331
+ }
64332
+ }
64333
+ },
62958
64334
  "networkStatusMonitoringEnabled": {
62959
64335
  "type": "boolean",
62960
64336
  "readOnly": true
@@ -62962,7 +64338,7 @@
62962
64338
  }
62963
64339
  },
62964
64340
  {
62965
- "title": "Printec Castles",
64341
+ "title": "Cardlink Castles",
62966
64342
  "required": [
62967
64343
  "phone",
62968
64344
  "defaultLanguage",
@@ -62998,7 +64374,8 @@
62998
64374
  "Windcave",
62999
64375
  "Web portal",
63000
64376
  "AdyenCastles",
63001
- "Printec Castles"
64377
+ "Printec Castles",
64378
+ "Cardlink Castles"
63002
64379
  ]
63003
64380
  },
63004
64381
  "operatorId": {
@@ -63017,6 +64394,12 @@
63017
64394
  "readOnly": true,
63018
64395
  "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."
63019
64396
  },
64397
+ "isOnline": {
64398
+ "type": "boolean",
64399
+ "readOnly": true,
64400
+ "deprecated": true,
64401
+ "description": "Use `networkStatus` instead"
64402
+ },
63020
64403
  "networkStatus": {
63021
64404
  "type": "string",
63022
64405
  "enum": [
@@ -63054,11 +64437,6 @@
63054
64437
  "type": "string",
63055
64438
  "readOnly": true
63056
64439
  },
63057
- "countryCode": {
63058
- "type": "string",
63059
- "description": "ISO 3166-1 alpha-2 country code",
63060
- "readOnly": true
63061
- },
63062
64440
  "serialNumber": {
63063
64441
  "type": "string"
63064
64442
  },
@@ -68846,6 +70224,10 @@
68846
70224
  "description": "ISO 8601 formatted date",
68847
70225
  "readOnly": true
68848
70226
  },
70227
+ "chargePointOperatorRoamingId": {
70228
+ "type": "string",
70229
+ "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."
70230
+ },
68849
70231
  "roaming": {
68850
70232
  "type": "object",
68851
70233
  "properties": {
@@ -69868,6 +71250,10 @@
69868
71250
  "description": "ISO 8601 formatted date",
69869
71251
  "readOnly": true
69870
71252
  },
71253
+ "chargePointOperatorRoamingId": {
71254
+ "type": "string",
71255
+ "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."
71256
+ },
69871
71257
  "roaming": {
69872
71258
  "type": "object",
69873
71259
  "properties": {
@@ -79077,11 +80463,46 @@
79077
80463
  }
79078
80464
  }
79079
80465
  }
80466
+ },
80467
+ "termType": {
80468
+ "type": "string",
80469
+ "readOnly": true,
80470
+ "enum": [
80471
+ "marketing",
80472
+ "signup",
80473
+ "subscription",
80474
+ "top-up"
80475
+ ],
80476
+ "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"
80477
+ },
80478
+ "consentRequired": {
80479
+ "type": "boolean",
80480
+ "description": "Indicates whether explicit user consent is required for this term."
80481
+ },
80482
+ "consentCollection": {
80483
+ "type": "string",
80484
+ "enum": [
80485
+ "explicit",
80486
+ "automatic"
80487
+ ],
80488
+ "description": "Defines how consent is collected:\n- **explicit**: Requires user explicit confirmation\n- **automatic**: Assumes consent upon use\n"
80489
+ },
80490
+ "consentCheckboxDefaultState": {
80491
+ "type": "boolean",
80492
+ "description": "The default checked state for the consent checkbox in the UI."
80493
+ },
80494
+ "showOnSignup": {
80495
+ "type": "boolean",
80496
+ "description": "Indicates whether this term should be displayed during the user signup flow. Only applicable for marketing terms."
79080
80497
  }
79081
80498
  },
79082
80499
  "required": [
79083
80500
  "id",
79084
- "consentText"
80501
+ "consentText",
80502
+ "termType",
80503
+ "consentRequired",
80504
+ "consentCollection",
80505
+ "consentCheckboxDefaultState"
79085
80506
  ]
79086
80507
  },
79087
80508
  "validFrom": {
@@ -79371,11 +80792,46 @@
79371
80792
  }
79372
80793
  }
79373
80794
  }
80795
+ },
80796
+ "termType": {
80797
+ "type": "string",
80798
+ "readOnly": true,
80799
+ "enum": [
80800
+ "marketing",
80801
+ "signup",
80802
+ "subscription",
80803
+ "top-up"
80804
+ ],
80805
+ "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"
80806
+ },
80807
+ "consentRequired": {
80808
+ "type": "boolean",
80809
+ "description": "Indicates whether explicit user consent is required for this term."
80810
+ },
80811
+ "consentCollection": {
80812
+ "type": "string",
80813
+ "enum": [
80814
+ "explicit",
80815
+ "automatic"
80816
+ ],
80817
+ "description": "Defines how consent is collected:\n- **explicit**: Requires user explicit confirmation\n- **automatic**: Assumes consent upon use\n"
80818
+ },
80819
+ "consentCheckboxDefaultState": {
80820
+ "type": "boolean",
80821
+ "description": "The default checked state for the consent checkbox in the UI."
80822
+ },
80823
+ "showOnSignup": {
80824
+ "type": "boolean",
80825
+ "description": "Indicates whether this term should be displayed during the user signup flow. Only applicable for marketing terms."
79374
80826
  }
79375
80827
  },
79376
80828
  "required": [
79377
80829
  "id",
79378
- "consentText"
80830
+ "consentText",
80831
+ "termType",
80832
+ "consentRequired",
80833
+ "consentCollection",
80834
+ "consentCheckboxDefaultState"
79379
80835
  ]
79380
80836
  },
79381
80837
  "validFrom": {