@ampeco/public-api-mcp 3.103.11 → 3.103.13

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.
@@ -194,6 +194,94 @@
194
194
  }
195
195
  }
196
196
  },
197
+ "chargePointDisconnect": {
198
+ "202": {
199
+ "schema": {
200
+ "type": "object",
201
+ "properties": {
202
+ "success": {
203
+ "type": "boolean"
204
+ }
205
+ },
206
+ "required": [
207
+ "success"
208
+ ]
209
+ }
210
+ },
211
+ "401": {
212
+ "schema": {
213
+ "type": "object",
214
+ "properties": {
215
+ "message": {
216
+ "type": "string"
217
+ }
218
+ }
219
+ }
220
+ },
221
+ "403": {
222
+ "schema": {
223
+ "type": "object",
224
+ "properties": {
225
+ "message": {
226
+ "type": "string",
227
+ "default": "This action is unauthorized."
228
+ }
229
+ }
230
+ }
231
+ },
232
+ "404": {
233
+ "schema": {
234
+ "type": "object",
235
+ "properties": {
236
+ "message": {
237
+ "type": "string"
238
+ }
239
+ }
240
+ }
241
+ },
242
+ "409": {
243
+ "schema": {
244
+ "type": "object",
245
+ "properties": {
246
+ "message": {
247
+ "type": "string"
248
+ }
249
+ }
250
+ }
251
+ },
252
+ "422": {
253
+ "schema": {
254
+ "type": "object",
255
+ "required": [
256
+ "message"
257
+ ],
258
+ "properties": {
259
+ "message": {
260
+ "type": "string"
261
+ },
262
+ "errors": {
263
+ "type": "object",
264
+ "additionalProperties": {
265
+ "type": "array",
266
+ "items": {
267
+ "type": "string"
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }
273
+ },
274
+ "429": {
275
+ "schema": {
276
+ "type": "object",
277
+ "properties": {
278
+ "message": {
279
+ "type": "string"
280
+ }
281
+ }
282
+ }
283
+ }
284
+ },
197
285
  "chargePointGetDiagnostics": {
198
286
  "202": {
199
287
  "schema": {
@@ -2169,6 +2257,71 @@
2169
2257
  }
2170
2258
  }
2171
2259
  },
2260
+ "evseBulkAssignTariffGroups": {
2261
+ "401": {
2262
+ "schema": {
2263
+ "type": "object",
2264
+ "properties": {
2265
+ "message": {
2266
+ "type": "string"
2267
+ }
2268
+ }
2269
+ }
2270
+ },
2271
+ "403": {
2272
+ "schema": {
2273
+ "type": "object",
2274
+ "properties": {
2275
+ "message": {
2276
+ "type": "string",
2277
+ "default": "This action is unauthorized."
2278
+ }
2279
+ }
2280
+ }
2281
+ },
2282
+ "404": {
2283
+ "schema": {
2284
+ "type": "object",
2285
+ "properties": {
2286
+ "message": {
2287
+ "type": "string"
2288
+ }
2289
+ }
2290
+ }
2291
+ },
2292
+ "422": {
2293
+ "schema": {
2294
+ "type": "object",
2295
+ "required": [
2296
+ "message"
2297
+ ],
2298
+ "properties": {
2299
+ "message": {
2300
+ "type": "string"
2301
+ },
2302
+ "errors": {
2303
+ "type": "object",
2304
+ "additionalProperties": {
2305
+ "type": "array",
2306
+ "items": {
2307
+ "type": "string"
2308
+ }
2309
+ }
2310
+ }
2311
+ }
2312
+ }
2313
+ },
2314
+ "429": {
2315
+ "schema": {
2316
+ "type": "object",
2317
+ "properties": {
2318
+ "message": {
2319
+ "type": "string"
2320
+ }
2321
+ }
2322
+ }
2323
+ }
2324
+ },
2172
2325
  "evseStartChargingWithEvseId": {
2173
2326
  "202": {
2174
2327
  "schema": {
@@ -6279,7 +6432,8 @@
6279
6432
  "items": {
6280
6433
  "anyOf": [
6281
6434
  {
6282
- "title": "Create Booking",
6435
+ "title": "Create Booking Base",
6436
+ "description": "Base properties for create booking request (shared between input and response)",
6283
6437
  "type": "object",
6284
6438
  "properties": {
6285
6439
  "id": {
@@ -6306,7 +6460,7 @@
6306
6460
  },
6307
6461
  "rejectionReason": {
6308
6462
  "type": "string",
6309
- "description": "Reason for rejection (if status is rejected)",
6463
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6310
6464
  "readOnly": true
6311
6465
  },
6312
6466
  "createdAt": {
@@ -6327,79 +6481,194 @@
6327
6481
  "type": "integer",
6328
6482
  "description": "ID of the target location"
6329
6483
  },
6484
+ "externalId": {
6485
+ "type": "string",
6486
+ "maxLength": 255,
6487
+ "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"
6488
+ },
6489
+ "startAt": {
6490
+ "type": "string",
6491
+ "format": "date-time",
6492
+ "description": "Start time of the booking"
6493
+ },
6494
+ "endAt": {
6495
+ "type": "string",
6496
+ "format": "date-time",
6497
+ "description": "End time of the booking"
6498
+ },
6330
6499
  "evseId": {
6331
6500
  "type": "integer",
6332
- "description": "Specific EVSE ID (optional - if not provided, system will choose any available EVSE)"
6501
+ "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
6502
  },
6334
6503
  "evseCriteria": {
6335
6504
  "type": "object",
6336
- "description": "Criteria for selecting EVSE to be booked, not used if `evseId` is passed",
6505
+ "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
6506
  "properties": {
6338
6507
  "currentType": {
6339
- "type": "string",
6340
- "enum": [
6341
- "ac",
6342
- "dc"
6508
+ "oneOf": [
6509
+ {
6510
+ "type": "string",
6511
+ "enum": [
6512
+ "ac",
6513
+ "dc"
6514
+ ],
6515
+ "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
6516
+ },
6517
+ {
6518
+ "type": "null"
6519
+ }
6343
6520
  ],
6344
- "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
6521
+ "description": "Required current type (AC or DC). Omitted in response when not specified."
6345
6522
  },
6346
6523
  "minPower": {
6347
6524
  "type": "number",
6348
- "description": "Minimum power requirement (kW)"
6525
+ "description": "Minimum power requirement in kW. Omitted in response when not specified."
6349
6526
  },
6350
6527
  "maxPower": {
6351
6528
  "type": "number",
6352
- "description": "Maximum power requirement (kW)"
6529
+ "description": "Maximum power requirement in kW. Omitted in response when not specified."
6353
6530
  },
6354
6531
  "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"
6532
+ "oneOf": [
6533
+ {
6534
+ "type": "string",
6535
+ "enum": [
6536
+ "type1",
6537
+ "type2",
6538
+ "type3",
6539
+ "chademo",
6540
+ "ccs1",
6541
+ "ccs2",
6542
+ "schuko",
6543
+ "nacs",
6544
+ "cee16",
6545
+ "cee32",
6546
+ "j1772",
6547
+ "inductive",
6548
+ "nema-5-20",
6549
+ "type-e-french",
6550
+ "type-g-british",
6551
+ "type-j-swiss",
6552
+ "avcon",
6553
+ "gb-t-ac",
6554
+ "gb-t-dc",
6555
+ "chaoji",
6556
+ "nema-6-30",
6557
+ "nema-6-50"
6558
+ ],
6559
+ "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"
6560
+ },
6561
+ {
6562
+ "type": "null"
6563
+ }
6379
6564
  ],
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"
6565
+ "description": "Required connector type. Omitted in response when not specified."
6381
6566
  }
6382
6567
  }
6383
6568
  },
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"
6569
+ "parkingSpaceCriteria": {
6570
+ "type": "object",
6571
+ "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",
6572
+ "properties": {
6573
+ "vehicleWeightKg": {
6574
+ "type": "integer",
6575
+ "description": "Vehicle weight in kilograms. Omitted in response when not specified.",
6576
+ "minimum": 1
6577
+ },
6578
+ "vehicleHeightCm": {
6579
+ "type": "integer",
6580
+ "description": "Vehicle height in centimeters. Omitted in response when not specified.",
6581
+ "minimum": 1
6582
+ },
6583
+ "vehicleLengthCm": {
6584
+ "type": "integer",
6585
+ "description": "Vehicle length in centimeters. Omitted in response when not specified.",
6586
+ "minimum": 1
6587
+ },
6588
+ "vehicleWidthCm": {
6589
+ "type": "integer",
6590
+ "description": "Vehicle width in centimeters. Omitted in response when not specified.",
6591
+ "minimum": 1
6592
+ },
6593
+ "vehicleType": {
6594
+ "oneOf": [
6595
+ {
6596
+ "type": "string",
6597
+ "enum": [
6598
+ "two_and_three_wheel_vehicles_and_quadricycles",
6599
+ "passenger_vehicles",
6600
+ "passenger_vehicles_with_trailer",
6601
+ "light_duty_vans",
6602
+ "heavy_duty_tractor_units_without_trailer",
6603
+ "heavy_duty_trucks_without_articulation_point",
6604
+ "heavy_duty_trucks_with_trailer_attached",
6605
+ "buses_or_motor_coaches"
6606
+ ],
6607
+ "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"
6608
+ },
6609
+ {
6610
+ "type": "null"
6611
+ }
6612
+ ],
6613
+ "description": "Required vehicle type. Omitted in response when not specified."
6614
+ },
6615
+ "driveThroughRequired": {
6616
+ "type": "boolean",
6617
+ "description": "Whether parking space must support drive-through charging. Omitted in response when not specified."
6618
+ },
6619
+ "refrigerationOutletRequired": {
6620
+ "type": "boolean",
6621
+ "description": "Whether parking space must have refrigeration outlet. Omitted in response when not specified."
6622
+ },
6623
+ "dangerousGoodsAllowed": {
6624
+ "type": "boolean",
6625
+ "description": "Whether parking space must allow dangerous goods vehicles. Omitted in response when not specified."
6626
+ }
6627
+ }
6393
6628
  },
6394
- "externalId": {
6395
- "type": "string",
6396
- "maxLength": 255,
6397
- "nullable": true,
6398
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
6629
+ "authorizedTokens": {
6630
+ "type": "array",
6631
+ "items": {
6632
+ "type": "object",
6633
+ "properties": {
6634
+ "id": {
6635
+ "type": "integer",
6636
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
6637
+ },
6638
+ "uid": {
6639
+ "type": "string",
6640
+ "description": "Unique identifier of the OCPI token"
6641
+ },
6642
+ "type": {
6643
+ "type": "string",
6644
+ "description": "Type of token (e.g., RFID, APP_USER)"
6645
+ },
6646
+ "contractId": {
6647
+ "type": "string",
6648
+ "description": "Contract identifier associated with the token (optional)"
6649
+ },
6650
+ "emspCountryCode": {
6651
+ "type": "string",
6652
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
6653
+ },
6654
+ "emspPartyId": {
6655
+ "type": "string",
6656
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
6657
+ }
6658
+ },
6659
+ "required": [
6660
+ "id",
6661
+ "uid",
6662
+ "type",
6663
+ "emspCountryCode",
6664
+ "emspPartyId"
6665
+ ]
6666
+ },
6667
+ "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
6668
  },
6400
6669
  "bookingId": {
6401
6670
  "type": "integer",
6402
- "description": "ID of the created booking (present only if status is approved)"
6671
+ "description": "ID of the created booking.\n\nResponse behavior: Only present when status is \"approved\". Omitted for \"pending\" and \"rejected\" requests.\n"
6403
6672
  }
6404
6673
  },
6405
6674
  "required": [
@@ -6415,7 +6684,8 @@
6415
6684
  ]
6416
6685
  },
6417
6686
  {
6418
- "title": "Update the given Booking",
6687
+ "title": "Update Booking Base",
6688
+ "description": "Base properties for update booking request (shared between input and response)",
6419
6689
  "type": "object",
6420
6690
  "properties": {
6421
6691
  "id": {
@@ -6442,7 +6712,7 @@
6442
6712
  },
6443
6713
  "rejectionReason": {
6444
6714
  "type": "string",
6445
- "description": "Reason for rejection (if status is rejected)",
6715
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6446
6716
  "readOnly": true
6447
6717
  },
6448
6718
  "createdAt": {
@@ -6463,6 +6733,11 @@
6463
6733
  "type": "integer",
6464
6734
  "description": "ID of the user for whom the booking is made"
6465
6735
  },
6736
+ "externalId": {
6737
+ "type": "string",
6738
+ "maxLength": 255,
6739
+ "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"
6740
+ },
6466
6741
  "startAt": {
6467
6742
  "type": "string",
6468
6743
  "format": "date-time",
@@ -6473,11 +6748,45 @@
6473
6748
  "format": "date-time",
6474
6749
  "description": "Updated end time of the booking"
6475
6750
  },
6476
- "externalId": {
6477
- "type": "string",
6478
- "maxLength": 255,
6479
- "nullable": true,
6480
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
6751
+ "authorizedTokens": {
6752
+ "type": "array",
6753
+ "items": {
6754
+ "type": "object",
6755
+ "properties": {
6756
+ "id": {
6757
+ "type": "integer",
6758
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
6759
+ },
6760
+ "uid": {
6761
+ "type": "string",
6762
+ "description": "Unique identifier of the OCPI token"
6763
+ },
6764
+ "type": {
6765
+ "type": "string",
6766
+ "description": "Type of token (e.g., RFID, APP_USER)"
6767
+ },
6768
+ "contractId": {
6769
+ "type": "string",
6770
+ "description": "Contract identifier associated with the token (optional)"
6771
+ },
6772
+ "emspCountryCode": {
6773
+ "type": "string",
6774
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
6775
+ },
6776
+ "emspPartyId": {
6777
+ "type": "string",
6778
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
6779
+ }
6780
+ },
6781
+ "required": [
6782
+ "id",
6783
+ "uid",
6784
+ "type",
6785
+ "emspCountryCode",
6786
+ "emspPartyId"
6787
+ ]
6788
+ },
6789
+ "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
6790
  }
6482
6791
  },
6483
6792
  "required": [
@@ -6517,7 +6826,7 @@
6517
6826
  },
6518
6827
  "rejectionReason": {
6519
6828
  "type": "string",
6520
- "description": "Reason for rejection (if status is rejected)",
6829
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6521
6830
  "readOnly": true
6522
6831
  },
6523
6832
  "createdAt": {
@@ -6536,9 +6845,8 @@
6536
6845
  },
6537
6846
  "externalId": {
6538
6847
  "type": "string",
6539
- "nullable": true,
6540
6848
  "maxLength": 255,
6541
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
6849
+ "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
6850
  }
6543
6851
  },
6544
6852
  "required": [
@@ -6644,7 +6952,8 @@
6644
6952
  "data": {
6645
6953
  "anyOf": [
6646
6954
  {
6647
- "title": "Create Booking",
6955
+ "title": "Create Booking Base",
6956
+ "description": "Base properties for create booking request (shared between input and response)",
6648
6957
  "type": "object",
6649
6958
  "properties": {
6650
6959
  "id": {
@@ -6671,7 +6980,7 @@
6671
6980
  },
6672
6981
  "rejectionReason": {
6673
6982
  "type": "string",
6674
- "description": "Reason for rejection (if status is rejected)",
6983
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6675
6984
  "readOnly": true
6676
6985
  },
6677
6986
  "createdAt": {
@@ -6692,79 +7001,194 @@
6692
7001
  "type": "integer",
6693
7002
  "description": "ID of the target location"
6694
7003
  },
7004
+ "externalId": {
7005
+ "type": "string",
7006
+ "maxLength": 255,
7007
+ "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"
7008
+ },
7009
+ "startAt": {
7010
+ "type": "string",
7011
+ "format": "date-time",
7012
+ "description": "Start time of the booking"
7013
+ },
7014
+ "endAt": {
7015
+ "type": "string",
7016
+ "format": "date-time",
7017
+ "description": "End time of the booking"
7018
+ },
6695
7019
  "evseId": {
6696
7020
  "type": "integer",
6697
- "description": "Specific EVSE ID (optional - if not provided, system will choose any available EVSE)"
7021
+ "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
7022
  },
6699
7023
  "evseCriteria": {
6700
7024
  "type": "object",
6701
- "description": "Criteria for selecting EVSE to be booked, not used if `evseId` is passed",
7025
+ "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
7026
  "properties": {
6703
7027
  "currentType": {
6704
- "type": "string",
6705
- "enum": [
6706
- "ac",
6707
- "dc"
7028
+ "oneOf": [
7029
+ {
7030
+ "type": "string",
7031
+ "enum": [
7032
+ "ac",
7033
+ "dc"
7034
+ ],
7035
+ "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
7036
+ },
7037
+ {
7038
+ "type": "null"
7039
+ }
6708
7040
  ],
6709
- "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
7041
+ "description": "Required current type (AC or DC). Omitted in response when not specified."
6710
7042
  },
6711
7043
  "minPower": {
6712
7044
  "type": "number",
6713
- "description": "Minimum power requirement (kW)"
7045
+ "description": "Minimum power requirement in kW. Omitted in response when not specified."
6714
7046
  },
6715
7047
  "maxPower": {
6716
7048
  "type": "number",
6717
- "description": "Maximum power requirement (kW)"
7049
+ "description": "Maximum power requirement in kW. Omitted in response when not specified."
6718
7050
  },
6719
7051
  "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"
7052
+ "oneOf": [
7053
+ {
7054
+ "type": "string",
7055
+ "enum": [
7056
+ "type1",
7057
+ "type2",
7058
+ "type3",
7059
+ "chademo",
7060
+ "ccs1",
7061
+ "ccs2",
7062
+ "schuko",
7063
+ "nacs",
7064
+ "cee16",
7065
+ "cee32",
7066
+ "j1772",
7067
+ "inductive",
7068
+ "nema-5-20",
7069
+ "type-e-french",
7070
+ "type-g-british",
7071
+ "type-j-swiss",
7072
+ "avcon",
7073
+ "gb-t-ac",
7074
+ "gb-t-dc",
7075
+ "chaoji",
7076
+ "nema-6-30",
7077
+ "nema-6-50"
7078
+ ],
7079
+ "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"
7080
+ },
7081
+ {
7082
+ "type": "null"
7083
+ }
6744
7084
  ],
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"
7085
+ "description": "Required connector type. Omitted in response when not specified."
6746
7086
  }
6747
7087
  }
6748
7088
  },
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"
7089
+ "parkingSpaceCriteria": {
7090
+ "type": "object",
7091
+ "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",
7092
+ "properties": {
7093
+ "vehicleWeightKg": {
7094
+ "type": "integer",
7095
+ "description": "Vehicle weight in kilograms. Omitted in response when not specified.",
7096
+ "minimum": 1
7097
+ },
7098
+ "vehicleHeightCm": {
7099
+ "type": "integer",
7100
+ "description": "Vehicle height in centimeters. Omitted in response when not specified.",
7101
+ "minimum": 1
7102
+ },
7103
+ "vehicleLengthCm": {
7104
+ "type": "integer",
7105
+ "description": "Vehicle length in centimeters. Omitted in response when not specified.",
7106
+ "minimum": 1
7107
+ },
7108
+ "vehicleWidthCm": {
7109
+ "type": "integer",
7110
+ "description": "Vehicle width in centimeters. Omitted in response when not specified.",
7111
+ "minimum": 1
7112
+ },
7113
+ "vehicleType": {
7114
+ "oneOf": [
7115
+ {
7116
+ "type": "string",
7117
+ "enum": [
7118
+ "two_and_three_wheel_vehicles_and_quadricycles",
7119
+ "passenger_vehicles",
7120
+ "passenger_vehicles_with_trailer",
7121
+ "light_duty_vans",
7122
+ "heavy_duty_tractor_units_without_trailer",
7123
+ "heavy_duty_trucks_without_articulation_point",
7124
+ "heavy_duty_trucks_with_trailer_attached",
7125
+ "buses_or_motor_coaches"
7126
+ ],
7127
+ "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"
7128
+ },
7129
+ {
7130
+ "type": "null"
7131
+ }
7132
+ ],
7133
+ "description": "Required vehicle type. Omitted in response when not specified."
7134
+ },
7135
+ "driveThroughRequired": {
7136
+ "type": "boolean",
7137
+ "description": "Whether parking space must support drive-through charging. Omitted in response when not specified."
7138
+ },
7139
+ "refrigerationOutletRequired": {
7140
+ "type": "boolean",
7141
+ "description": "Whether parking space must have refrigeration outlet. Omitted in response when not specified."
7142
+ },
7143
+ "dangerousGoodsAllowed": {
7144
+ "type": "boolean",
7145
+ "description": "Whether parking space must allow dangerous goods vehicles. Omitted in response when not specified."
7146
+ }
7147
+ }
6758
7148
  },
6759
- "externalId": {
6760
- "type": "string",
6761
- "maxLength": 255,
6762
- "nullable": true,
6763
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7149
+ "authorizedTokens": {
7150
+ "type": "array",
7151
+ "items": {
7152
+ "type": "object",
7153
+ "properties": {
7154
+ "id": {
7155
+ "type": "integer",
7156
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
7157
+ },
7158
+ "uid": {
7159
+ "type": "string",
7160
+ "description": "Unique identifier of the OCPI token"
7161
+ },
7162
+ "type": {
7163
+ "type": "string",
7164
+ "description": "Type of token (e.g., RFID, APP_USER)"
7165
+ },
7166
+ "contractId": {
7167
+ "type": "string",
7168
+ "description": "Contract identifier associated with the token (optional)"
7169
+ },
7170
+ "emspCountryCode": {
7171
+ "type": "string",
7172
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
7173
+ },
7174
+ "emspPartyId": {
7175
+ "type": "string",
7176
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
7177
+ }
7178
+ },
7179
+ "required": [
7180
+ "id",
7181
+ "uid",
7182
+ "type",
7183
+ "emspCountryCode",
7184
+ "emspPartyId"
7185
+ ]
7186
+ },
7187
+ "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
7188
  },
6765
7189
  "bookingId": {
6766
7190
  "type": "integer",
6767
- "description": "ID of the created booking (present only if status is approved)"
7191
+ "description": "ID of the created booking.\n\nResponse behavior: Only present when status is \"approved\". Omitted for \"pending\" and \"rejected\" requests.\n"
6768
7192
  }
6769
7193
  },
6770
7194
  "required": [
@@ -6780,7 +7204,8 @@
6780
7204
  ]
6781
7205
  },
6782
7206
  {
6783
- "title": "Update the given Booking",
7207
+ "title": "Update Booking Base",
7208
+ "description": "Base properties for update booking request (shared between input and response)",
6784
7209
  "type": "object",
6785
7210
  "properties": {
6786
7211
  "id": {
@@ -6807,7 +7232,7 @@
6807
7232
  },
6808
7233
  "rejectionReason": {
6809
7234
  "type": "string",
6810
- "description": "Reason for rejection (if status is rejected)",
7235
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6811
7236
  "readOnly": true
6812
7237
  },
6813
7238
  "createdAt": {
@@ -6828,6 +7253,11 @@
6828
7253
  "type": "integer",
6829
7254
  "description": "ID of the user for whom the booking is made"
6830
7255
  },
7256
+ "externalId": {
7257
+ "type": "string",
7258
+ "maxLength": 255,
7259
+ "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"
7260
+ },
6831
7261
  "startAt": {
6832
7262
  "type": "string",
6833
7263
  "format": "date-time",
@@ -6838,11 +7268,45 @@
6838
7268
  "format": "date-time",
6839
7269
  "description": "Updated end time of the booking"
6840
7270
  },
6841
- "externalId": {
6842
- "type": "string",
6843
- "maxLength": 255,
6844
- "nullable": true,
6845
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7271
+ "authorizedTokens": {
7272
+ "type": "array",
7273
+ "items": {
7274
+ "type": "object",
7275
+ "properties": {
7276
+ "id": {
7277
+ "type": "integer",
7278
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
7279
+ },
7280
+ "uid": {
7281
+ "type": "string",
7282
+ "description": "Unique identifier of the OCPI token"
7283
+ },
7284
+ "type": {
7285
+ "type": "string",
7286
+ "description": "Type of token (e.g., RFID, APP_USER)"
7287
+ },
7288
+ "contractId": {
7289
+ "type": "string",
7290
+ "description": "Contract identifier associated with the token (optional)"
7291
+ },
7292
+ "emspCountryCode": {
7293
+ "type": "string",
7294
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
7295
+ },
7296
+ "emspPartyId": {
7297
+ "type": "string",
7298
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
7299
+ }
7300
+ },
7301
+ "required": [
7302
+ "id",
7303
+ "uid",
7304
+ "type",
7305
+ "emspCountryCode",
7306
+ "emspPartyId"
7307
+ ]
7308
+ },
7309
+ "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
7310
  }
6847
7311
  },
6848
7312
  "required": [
@@ -6882,7 +7346,7 @@
6882
7346
  },
6883
7347
  "rejectionReason": {
6884
7348
  "type": "string",
6885
- "description": "Reason for rejection (if status is rejected)",
7349
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
6886
7350
  "readOnly": true
6887
7351
  },
6888
7352
  "createdAt": {
@@ -6901,9 +7365,8 @@
6901
7365
  },
6902
7366
  "externalId": {
6903
7367
  "type": "string",
6904
- "nullable": true,
6905
7368
  "maxLength": 255,
6906
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7369
+ "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
7370
  }
6908
7371
  },
6909
7372
  "required": [
@@ -6992,7 +7455,8 @@
6992
7455
  "data": {
6993
7456
  "anyOf": [
6994
7457
  {
6995
- "title": "Create Booking",
7458
+ "title": "Create Booking Base",
7459
+ "description": "Base properties for create booking request (shared between input and response)",
6996
7460
  "type": "object",
6997
7461
  "properties": {
6998
7462
  "id": {
@@ -7019,7 +7483,7 @@
7019
7483
  },
7020
7484
  "rejectionReason": {
7021
7485
  "type": "string",
7022
- "description": "Reason for rejection (if status is rejected)",
7486
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
7023
7487
  "readOnly": true
7024
7488
  },
7025
7489
  "createdAt": {
@@ -7040,79 +7504,194 @@
7040
7504
  "type": "integer",
7041
7505
  "description": "ID of the target location"
7042
7506
  },
7507
+ "externalId": {
7508
+ "type": "string",
7509
+ "maxLength": 255,
7510
+ "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"
7511
+ },
7512
+ "startAt": {
7513
+ "type": "string",
7514
+ "format": "date-time",
7515
+ "description": "Start time of the booking"
7516
+ },
7517
+ "endAt": {
7518
+ "type": "string",
7519
+ "format": "date-time",
7520
+ "description": "End time of the booking"
7521
+ },
7043
7522
  "evseId": {
7044
7523
  "type": "integer",
7045
- "description": "Specific EVSE ID (optional - if not provided, system will choose any available EVSE)"
7524
+ "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
7525
  },
7047
7526
  "evseCriteria": {
7048
7527
  "type": "object",
7049
- "description": "Criteria for selecting EVSE to be booked, not used if `evseId` is passed",
7528
+ "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
7529
  "properties": {
7051
7530
  "currentType": {
7052
- "type": "string",
7053
- "enum": [
7054
- "ac",
7055
- "dc"
7531
+ "oneOf": [
7532
+ {
7533
+ "type": "string",
7534
+ "enum": [
7535
+ "ac",
7536
+ "dc"
7537
+ ],
7538
+ "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
7539
+ },
7540
+ {
7541
+ "type": "null"
7542
+ }
7056
7543
  ],
7057
- "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
7544
+ "description": "Required current type (AC or DC). Omitted in response when not specified."
7058
7545
  },
7059
7546
  "minPower": {
7060
7547
  "type": "number",
7061
- "description": "Minimum power requirement (kW)"
7548
+ "description": "Minimum power requirement in kW. Omitted in response when not specified."
7062
7549
  },
7063
7550
  "maxPower": {
7064
7551
  "type": "number",
7065
- "description": "Maximum power requirement (kW)"
7552
+ "description": "Maximum power requirement in kW. Omitted in response when not specified."
7066
7553
  },
7067
7554
  "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"
7555
+ "oneOf": [
7556
+ {
7557
+ "type": "string",
7558
+ "enum": [
7559
+ "type1",
7560
+ "type2",
7561
+ "type3",
7562
+ "chademo",
7563
+ "ccs1",
7564
+ "ccs2",
7565
+ "schuko",
7566
+ "nacs",
7567
+ "cee16",
7568
+ "cee32",
7569
+ "j1772",
7570
+ "inductive",
7571
+ "nema-5-20",
7572
+ "type-e-french",
7573
+ "type-g-british",
7574
+ "type-j-swiss",
7575
+ "avcon",
7576
+ "gb-t-ac",
7577
+ "gb-t-dc",
7578
+ "chaoji",
7579
+ "nema-6-30",
7580
+ "nema-6-50"
7581
+ ],
7582
+ "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"
7583
+ },
7584
+ {
7585
+ "type": "null"
7586
+ }
7092
7587
  ],
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"
7588
+ "description": "Required connector type. Omitted in response when not specified."
7094
7589
  }
7095
7590
  }
7096
7591
  },
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"
7592
+ "parkingSpaceCriteria": {
7593
+ "type": "object",
7594
+ "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",
7595
+ "properties": {
7596
+ "vehicleWeightKg": {
7597
+ "type": "integer",
7598
+ "description": "Vehicle weight in kilograms. Omitted in response when not specified.",
7599
+ "minimum": 1
7600
+ },
7601
+ "vehicleHeightCm": {
7602
+ "type": "integer",
7603
+ "description": "Vehicle height in centimeters. Omitted in response when not specified.",
7604
+ "minimum": 1
7605
+ },
7606
+ "vehicleLengthCm": {
7607
+ "type": "integer",
7608
+ "description": "Vehicle length in centimeters. Omitted in response when not specified.",
7609
+ "minimum": 1
7610
+ },
7611
+ "vehicleWidthCm": {
7612
+ "type": "integer",
7613
+ "description": "Vehicle width in centimeters. Omitted in response when not specified.",
7614
+ "minimum": 1
7615
+ },
7616
+ "vehicleType": {
7617
+ "oneOf": [
7618
+ {
7619
+ "type": "string",
7620
+ "enum": [
7621
+ "two_and_three_wheel_vehicles_and_quadricycles",
7622
+ "passenger_vehicles",
7623
+ "passenger_vehicles_with_trailer",
7624
+ "light_duty_vans",
7625
+ "heavy_duty_tractor_units_without_trailer",
7626
+ "heavy_duty_trucks_without_articulation_point",
7627
+ "heavy_duty_trucks_with_trailer_attached",
7628
+ "buses_or_motor_coaches"
7629
+ ],
7630
+ "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"
7631
+ },
7632
+ {
7633
+ "type": "null"
7634
+ }
7635
+ ],
7636
+ "description": "Required vehicle type. Omitted in response when not specified."
7637
+ },
7638
+ "driveThroughRequired": {
7639
+ "type": "boolean",
7640
+ "description": "Whether parking space must support drive-through charging. Omitted in response when not specified."
7641
+ },
7642
+ "refrigerationOutletRequired": {
7643
+ "type": "boolean",
7644
+ "description": "Whether parking space must have refrigeration outlet. Omitted in response when not specified."
7645
+ },
7646
+ "dangerousGoodsAllowed": {
7647
+ "type": "boolean",
7648
+ "description": "Whether parking space must allow dangerous goods vehicles. Omitted in response when not specified."
7649
+ }
7650
+ }
7106
7651
  },
7107
- "externalId": {
7108
- "type": "string",
7109
- "maxLength": 255,
7110
- "nullable": true,
7111
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7652
+ "authorizedTokens": {
7653
+ "type": "array",
7654
+ "items": {
7655
+ "type": "object",
7656
+ "properties": {
7657
+ "id": {
7658
+ "type": "integer",
7659
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
7660
+ },
7661
+ "uid": {
7662
+ "type": "string",
7663
+ "description": "Unique identifier of the OCPI token"
7664
+ },
7665
+ "type": {
7666
+ "type": "string",
7667
+ "description": "Type of token (e.g., RFID, APP_USER)"
7668
+ },
7669
+ "contractId": {
7670
+ "type": "string",
7671
+ "description": "Contract identifier associated with the token (optional)"
7672
+ },
7673
+ "emspCountryCode": {
7674
+ "type": "string",
7675
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
7676
+ },
7677
+ "emspPartyId": {
7678
+ "type": "string",
7679
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
7680
+ }
7681
+ },
7682
+ "required": [
7683
+ "id",
7684
+ "uid",
7685
+ "type",
7686
+ "emspCountryCode",
7687
+ "emspPartyId"
7688
+ ]
7689
+ },
7690
+ "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
7691
  },
7113
7692
  "bookingId": {
7114
7693
  "type": "integer",
7115
- "description": "ID of the created booking (present only if status is approved)"
7694
+ "description": "ID of the created booking.\n\nResponse behavior: Only present when status is \"approved\". Omitted for \"pending\" and \"rejected\" requests.\n"
7116
7695
  }
7117
7696
  },
7118
7697
  "required": [
@@ -7128,7 +7707,8 @@
7128
7707
  ]
7129
7708
  },
7130
7709
  {
7131
- "title": "Update the given Booking",
7710
+ "title": "Update Booking Base",
7711
+ "description": "Base properties for update booking request (shared between input and response)",
7132
7712
  "type": "object",
7133
7713
  "properties": {
7134
7714
  "id": {
@@ -7155,7 +7735,7 @@
7155
7735
  },
7156
7736
  "rejectionReason": {
7157
7737
  "type": "string",
7158
- "description": "Reason for rejection (if status is rejected)",
7738
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
7159
7739
  "readOnly": true
7160
7740
  },
7161
7741
  "createdAt": {
@@ -7176,6 +7756,11 @@
7176
7756
  "type": "integer",
7177
7757
  "description": "ID of the user for whom the booking is made"
7178
7758
  },
7759
+ "externalId": {
7760
+ "type": "string",
7761
+ "maxLength": 255,
7762
+ "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"
7763
+ },
7179
7764
  "startAt": {
7180
7765
  "type": "string",
7181
7766
  "format": "date-time",
@@ -7186,11 +7771,45 @@
7186
7771
  "format": "date-time",
7187
7772
  "description": "Updated end time of the booking"
7188
7773
  },
7189
- "externalId": {
7190
- "type": "string",
7191
- "maxLength": 255,
7192
- "nullable": true,
7193
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7774
+ "authorizedTokens": {
7775
+ "type": "array",
7776
+ "items": {
7777
+ "type": "object",
7778
+ "properties": {
7779
+ "id": {
7780
+ "type": "integer",
7781
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
7782
+ },
7783
+ "uid": {
7784
+ "type": "string",
7785
+ "description": "Unique identifier of the OCPI token"
7786
+ },
7787
+ "type": {
7788
+ "type": "string",
7789
+ "description": "Type of token (e.g., RFID, APP_USER)"
7790
+ },
7791
+ "contractId": {
7792
+ "type": "string",
7793
+ "description": "Contract identifier associated with the token (optional)"
7794
+ },
7795
+ "emspCountryCode": {
7796
+ "type": "string",
7797
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
7798
+ },
7799
+ "emspPartyId": {
7800
+ "type": "string",
7801
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
7802
+ }
7803
+ },
7804
+ "required": [
7805
+ "id",
7806
+ "uid",
7807
+ "type",
7808
+ "emspCountryCode",
7809
+ "emspPartyId"
7810
+ ]
7811
+ },
7812
+ "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
7813
  }
7195
7814
  },
7196
7815
  "required": [
@@ -7230,7 +7849,7 @@
7230
7849
  },
7231
7850
  "rejectionReason": {
7232
7851
  "type": "string",
7233
- "description": "Reason for rejection (if status is rejected)",
7852
+ "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
7234
7853
  "readOnly": true
7235
7854
  },
7236
7855
  "createdAt": {
@@ -7249,9 +7868,8 @@
7249
7868
  },
7250
7869
  "externalId": {
7251
7870
  "type": "string",
7252
- "nullable": true,
7253
7871
  "maxLength": 255,
7254
- "description": "External identifier from roaming partner (e.g., OCPI request_id)"
7872
+ "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
7873
  }
7256
7874
  },
7257
7875
  "required": [
@@ -7329,9 +7947,45 @@
7329
7947
  "type": "integer",
7330
7948
  "description": "ID of the user associated with the booking"
7331
7949
  },
7332
- "ocpiTokenId": {
7333
- "type": "integer",
7334
- "description": "ID of the OCPI token associated with the booking"
7950
+ "authorizedTokens": {
7951
+ "type": "array",
7952
+ "items": {
7953
+ "type": "object",
7954
+ "properties": {
7955
+ "id": {
7956
+ "type": "integer",
7957
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
7958
+ },
7959
+ "uid": {
7960
+ "type": "string",
7961
+ "description": "Unique identifier of the OCPI token"
7962
+ },
7963
+ "type": {
7964
+ "type": "string",
7965
+ "description": "Type of token (e.g., RFID, APP_USER)"
7966
+ },
7967
+ "contractId": {
7968
+ "type": "string",
7969
+ "description": "Contract identifier associated with the token (optional)"
7970
+ },
7971
+ "emspCountryCode": {
7972
+ "type": "string",
7973
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
7974
+ },
7975
+ "emspPartyId": {
7976
+ "type": "string",
7977
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
7978
+ }
7979
+ },
7980
+ "required": [
7981
+ "id",
7982
+ "uid",
7983
+ "type",
7984
+ "emspCountryCode",
7985
+ "emspPartyId"
7986
+ ]
7987
+ },
7988
+ "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
7989
  },
7336
7990
  "locationId": {
7337
7991
  "type": "integer",
@@ -7485,9 +8139,45 @@
7485
8139
  "type": "integer",
7486
8140
  "description": "ID of the user associated with the booking"
7487
8141
  },
7488
- "ocpiTokenId": {
7489
- "type": "integer",
7490
- "description": "ID of the OCPI token associated with the booking"
8142
+ "authorizedTokens": {
8143
+ "type": "array",
8144
+ "items": {
8145
+ "type": "object",
8146
+ "properties": {
8147
+ "id": {
8148
+ "type": "integer",
8149
+ "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
8150
+ },
8151
+ "uid": {
8152
+ "type": "string",
8153
+ "description": "Unique identifier of the OCPI token"
8154
+ },
8155
+ "type": {
8156
+ "type": "string",
8157
+ "description": "Type of token (e.g., RFID, APP_USER)"
8158
+ },
8159
+ "contractId": {
8160
+ "type": "string",
8161
+ "description": "Contract identifier associated with the token (optional)"
8162
+ },
8163
+ "emspCountryCode": {
8164
+ "type": "string",
8165
+ "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
8166
+ },
8167
+ "emspPartyId": {
8168
+ "type": "string",
8169
+ "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
8170
+ }
8171
+ },
8172
+ "required": [
8173
+ "id",
8174
+ "uid",
8175
+ "type",
8176
+ "emspCountryCode",
8177
+ "emspPartyId"
8178
+ ]
8179
+ },
8180
+ "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
8181
  },
7492
8182
  "locationId": {
7493
8183
  "type": "integer",
@@ -19046,18 +19736,7 @@
19046
19736
  }
19047
19737
  }
19048
19738
  }
19049
- ],
19050
- "discriminator": {
19051
- "propertyName": "type",
19052
- "mapping": {
19053
- "user_controlled_schedule": "#/components/schemas/PersonalSmartChargingPreferencesUserControlledSchedule",
19054
- "solar": "#/components/schemas/PersonalSmartChargingPreferencesSolar",
19055
- "octopus_agile": "#/components/schemas/PersonalSmartChargingPreferencesOctopusAgile",
19056
- "octopus_go": "#/components/schemas/PersonalSmartChargingPreferencesOctopusGo",
19057
- "nordpool": "#/components/schemas/PersonalSmartChargingPreferencesNordPool",
19058
- "charger_electricity_rate": "#/components/schemas/PersonalSmartChargingPreferencesChargerElectricityRate"
19059
- }
19060
- }
19739
+ ]
19061
19740
  }
19062
19741
  }
19063
19742
  }
@@ -20567,16 +21246,7 @@
20567
21246
  "mode"
20568
21247
  ]
20569
21248
  }
20570
- ],
20571
- "discriminator": {
20572
- "propertyName": "mode",
20573
- "mapping": {
20574
- "tod": "#/components/schemas/SmartChargingTod",
20575
- "dynamic": "#/components/schemas/SmartChargingDynamic",
20576
- "user_schedule": "#/components/schemas/SmartChargingUserSchedule",
20577
- "disabled": "#/components/schemas/SmartChargingDisabled"
20578
- }
20579
- }
21249
+ ]
20580
21250
  }
20581
21251
  }
20582
21252
  }
@@ -24269,23 +24939,40 @@
24269
24939
  },
24270
24940
  "termType": {
24271
24941
  "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",
24942
+ "readOnly": true,
24273
24943
  "enum": [
24274
24944
  "marketing",
24275
24945
  "signup",
24276
24946
  "subscription",
24277
24947
  "top-up"
24278
24948
  ],
24279
- "readOnly": true
24949
+ "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
24950
  },
24281
24951
  "status": {
24282
24952
  "type": "string",
24283
- "description": "The consent status:\n- agreed: User has agreed to the terms\n- rejected: User has explicitly rejected the terms\n",
24284
24953
  "enum": [
24285
24954
  "agreed",
24286
24955
  "rejected"
24287
24956
  ],
24288
- "readOnly": true
24957
+ "description": "The consent status:\n- agreed: User has agreed to the terms\n- rejected: User has explicitly rejected the terms\n",
24958
+ "example": "agreed"
24959
+ },
24960
+ "collection": {
24961
+ "type": "string",
24962
+ "enum": [
24963
+ "explicit",
24964
+ "automatic"
24965
+ ],
24966
+ "description": "Defines how consent is collected:\n- **explicit**: Requires user explicit confirmation\n- **automatic**: Assumes consent upon use\n"
24967
+ },
24968
+ "source": {
24969
+ "type": "string",
24970
+ "readOnly": true,
24971
+ "enum": [
24972
+ "app",
24973
+ "api"
24974
+ ],
24975
+ "description": "Where the consent originated:\n- app: Consent created via mobile application\n- api: Consent created via API endpoint\n"
24289
24976
  },
24290
24977
  "agreedAt": {
24291
24978
  "type": "string",
@@ -24310,6 +24997,8 @@
24310
24997
  "termVersionId",
24311
24998
  "termType",
24312
24999
  "status",
25000
+ "collection",
25001
+ "source",
24313
25002
  "termVersionIsActive"
24314
25003
  ]
24315
25004
  }
@@ -24484,6 +25173,166 @@
24484
25173
  }
24485
25174
  }
24486
25175
  },
25176
+ "consentsCreate": {
25177
+ "201": {
25178
+ "schema": {
25179
+ "type": "object",
25180
+ "properties": {
25181
+ "data": {
25182
+ "type": "object",
25183
+ "properties": {
25184
+ "userId": {
25185
+ "type": "integer",
25186
+ "description": "The ID of the user who gave or rejected consent",
25187
+ "readOnly": true
25188
+ },
25189
+ "termVersionId": {
25190
+ "type": "integer",
25191
+ "description": "The ID of the specific term version for which consent was given or rejected",
25192
+ "readOnly": true
25193
+ },
25194
+ "termType": {
25195
+ "type": "string",
25196
+ "readOnly": true,
25197
+ "enum": [
25198
+ "marketing",
25199
+ "signup",
25200
+ "subscription",
25201
+ "top-up"
25202
+ ],
25203
+ "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"
25204
+ },
25205
+ "status": {
25206
+ "type": "string",
25207
+ "enum": [
25208
+ "agreed",
25209
+ "rejected"
25210
+ ],
25211
+ "description": "The consent status:\n- agreed: User has agreed to the terms\n- rejected: User has explicitly rejected the terms\n",
25212
+ "example": "agreed"
25213
+ },
25214
+ "collection": {
25215
+ "type": "string",
25216
+ "enum": [
25217
+ "explicit",
25218
+ "automatic"
25219
+ ],
25220
+ "description": "Defines how consent is collected:\n- **explicit**: Requires user explicit confirmation\n- **automatic**: Assumes consent upon use\n"
25221
+ },
25222
+ "source": {
25223
+ "type": "string",
25224
+ "readOnly": true,
25225
+ "enum": [
25226
+ "app",
25227
+ "api"
25228
+ ],
25229
+ "description": "Where the consent originated:\n- app: Consent created via mobile application\n- api: Consent created via API endpoint\n"
25230
+ },
25231
+ "agreedAt": {
25232
+ "type": "string",
25233
+ "format": "date-time",
25234
+ "description": "ISO 8601 formatted date",
25235
+ "readOnly": true
25236
+ },
25237
+ "rejectedAt": {
25238
+ "type": "string",
25239
+ "format": "date-time",
25240
+ "description": "ISO 8601 formatted date",
25241
+ "readOnly": true
25242
+ },
25243
+ "termVersionIsActive": {
25244
+ "type": "boolean",
25245
+ "description": "Whether the associated term version is currently active (not past or future)",
25246
+ "readOnly": true
25247
+ }
25248
+ },
25249
+ "required": [
25250
+ "userId",
25251
+ "termVersionId",
25252
+ "termType",
25253
+ "status",
25254
+ "collection",
25255
+ "source",
25256
+ "termVersionIsActive"
25257
+ ]
25258
+ }
25259
+ }
25260
+ }
25261
+ },
25262
+ "400": {
25263
+ "schema": {
25264
+ "type": "object",
25265
+ "properties": {
25266
+ "message": {
25267
+ "type": "string"
25268
+ }
25269
+ }
25270
+ }
25271
+ },
25272
+ "401": {
25273
+ "schema": {
25274
+ "type": "object",
25275
+ "properties": {
25276
+ "message": {
25277
+ "type": "string"
25278
+ }
25279
+ }
25280
+ }
25281
+ },
25282
+ "403": {
25283
+ "schema": {
25284
+ "type": "object",
25285
+ "properties": {
25286
+ "message": {
25287
+ "type": "string",
25288
+ "default": "This action is unauthorized."
25289
+ }
25290
+ }
25291
+ }
25292
+ },
25293
+ "409": {
25294
+ "schema": {
25295
+ "type": "object",
25296
+ "properties": {
25297
+ "message": {
25298
+ "type": "string"
25299
+ }
25300
+ }
25301
+ }
25302
+ },
25303
+ "422": {
25304
+ "schema": {
25305
+ "type": "object",
25306
+ "required": [
25307
+ "message"
25308
+ ],
25309
+ "properties": {
25310
+ "message": {
25311
+ "type": "string"
25312
+ },
25313
+ "errors": {
25314
+ "type": "object",
25315
+ "additionalProperties": {
25316
+ "type": "array",
25317
+ "items": {
25318
+ "type": "string"
25319
+ }
25320
+ }
25321
+ }
25322
+ }
25323
+ }
25324
+ },
25325
+ "429": {
25326
+ "schema": {
25327
+ "type": "object",
25328
+ "properties": {
25329
+ "message": {
25330
+ "type": "string"
25331
+ }
25332
+ }
25333
+ }
25334
+ }
25335
+ },
24487
25336
  "contactDetailsRead": {
24488
25337
  "200": {
24489
25338
  "schema": {
@@ -44006,6 +44855,10 @@
44006
44855
  "type": "integer",
44007
44856
  "readOnly": true
44008
44857
  },
44858
+ "externalId": {
44859
+ "type": "string",
44860
+ "nullable": true
44861
+ },
44009
44862
  "name": {
44010
44863
  "type": "array",
44011
44864
  "items": {
@@ -44021,7 +44874,7 @@
44021
44874
  }
44022
44875
  }
44023
44876
  },
44024
- "shortDescription": {
44877
+ "description": {
44025
44878
  "type": "array",
44026
44879
  "items": {
44027
44880
  "type": "object",
@@ -44036,7 +44889,7 @@
44036
44889
  }
44037
44890
  }
44038
44891
  },
44039
- "description": {
44892
+ "shortDescription": {
44040
44893
  "type": "array",
44041
44894
  "items": {
44042
44895
  "type": "object",
@@ -44066,51 +44919,6 @@
44066
44919
  }
44067
44920
  }
44068
44921
  },
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
44922
  "geoposition": {
44115
44923
  "type": "object",
44116
44924
  "properties": {
@@ -44604,6 +45412,119 @@
44604
45412
  "type": "string",
44605
45413
  "nullable": true
44606
45414
  },
45415
+ "timezone": {
45416
+ "type": "string",
45417
+ "nullable": true,
45418
+ "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
45419
+ },
45420
+ "parkingType": {
45421
+ "type": "string",
45422
+ "nullable": true,
45423
+ "enum": [
45424
+ "ALONG_MOTORWAY",
45425
+ "PARKING_GARAGE",
45426
+ "PARKING_LOT",
45427
+ "ON_DRIVEWAY",
45428
+ "ON_STREET",
45429
+ "UNDERGROUND_GARAGE"
45430
+ ],
45431
+ "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"
45432
+ },
45433
+ "accessMethods": {
45434
+ "type": "array",
45435
+ "nullable": true,
45436
+ "items": {
45437
+ "type": "string",
45438
+ "enum": [
45439
+ "OPEN",
45440
+ "TOKEN",
45441
+ "LICENSE_PLATE",
45442
+ "ACCESS_CODE",
45443
+ "INTERCOM",
45444
+ "PARKING_TICKET"
45445
+ ]
45446
+ },
45447
+ "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",
45448
+ "example": [
45449
+ "OPEN",
45450
+ "TOKEN"
45451
+ ]
45452
+ },
45453
+ "facilities": {
45454
+ "type": "array",
45455
+ "nullable": true,
45456
+ "items": {
45457
+ "type": "string",
45458
+ "enum": [
45459
+ "AIRPORT",
45460
+ "BIKE_SHARING",
45461
+ "BUS_STOP",
45462
+ "CAFE",
45463
+ "CARPOOL_PARKING",
45464
+ "FUEL_STATION",
45465
+ "HOTEL",
45466
+ "MALL",
45467
+ "METRO_STATION",
45468
+ "MUSEUM",
45469
+ "NATURE",
45470
+ "PARKING_LOT",
45471
+ "RECREATION_AREA",
45472
+ "RESTAURANT",
45473
+ "SPORT",
45474
+ "SUPERMARKET",
45475
+ "TAXI_STAND",
45476
+ "TRAIN_STATION",
45477
+ "TRAM_STOP",
45478
+ "WIFI"
45479
+ ]
45480
+ },
45481
+ "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"
45482
+ },
45483
+ "locationImage": {
45484
+ "type": "object",
45485
+ "properties": {
45486
+ "original": {
45487
+ "type": "string",
45488
+ "description": "URL to the original image"
45489
+ },
45490
+ "thumbnail": {
45491
+ "type": "string",
45492
+ "description": "URL to a thumbnail image"
45493
+ },
45494
+ "mimeType": {
45495
+ "type": "string"
45496
+ }
45497
+ },
45498
+ "required": [
45499
+ "original",
45500
+ "mimeType"
45501
+ ]
45502
+ },
45503
+ "images": {
45504
+ "type": "array",
45505
+ "items": {
45506
+ "type": "object",
45507
+ "properties": {
45508
+ "original": {
45509
+ "type": "string",
45510
+ "description": "URL to the original image"
45511
+ },
45512
+ "thumbnail": {
45513
+ "type": "string",
45514
+ "description": "URL to a thumbnail image"
45515
+ },
45516
+ "mimeType": {
45517
+ "type": "string"
45518
+ }
45519
+ },
45520
+ "required": [
45521
+ "original",
45522
+ "mimeType"
45523
+ ]
45524
+ },
45525
+ "readOnly": true,
45526
+ "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
45527
+ },
44607
45528
  "workingHours": {
44608
45529
  "type": "object",
44609
45530
  "properties": {
@@ -44798,25 +45719,6 @@
44798
45719
  }
44799
45720
  }
44800
45721
  },
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
45722
  "chargingZones": {
44821
45723
  "type": "array",
44822
45724
  "readOnly": true,
@@ -44886,11 +45788,9 @@
44886
45788
  },
44887
45789
  "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
44888
45790
  },
44889
- "externalAppData": {
44890
- "description": "Used to hold any external application data related to the session.",
44891
- "type": "object",
44892
- "nullable": true,
44893
- "additionalProperties": true
45791
+ "roamingOperatorId": {
45792
+ "description": "For roaming Locations, the ID of the roaming operator is provided.",
45793
+ "type": "integer"
44894
45794
  },
44895
45795
  "roaming": {
44896
45796
  "type": "object",
@@ -44932,6 +45832,18 @@
44932
45832
  "type": "string"
44933
45833
  }
44934
45834
  },
45835
+ "externalAppData": {
45836
+ "description": "Used to hold any external application data related to the session.",
45837
+ "type": "object",
45838
+ "nullable": true,
45839
+ "additionalProperties": true
45840
+ },
45841
+ "lastUpdatedAt": {
45842
+ "type": "string",
45843
+ "format": "date-time",
45844
+ "readOnly": true,
45845
+ "description": "ISO 8601 formatted date"
45846
+ },
44935
45847
  "status": {
44936
45848
  "deprecated": true,
44937
45849
  "type": "string",
@@ -44939,25 +45851,6 @@
44939
45851
  "enabled",
44940
45852
  "disabled"
44941
45853
  ]
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
45854
  }
44962
45855
  }
44963
45856
  }
@@ -45075,6 +45968,10 @@
45075
45968
  "type": "integer",
45076
45969
  "readOnly": true
45077
45970
  },
45971
+ "externalId": {
45972
+ "type": "string",
45973
+ "nullable": true
45974
+ },
45078
45975
  "name": {
45079
45976
  "type": "array",
45080
45977
  "items": {
@@ -45090,7 +45987,7 @@
45090
45987
  }
45091
45988
  }
45092
45989
  },
45093
- "shortDescription": {
45990
+ "description": {
45094
45991
  "type": "array",
45095
45992
  "items": {
45096
45993
  "type": "object",
@@ -45105,7 +46002,7 @@
45105
46002
  }
45106
46003
  }
45107
46004
  },
45108
- "description": {
46005
+ "shortDescription": {
45109
46006
  "type": "array",
45110
46007
  "items": {
45111
46008
  "type": "object",
@@ -45135,51 +46032,6 @@
45135
46032
  }
45136
46033
  }
45137
46034
  },
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
46035
  "geoposition": {
45184
46036
  "type": "object",
45185
46037
  "properties": {
@@ -45673,6 +46525,119 @@
45673
46525
  "type": "string",
45674
46526
  "nullable": true
45675
46527
  },
46528
+ "timezone": {
46529
+ "type": "string",
46530
+ "nullable": true,
46531
+ "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
46532
+ },
46533
+ "parkingType": {
46534
+ "type": "string",
46535
+ "nullable": true,
46536
+ "enum": [
46537
+ "ALONG_MOTORWAY",
46538
+ "PARKING_GARAGE",
46539
+ "PARKING_LOT",
46540
+ "ON_DRIVEWAY",
46541
+ "ON_STREET",
46542
+ "UNDERGROUND_GARAGE"
46543
+ ],
46544
+ "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"
46545
+ },
46546
+ "accessMethods": {
46547
+ "type": "array",
46548
+ "nullable": true,
46549
+ "items": {
46550
+ "type": "string",
46551
+ "enum": [
46552
+ "OPEN",
46553
+ "TOKEN",
46554
+ "LICENSE_PLATE",
46555
+ "ACCESS_CODE",
46556
+ "INTERCOM",
46557
+ "PARKING_TICKET"
46558
+ ]
46559
+ },
46560
+ "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",
46561
+ "example": [
46562
+ "OPEN",
46563
+ "TOKEN"
46564
+ ]
46565
+ },
46566
+ "facilities": {
46567
+ "type": "array",
46568
+ "nullable": true,
46569
+ "items": {
46570
+ "type": "string",
46571
+ "enum": [
46572
+ "AIRPORT",
46573
+ "BIKE_SHARING",
46574
+ "BUS_STOP",
46575
+ "CAFE",
46576
+ "CARPOOL_PARKING",
46577
+ "FUEL_STATION",
46578
+ "HOTEL",
46579
+ "MALL",
46580
+ "METRO_STATION",
46581
+ "MUSEUM",
46582
+ "NATURE",
46583
+ "PARKING_LOT",
46584
+ "RECREATION_AREA",
46585
+ "RESTAURANT",
46586
+ "SPORT",
46587
+ "SUPERMARKET",
46588
+ "TAXI_STAND",
46589
+ "TRAIN_STATION",
46590
+ "TRAM_STOP",
46591
+ "WIFI"
46592
+ ]
46593
+ },
46594
+ "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"
46595
+ },
46596
+ "locationImage": {
46597
+ "type": "object",
46598
+ "properties": {
46599
+ "original": {
46600
+ "type": "string",
46601
+ "description": "URL to the original image"
46602
+ },
46603
+ "thumbnail": {
46604
+ "type": "string",
46605
+ "description": "URL to a thumbnail image"
46606
+ },
46607
+ "mimeType": {
46608
+ "type": "string"
46609
+ }
46610
+ },
46611
+ "required": [
46612
+ "original",
46613
+ "mimeType"
46614
+ ]
46615
+ },
46616
+ "images": {
46617
+ "type": "array",
46618
+ "items": {
46619
+ "type": "object",
46620
+ "properties": {
46621
+ "original": {
46622
+ "type": "string",
46623
+ "description": "URL to the original image"
46624
+ },
46625
+ "thumbnail": {
46626
+ "type": "string",
46627
+ "description": "URL to a thumbnail image"
46628
+ },
46629
+ "mimeType": {
46630
+ "type": "string"
46631
+ }
46632
+ },
46633
+ "required": [
46634
+ "original",
46635
+ "mimeType"
46636
+ ]
46637
+ },
46638
+ "readOnly": true,
46639
+ "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
46640
+ },
45676
46641
  "workingHours": {
45677
46642
  "type": "object",
45678
46643
  "properties": {
@@ -45867,25 +46832,6 @@
45867
46832
  }
45868
46833
  }
45869
46834
  },
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
46835
  "chargingZones": {
45890
46836
  "type": "array",
45891
46837
  "readOnly": true,
@@ -45955,11 +46901,9 @@
45955
46901
  },
45956
46902
  "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
45957
46903
  },
45958
- "externalAppData": {
45959
- "description": "Used to hold any external application data related to the session.",
45960
- "type": "object",
45961
- "nullable": true,
45962
- "additionalProperties": true
46904
+ "roamingOperatorId": {
46905
+ "description": "For roaming Locations, the ID of the roaming operator is provided.",
46906
+ "type": "integer"
45963
46907
  },
45964
46908
  "roaming": {
45965
46909
  "type": "object",
@@ -46001,6 +46945,18 @@
46001
46945
  "type": "string"
46002
46946
  }
46003
46947
  },
46948
+ "externalAppData": {
46949
+ "description": "Used to hold any external application data related to the session.",
46950
+ "type": "object",
46951
+ "nullable": true,
46952
+ "additionalProperties": true
46953
+ },
46954
+ "lastUpdatedAt": {
46955
+ "type": "string",
46956
+ "format": "date-time",
46957
+ "readOnly": true,
46958
+ "description": "ISO 8601 formatted date"
46959
+ },
46004
46960
  "status": {
46005
46961
  "deprecated": true,
46006
46962
  "type": "string",
@@ -46008,25 +46964,6 @@
46008
46964
  "enabled",
46009
46965
  "disabled"
46010
46966
  ]
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
46967
  }
46031
46968
  }
46032
46969
  }
@@ -46117,6 +47054,10 @@
46117
47054
  "type": "integer",
46118
47055
  "readOnly": true
46119
47056
  },
47057
+ "externalId": {
47058
+ "type": "string",
47059
+ "nullable": true
47060
+ },
46120
47061
  "name": {
46121
47062
  "type": "array",
46122
47063
  "items": {
@@ -46132,7 +47073,7 @@
46132
47073
  }
46133
47074
  }
46134
47075
  },
46135
- "shortDescription": {
47076
+ "description": {
46136
47077
  "type": "array",
46137
47078
  "items": {
46138
47079
  "type": "object",
@@ -46147,7 +47088,7 @@
46147
47088
  }
46148
47089
  }
46149
47090
  },
46150
- "description": {
47091
+ "shortDescription": {
46151
47092
  "type": "array",
46152
47093
  "items": {
46153
47094
  "type": "object",
@@ -46177,51 +47118,6 @@
46177
47118
  }
46178
47119
  }
46179
47120
  },
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
47121
  "geoposition": {
46226
47122
  "type": "object",
46227
47123
  "properties": {
@@ -46715,6 +47611,119 @@
46715
47611
  "type": "string",
46716
47612
  "nullable": true
46717
47613
  },
47614
+ "timezone": {
47615
+ "type": "string",
47616
+ "nullable": true,
47617
+ "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
47618
+ },
47619
+ "parkingType": {
47620
+ "type": "string",
47621
+ "nullable": true,
47622
+ "enum": [
47623
+ "ALONG_MOTORWAY",
47624
+ "PARKING_GARAGE",
47625
+ "PARKING_LOT",
47626
+ "ON_DRIVEWAY",
47627
+ "ON_STREET",
47628
+ "UNDERGROUND_GARAGE"
47629
+ ],
47630
+ "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"
47631
+ },
47632
+ "accessMethods": {
47633
+ "type": "array",
47634
+ "nullable": true,
47635
+ "items": {
47636
+ "type": "string",
47637
+ "enum": [
47638
+ "OPEN",
47639
+ "TOKEN",
47640
+ "LICENSE_PLATE",
47641
+ "ACCESS_CODE",
47642
+ "INTERCOM",
47643
+ "PARKING_TICKET"
47644
+ ]
47645
+ },
47646
+ "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",
47647
+ "example": [
47648
+ "OPEN",
47649
+ "TOKEN"
47650
+ ]
47651
+ },
47652
+ "facilities": {
47653
+ "type": "array",
47654
+ "nullable": true,
47655
+ "items": {
47656
+ "type": "string",
47657
+ "enum": [
47658
+ "AIRPORT",
47659
+ "BIKE_SHARING",
47660
+ "BUS_STOP",
47661
+ "CAFE",
47662
+ "CARPOOL_PARKING",
47663
+ "FUEL_STATION",
47664
+ "HOTEL",
47665
+ "MALL",
47666
+ "METRO_STATION",
47667
+ "MUSEUM",
47668
+ "NATURE",
47669
+ "PARKING_LOT",
47670
+ "RECREATION_AREA",
47671
+ "RESTAURANT",
47672
+ "SPORT",
47673
+ "SUPERMARKET",
47674
+ "TAXI_STAND",
47675
+ "TRAIN_STATION",
47676
+ "TRAM_STOP",
47677
+ "WIFI"
47678
+ ]
47679
+ },
47680
+ "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"
47681
+ },
47682
+ "locationImage": {
47683
+ "type": "object",
47684
+ "properties": {
47685
+ "original": {
47686
+ "type": "string",
47687
+ "description": "URL to the original image"
47688
+ },
47689
+ "thumbnail": {
47690
+ "type": "string",
47691
+ "description": "URL to a thumbnail image"
47692
+ },
47693
+ "mimeType": {
47694
+ "type": "string"
47695
+ }
47696
+ },
47697
+ "required": [
47698
+ "original",
47699
+ "mimeType"
47700
+ ]
47701
+ },
47702
+ "images": {
47703
+ "type": "array",
47704
+ "items": {
47705
+ "type": "object",
47706
+ "properties": {
47707
+ "original": {
47708
+ "type": "string",
47709
+ "description": "URL to the original image"
47710
+ },
47711
+ "thumbnail": {
47712
+ "type": "string",
47713
+ "description": "URL to a thumbnail image"
47714
+ },
47715
+ "mimeType": {
47716
+ "type": "string"
47717
+ }
47718
+ },
47719
+ "required": [
47720
+ "original",
47721
+ "mimeType"
47722
+ ]
47723
+ },
47724
+ "readOnly": true,
47725
+ "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
47726
+ },
46718
47727
  "workingHours": {
46719
47728
  "type": "object",
46720
47729
  "properties": {
@@ -46909,25 +47918,6 @@
46909
47918
  }
46910
47919
  }
46911
47920
  },
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
47921
  "chargingZones": {
46932
47922
  "type": "array",
46933
47923
  "readOnly": true,
@@ -46997,11 +47987,9 @@
46997
47987
  },
46998
47988
  "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
46999
47989
  },
47000
- "externalAppData": {
47001
- "description": "Used to hold any external application data related to the session.",
47002
- "type": "object",
47003
- "nullable": true,
47004
- "additionalProperties": true
47990
+ "roamingOperatorId": {
47991
+ "description": "For roaming Locations, the ID of the roaming operator is provided.",
47992
+ "type": "integer"
47005
47993
  },
47006
47994
  "roaming": {
47007
47995
  "type": "object",
@@ -47043,6 +48031,18 @@
47043
48031
  "type": "string"
47044
48032
  }
47045
48033
  },
48034
+ "externalAppData": {
48035
+ "description": "Used to hold any external application data related to the session.",
48036
+ "type": "object",
48037
+ "nullable": true,
48038
+ "additionalProperties": true
48039
+ },
48040
+ "lastUpdatedAt": {
48041
+ "type": "string",
48042
+ "format": "date-time",
48043
+ "readOnly": true,
48044
+ "description": "ISO 8601 formatted date"
48045
+ },
47046
48046
  "status": {
47047
48047
  "deprecated": true,
47048
48048
  "type": "string",
@@ -47050,25 +48050,6 @@
47050
48050
  "enabled",
47051
48051
  "disabled"
47052
48052
  ]
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
48053
  }
47073
48054
  }
47074
48055
  }
@@ -47180,6 +48161,10 @@
47180
48161
  "type": "integer",
47181
48162
  "readOnly": true
47182
48163
  },
48164
+ "externalId": {
48165
+ "type": "string",
48166
+ "nullable": true
48167
+ },
47183
48168
  "name": {
47184
48169
  "type": "array",
47185
48170
  "items": {
@@ -47195,7 +48180,7 @@
47195
48180
  }
47196
48181
  }
47197
48182
  },
47198
- "shortDescription": {
48183
+ "description": {
47199
48184
  "type": "array",
47200
48185
  "items": {
47201
48186
  "type": "object",
@@ -47210,7 +48195,7 @@
47210
48195
  }
47211
48196
  }
47212
48197
  },
47213
- "description": {
48198
+ "shortDescription": {
47214
48199
  "type": "array",
47215
48200
  "items": {
47216
48201
  "type": "object",
@@ -47240,51 +48225,6 @@
47240
48225
  }
47241
48226
  }
47242
48227
  },
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
48228
  "geoposition": {
47289
48229
  "type": "object",
47290
48230
  "properties": {
@@ -47778,6 +48718,119 @@
47778
48718
  "type": "string",
47779
48719
  "nullable": true
47780
48720
  },
48721
+ "timezone": {
48722
+ "type": "string",
48723
+ "nullable": true,
48724
+ "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
48725
+ },
48726
+ "parkingType": {
48727
+ "type": "string",
48728
+ "nullable": true,
48729
+ "enum": [
48730
+ "ALONG_MOTORWAY",
48731
+ "PARKING_GARAGE",
48732
+ "PARKING_LOT",
48733
+ "ON_DRIVEWAY",
48734
+ "ON_STREET",
48735
+ "UNDERGROUND_GARAGE"
48736
+ ],
48737
+ "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"
48738
+ },
48739
+ "accessMethods": {
48740
+ "type": "array",
48741
+ "nullable": true,
48742
+ "items": {
48743
+ "type": "string",
48744
+ "enum": [
48745
+ "OPEN",
48746
+ "TOKEN",
48747
+ "LICENSE_PLATE",
48748
+ "ACCESS_CODE",
48749
+ "INTERCOM",
48750
+ "PARKING_TICKET"
48751
+ ]
48752
+ },
48753
+ "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",
48754
+ "example": [
48755
+ "OPEN",
48756
+ "TOKEN"
48757
+ ]
48758
+ },
48759
+ "facilities": {
48760
+ "type": "array",
48761
+ "nullable": true,
48762
+ "items": {
48763
+ "type": "string",
48764
+ "enum": [
48765
+ "AIRPORT",
48766
+ "BIKE_SHARING",
48767
+ "BUS_STOP",
48768
+ "CAFE",
48769
+ "CARPOOL_PARKING",
48770
+ "FUEL_STATION",
48771
+ "HOTEL",
48772
+ "MALL",
48773
+ "METRO_STATION",
48774
+ "MUSEUM",
48775
+ "NATURE",
48776
+ "PARKING_LOT",
48777
+ "RECREATION_AREA",
48778
+ "RESTAURANT",
48779
+ "SPORT",
48780
+ "SUPERMARKET",
48781
+ "TAXI_STAND",
48782
+ "TRAIN_STATION",
48783
+ "TRAM_STOP",
48784
+ "WIFI"
48785
+ ]
48786
+ },
48787
+ "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"
48788
+ },
48789
+ "locationImage": {
48790
+ "type": "object",
48791
+ "properties": {
48792
+ "original": {
48793
+ "type": "string",
48794
+ "description": "URL to the original image"
48795
+ },
48796
+ "thumbnail": {
48797
+ "type": "string",
48798
+ "description": "URL to a thumbnail image"
48799
+ },
48800
+ "mimeType": {
48801
+ "type": "string"
48802
+ }
48803
+ },
48804
+ "required": [
48805
+ "original",
48806
+ "mimeType"
48807
+ ]
48808
+ },
48809
+ "images": {
48810
+ "type": "array",
48811
+ "items": {
48812
+ "type": "object",
48813
+ "properties": {
48814
+ "original": {
48815
+ "type": "string",
48816
+ "description": "URL to the original image"
48817
+ },
48818
+ "thumbnail": {
48819
+ "type": "string",
48820
+ "description": "URL to a thumbnail image"
48821
+ },
48822
+ "mimeType": {
48823
+ "type": "string"
48824
+ }
48825
+ },
48826
+ "required": [
48827
+ "original",
48828
+ "mimeType"
48829
+ ]
48830
+ },
48831
+ "readOnly": true,
48832
+ "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
48833
+ },
47781
48834
  "workingHours": {
47782
48835
  "type": "object",
47783
48836
  "properties": {
@@ -47972,25 +49025,6 @@
47972
49025
  }
47973
49026
  }
47974
49027
  },
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
49028
  "chargingZones": {
47995
49029
  "type": "array",
47996
49030
  "readOnly": true,
@@ -48060,11 +49094,9 @@
48060
49094
  },
48061
49095
  "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
48062
49096
  },
48063
- "externalAppData": {
48064
- "description": "Used to hold any external application data related to the session.",
48065
- "type": "object",
48066
- "nullable": true,
48067
- "additionalProperties": true
49097
+ "roamingOperatorId": {
49098
+ "description": "For roaming Locations, the ID of the roaming operator is provided.",
49099
+ "type": "integer"
48068
49100
  },
48069
49101
  "roaming": {
48070
49102
  "type": "object",
@@ -48106,6 +49138,18 @@
48106
49138
  "type": "string"
48107
49139
  }
48108
49140
  },
49141
+ "externalAppData": {
49142
+ "description": "Used to hold any external application data related to the session.",
49143
+ "type": "object",
49144
+ "nullable": true,
49145
+ "additionalProperties": true
49146
+ },
49147
+ "lastUpdatedAt": {
49148
+ "type": "string",
49149
+ "format": "date-time",
49150
+ "readOnly": true,
49151
+ "description": "ISO 8601 formatted date"
49152
+ },
48109
49153
  "status": {
48110
49154
  "deprecated": true,
48111
49155
  "type": "string",
@@ -48113,25 +49157,6 @@
48113
49157
  "enabled",
48114
49158
  "disabled"
48115
49159
  ]
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
49160
  }
48136
49161
  }
48137
49162
  }
@@ -59012,7 +60037,8 @@
59012
60037
  "Windcave",
59013
60038
  "Web portal",
59014
60039
  "AdyenCastles",
59015
- "Printec Castles"
60040
+ "Printec Castles",
60041
+ "Cardlink Castles"
59016
60042
  ]
59017
60043
  },
59018
60044
  "operatorId": {
@@ -59133,7 +60159,8 @@
59133
60159
  "Windcave",
59134
60160
  "Web portal",
59135
60161
  "AdyenCastles",
59136
- "Printec Castles"
60162
+ "Printec Castles",
60163
+ "Cardlink Castles"
59137
60164
  ]
59138
60165
  },
59139
60166
  "operatorId": {
@@ -59268,7 +60295,8 @@
59268
60295
  "Windcave",
59269
60296
  "Web portal",
59270
60297
  "AdyenCastles",
59271
- "Printec Castles"
60298
+ "Printec Castles",
60299
+ "Cardlink Castles"
59272
60300
  ]
59273
60301
  },
59274
60302
  "operatorId": {
@@ -59323,7 +60351,8 @@
59323
60351
  "Windcave",
59324
60352
  "Web portal",
59325
60353
  "AdyenCastles",
59326
- "Printec Castles"
60354
+ "Printec Castles",
60355
+ "Cardlink Castles"
59327
60356
  ]
59328
60357
  },
59329
60358
  "operatorId": {
@@ -59388,7 +60417,8 @@
59388
60417
  "Windcave",
59389
60418
  "Web portal",
59390
60419
  "AdyenCastles",
59391
- "Printec Castles"
60420
+ "Printec Castles",
60421
+ "Cardlink Castles"
59392
60422
  ]
59393
60423
  },
59394
60424
  "operatorId": {
@@ -59447,7 +60477,8 @@
59447
60477
  "Windcave",
59448
60478
  "Web portal",
59449
60479
  "AdyenCastles",
59450
- "Printec Castles"
60480
+ "Printec Castles",
60481
+ "Cardlink Castles"
59451
60482
  ]
59452
60483
  },
59453
60484
  "operatorId": {
@@ -59505,7 +60536,8 @@
59505
60536
  "Windcave",
59506
60537
  "Web portal",
59507
60538
  "AdyenCastles",
59508
- "Printec Castles"
60539
+ "Printec Castles",
60540
+ "Cardlink Castles"
59509
60541
  ]
59510
60542
  },
59511
60543
  "operatorId": {
@@ -59585,7 +60617,8 @@
59585
60617
  "Windcave",
59586
60618
  "Web portal",
59587
60619
  "AdyenCastles",
59588
- "Printec Castles"
60620
+ "Printec Castles",
60621
+ "Cardlink Castles"
59589
60622
  ]
59590
60623
  },
59591
60624
  "operatorId": {
@@ -59640,7 +60673,8 @@
59640
60673
  "Windcave",
59641
60674
  "Web portal",
59642
60675
  "AdyenCastles",
59643
- "Printec Castles"
60676
+ "Printec Castles",
60677
+ "Cardlink Castles"
59644
60678
  ]
59645
60679
  },
59646
60680
  "operatorId": {
@@ -59717,7 +60751,8 @@
59717
60751
  "Windcave",
59718
60752
  "Web portal",
59719
60753
  "AdyenCastles",
59720
- "Printec Castles"
60754
+ "Printec Castles",
60755
+ "Cardlink Castles"
59721
60756
  ]
59722
60757
  },
59723
60758
  "operatorId": {
@@ -59838,7 +60873,146 @@
59838
60873
  "Windcave",
59839
60874
  "Web portal",
59840
60875
  "AdyenCastles",
59841
- "Printec Castles"
60876
+ "Printec Castles",
60877
+ "Cardlink Castles"
60878
+ ]
60879
+ },
60880
+ "operatorId": {
60881
+ "type": "integer"
60882
+ },
60883
+ "chargingZoneId": {
60884
+ "type": "integer",
60885
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
60886
+ },
60887
+ "chargePointId": {
60888
+ "type": "integer",
60889
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
60890
+ },
60891
+ "adminToken": {
60892
+ "type": "string",
60893
+ "readOnly": true,
60894
+ "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."
60895
+ },
60896
+ "networkStatus": {
60897
+ "type": "string",
60898
+ "enum": [
60899
+ "online",
60900
+ "offline",
60901
+ "unknown"
60902
+ ]
60903
+ },
60904
+ "phone": {
60905
+ "type": "string"
60906
+ },
60907
+ "defaultLanguage": {
60908
+ "type": "string"
60909
+ },
60910
+ "presentCardOnStopSession": {
60911
+ "type": "boolean",
60912
+ "default": false
60913
+ },
60914
+ "info": {
60915
+ "type": "array",
60916
+ "items": {
60917
+ "type": "object",
60918
+ "properties": {
60919
+ "locale": {
60920
+ "type": "string",
60921
+ "description": "valid locale"
60922
+ },
60923
+ "translation": {
60924
+ "type": "string"
60925
+ }
60926
+ }
60927
+ }
60928
+ },
60929
+ "currencyCode": {
60930
+ "type": "string",
60931
+ "readOnly": true
60932
+ },
60933
+ "countryCode": {
60934
+ "type": "string",
60935
+ "description": "ISO 3166-1 alpha-2 country code",
60936
+ "readOnly": true
60937
+ },
60938
+ "serialNumber": {
60939
+ "type": "string"
60940
+ },
60941
+ "externalId": {
60942
+ "type": "string"
60943
+ },
60944
+ "supportedLanguages": {
60945
+ "type": "array",
60946
+ "items": {
60947
+ "type": "string"
60948
+ },
60949
+ "nullable": true,
60950
+ "readOnly": true
60951
+ },
60952
+ "bundle": {
60953
+ "type": "object",
60954
+ "readOnly": true,
60955
+ "properties": {
60956
+ "version": {
60957
+ "type": "string",
60958
+ "example": [
60959
+ "1.0.0",
60960
+ "1.0.1",
60961
+ "2.1.0"
60962
+ ],
60963
+ "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."
60964
+ },
60965
+ "downloadUrl": {
60966
+ "type": "string",
60967
+ "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
60968
+ }
60969
+ }
60970
+ },
60971
+ "networkStatusMonitoringEnabled": {
60972
+ "type": "boolean",
60973
+ "readOnly": true
60974
+ }
60975
+ }
60976
+ },
60977
+ {
60978
+ "title": "Cardlink Castles",
60979
+ "required": [
60980
+ "phone",
60981
+ "defaultLanguage",
60982
+ "info",
60983
+ "bundle",
60984
+ "name",
60985
+ "integrationId",
60986
+ "terminalType",
60987
+ "operatorId"
60988
+ ],
60989
+ "type": "object",
60990
+ "properties": {
60991
+ "id": {
60992
+ "type": "integer",
60993
+ "readOnly": true
60994
+ },
60995
+ "name": {
60996
+ "type": "string"
60997
+ },
60998
+ "integrationId": {
60999
+ "type": "integer"
61000
+ },
61001
+ "terminalType": {
61002
+ "type": "string",
61003
+ "enum": [
61004
+ "Payter",
61005
+ "Valina",
61006
+ "Crane",
61007
+ "Ampeco",
61008
+ "Nayax",
61009
+ "Embedded",
61010
+ "Pax",
61011
+ "Windcave",
61012
+ "Web portal",
61013
+ "AdyenCastles",
61014
+ "Printec Castles",
61015
+ "Cardlink Castles"
59842
61016
  ]
59843
61017
  },
59844
61018
  "operatorId": {
@@ -59857,6 +61031,12 @@
59857
61031
  "readOnly": true,
59858
61032
  "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."
59859
61033
  },
61034
+ "isOnline": {
61035
+ "type": "boolean",
61036
+ "readOnly": true,
61037
+ "deprecated": true,
61038
+ "description": "Use `networkStatus` instead"
61039
+ },
59860
61040
  "networkStatus": {
59861
61041
  "type": "string",
59862
61042
  "enum": [
@@ -59894,11 +61074,6 @@
59894
61074
  "type": "string",
59895
61075
  "readOnly": true
59896
61076
  },
59897
- "countryCode": {
59898
- "type": "string",
59899
- "description": "ISO 3166-1 alpha-2 country code",
59900
- "readOnly": true
59901
- },
59902
61077
  "serialNumber": {
59903
61078
  "type": "string"
59904
61079
  },
@@ -60093,7 +61268,8 @@
60093
61268
  "Windcave",
60094
61269
  "Web portal",
60095
61270
  "AdyenCastles",
60096
- "Printec Castles"
61271
+ "Printec Castles",
61272
+ "Cardlink Castles"
60097
61273
  ]
60098
61274
  },
60099
61275
  "operatorId": {
@@ -60214,7 +61390,8 @@
60214
61390
  "Windcave",
60215
61391
  "Web portal",
60216
61392
  "AdyenCastles",
60217
- "Printec Castles"
61393
+ "Printec Castles",
61394
+ "Cardlink Castles"
60218
61395
  ]
60219
61396
  },
60220
61397
  "operatorId": {
@@ -60349,7 +61526,8 @@
60349
61526
  "Windcave",
60350
61527
  "Web portal",
60351
61528
  "AdyenCastles",
60352
- "Printec Castles"
61529
+ "Printec Castles",
61530
+ "Cardlink Castles"
60353
61531
  ]
60354
61532
  },
60355
61533
  "operatorId": {
@@ -60404,7 +61582,8 @@
60404
61582
  "Windcave",
60405
61583
  "Web portal",
60406
61584
  "AdyenCastles",
60407
- "Printec Castles"
61585
+ "Printec Castles",
61586
+ "Cardlink Castles"
60408
61587
  ]
60409
61588
  },
60410
61589
  "operatorId": {
@@ -60469,7 +61648,8 @@
60469
61648
  "Windcave",
60470
61649
  "Web portal",
60471
61650
  "AdyenCastles",
60472
- "Printec Castles"
61651
+ "Printec Castles",
61652
+ "Cardlink Castles"
60473
61653
  ]
60474
61654
  },
60475
61655
  "operatorId": {
@@ -60528,7 +61708,8 @@
60528
61708
  "Windcave",
60529
61709
  "Web portal",
60530
61710
  "AdyenCastles",
60531
- "Printec Castles"
61711
+ "Printec Castles",
61712
+ "Cardlink Castles"
60532
61713
  ]
60533
61714
  },
60534
61715
  "operatorId": {
@@ -60586,7 +61767,8 @@
60586
61767
  "Windcave",
60587
61768
  "Web portal",
60588
61769
  "AdyenCastles",
60589
- "Printec Castles"
61770
+ "Printec Castles",
61771
+ "Cardlink Castles"
60590
61772
  ]
60591
61773
  },
60592
61774
  "operatorId": {
@@ -60666,7 +61848,8 @@
60666
61848
  "Windcave",
60667
61849
  "Web portal",
60668
61850
  "AdyenCastles",
60669
- "Printec Castles"
61851
+ "Printec Castles",
61852
+ "Cardlink Castles"
60670
61853
  ]
60671
61854
  },
60672
61855
  "operatorId": {
@@ -60721,7 +61904,8 @@
60721
61904
  "Windcave",
60722
61905
  "Web portal",
60723
61906
  "AdyenCastles",
60724
- "Printec Castles"
61907
+ "Printec Castles",
61908
+ "Cardlink Castles"
60725
61909
  ]
60726
61910
  },
60727
61911
  "operatorId": {
@@ -60798,7 +61982,268 @@
60798
61982
  "Windcave",
60799
61983
  "Web portal",
60800
61984
  "AdyenCastles",
60801
- "Printec Castles"
61985
+ "Printec Castles",
61986
+ "Cardlink Castles"
61987
+ ]
61988
+ },
61989
+ "operatorId": {
61990
+ "type": "integer"
61991
+ },
61992
+ "chargingZoneId": {
61993
+ "type": "integer",
61994
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
61995
+ },
61996
+ "chargePointId": {
61997
+ "type": "integer",
61998
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
61999
+ },
62000
+ "adminToken": {
62001
+ "type": "string",
62002
+ "readOnly": true,
62003
+ "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."
62004
+ },
62005
+ "networkStatus": {
62006
+ "type": "string",
62007
+ "enum": [
62008
+ "online",
62009
+ "offline",
62010
+ "unknown"
62011
+ ]
62012
+ },
62013
+ "phone": {
62014
+ "type": "string"
62015
+ },
62016
+ "defaultLanguage": {
62017
+ "type": "string"
62018
+ },
62019
+ "presentCardOnStopSession": {
62020
+ "type": "boolean",
62021
+ "default": false
62022
+ },
62023
+ "info": {
62024
+ "type": "array",
62025
+ "items": {
62026
+ "type": "object",
62027
+ "properties": {
62028
+ "locale": {
62029
+ "type": "string",
62030
+ "description": "valid locale"
62031
+ },
62032
+ "translation": {
62033
+ "type": "string"
62034
+ }
62035
+ }
62036
+ }
62037
+ },
62038
+ "currencyCode": {
62039
+ "type": "string",
62040
+ "readOnly": true
62041
+ },
62042
+ "serialNumber": {
62043
+ "type": "string"
62044
+ },
62045
+ "externalId": {
62046
+ "type": "string"
62047
+ },
62048
+ "merchantAccount": {
62049
+ "type": "string",
62050
+ "description": "Unique identifier of the merchant in Adyen's portal"
62051
+ },
62052
+ "adyenApiKey": {
62053
+ "type": "string",
62054
+ "description": "API key to authenticate requests to Adyen"
62055
+ },
62056
+ "supportedLanguages": {
62057
+ "type": "array",
62058
+ "items": {
62059
+ "type": "string"
62060
+ },
62061
+ "nullable": true,
62062
+ "readOnly": true
62063
+ },
62064
+ "networkStatusMonitoringEnabled": {
62065
+ "type": "boolean",
62066
+ "readOnly": true
62067
+ }
62068
+ }
62069
+ },
62070
+ {
62071
+ "title": "Printec Castles",
62072
+ "required": [
62073
+ "phone",
62074
+ "defaultLanguage",
62075
+ "info",
62076
+ "bundle",
62077
+ "name",
62078
+ "integrationId",
62079
+ "terminalType",
62080
+ "operatorId"
62081
+ ],
62082
+ "type": "object",
62083
+ "properties": {
62084
+ "id": {
62085
+ "type": "integer",
62086
+ "readOnly": true
62087
+ },
62088
+ "name": {
62089
+ "type": "string"
62090
+ },
62091
+ "integrationId": {
62092
+ "type": "integer"
62093
+ },
62094
+ "terminalType": {
62095
+ "type": "string",
62096
+ "enum": [
62097
+ "Payter",
62098
+ "Valina",
62099
+ "Crane",
62100
+ "Ampeco",
62101
+ "Nayax",
62102
+ "Embedded",
62103
+ "Pax",
62104
+ "Windcave",
62105
+ "Web portal",
62106
+ "AdyenCastles",
62107
+ "Printec Castles",
62108
+ "Cardlink Castles"
62109
+ ]
62110
+ },
62111
+ "operatorId": {
62112
+ "type": "integer"
62113
+ },
62114
+ "chargingZoneId": {
62115
+ "type": "integer",
62116
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
62117
+ },
62118
+ "chargePointId": {
62119
+ "type": "integer",
62120
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
62121
+ },
62122
+ "adminToken": {
62123
+ "type": "string",
62124
+ "readOnly": true,
62125
+ "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."
62126
+ },
62127
+ "networkStatus": {
62128
+ "type": "string",
62129
+ "enum": [
62130
+ "online",
62131
+ "offline",
62132
+ "unknown"
62133
+ ]
62134
+ },
62135
+ "phone": {
62136
+ "type": "string"
62137
+ },
62138
+ "defaultLanguage": {
62139
+ "type": "string"
62140
+ },
62141
+ "presentCardOnStopSession": {
62142
+ "type": "boolean",
62143
+ "default": false
62144
+ },
62145
+ "info": {
62146
+ "type": "array",
62147
+ "items": {
62148
+ "type": "object",
62149
+ "properties": {
62150
+ "locale": {
62151
+ "type": "string",
62152
+ "description": "valid locale"
62153
+ },
62154
+ "translation": {
62155
+ "type": "string"
62156
+ }
62157
+ }
62158
+ }
62159
+ },
62160
+ "currencyCode": {
62161
+ "type": "string",
62162
+ "readOnly": true
62163
+ },
62164
+ "countryCode": {
62165
+ "type": "string",
62166
+ "description": "ISO 3166-1 alpha-2 country code",
62167
+ "readOnly": true
62168
+ },
62169
+ "serialNumber": {
62170
+ "type": "string"
62171
+ },
62172
+ "externalId": {
62173
+ "type": "string"
62174
+ },
62175
+ "supportedLanguages": {
62176
+ "type": "array",
62177
+ "items": {
62178
+ "type": "string"
62179
+ },
62180
+ "nullable": true,
62181
+ "readOnly": true
62182
+ },
62183
+ "bundle": {
62184
+ "type": "object",
62185
+ "readOnly": true,
62186
+ "properties": {
62187
+ "version": {
62188
+ "type": "string",
62189
+ "example": [
62190
+ "1.0.0",
62191
+ "1.0.1",
62192
+ "2.1.0"
62193
+ ],
62194
+ "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."
62195
+ },
62196
+ "downloadUrl": {
62197
+ "type": "string",
62198
+ "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
62199
+ }
62200
+ }
62201
+ },
62202
+ "networkStatusMonitoringEnabled": {
62203
+ "type": "boolean",
62204
+ "readOnly": true
62205
+ }
62206
+ }
62207
+ },
62208
+ {
62209
+ "title": "Cardlink Castles",
62210
+ "required": [
62211
+ "phone",
62212
+ "defaultLanguage",
62213
+ "info",
62214
+ "bundle",
62215
+ "name",
62216
+ "integrationId",
62217
+ "terminalType",
62218
+ "operatorId"
62219
+ ],
62220
+ "type": "object",
62221
+ "properties": {
62222
+ "id": {
62223
+ "type": "integer",
62224
+ "readOnly": true
62225
+ },
62226
+ "name": {
62227
+ "type": "string"
62228
+ },
62229
+ "integrationId": {
62230
+ "type": "integer"
62231
+ },
62232
+ "terminalType": {
62233
+ "type": "string",
62234
+ "enum": [
62235
+ "Payter",
62236
+ "Valina",
62237
+ "Crane",
62238
+ "Ampeco",
62239
+ "Nayax",
62240
+ "Embedded",
62241
+ "Pax",
62242
+ "Windcave",
62243
+ "Web portal",
62244
+ "AdyenCastles",
62245
+ "Printec Castles",
62246
+ "Cardlink Castles"
60802
62247
  ]
60803
62248
  },
60804
62249
  "operatorId": {
@@ -60817,126 +62262,11 @@
60817
62262
  "readOnly": true,
60818
62263
  "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."
60819
62264
  },
60820
- "networkStatus": {
60821
- "type": "string",
60822
- "enum": [
60823
- "online",
60824
- "offline",
60825
- "unknown"
60826
- ]
60827
- },
60828
- "phone": {
60829
- "type": "string"
60830
- },
60831
- "defaultLanguage": {
60832
- "type": "string"
60833
- },
60834
- "presentCardOnStopSession": {
60835
- "type": "boolean",
60836
- "default": false
60837
- },
60838
- "info": {
60839
- "type": "array",
60840
- "items": {
60841
- "type": "object",
60842
- "properties": {
60843
- "locale": {
60844
- "type": "string",
60845
- "description": "valid locale"
60846
- },
60847
- "translation": {
60848
- "type": "string"
60849
- }
60850
- }
60851
- }
60852
- },
60853
- "currencyCode": {
60854
- "type": "string",
60855
- "readOnly": true
60856
- },
60857
- "serialNumber": {
60858
- "type": "string"
60859
- },
60860
- "externalId": {
60861
- "type": "string"
60862
- },
60863
- "merchantAccount": {
60864
- "type": "string",
60865
- "description": "Unique identifier of the merchant in Adyen's portal"
60866
- },
60867
- "adyenApiKey": {
60868
- "type": "string",
60869
- "description": "API key to authenticate requests to Adyen"
60870
- },
60871
- "supportedLanguages": {
60872
- "type": "array",
60873
- "items": {
60874
- "type": "string"
60875
- },
60876
- "nullable": true,
60877
- "readOnly": true
60878
- },
60879
- "networkStatusMonitoringEnabled": {
62265
+ "isOnline": {
60880
62266
  "type": "boolean",
60881
- "readOnly": true
60882
- }
60883
- }
60884
- },
60885
- {
60886
- "title": "Printec Castles",
60887
- "required": [
60888
- "phone",
60889
- "defaultLanguage",
60890
- "info",
60891
- "bundle",
60892
- "name",
60893
- "integrationId",
60894
- "terminalType",
60895
- "operatorId"
60896
- ],
60897
- "type": "object",
60898
- "properties": {
60899
- "id": {
60900
- "type": "integer",
60901
- "readOnly": true
60902
- },
60903
- "name": {
60904
- "type": "string"
60905
- },
60906
- "integrationId": {
60907
- "type": "integer"
60908
- },
60909
- "terminalType": {
60910
- "type": "string",
60911
- "enum": [
60912
- "Payter",
60913
- "Valina",
60914
- "Crane",
60915
- "Ampeco",
60916
- "Nayax",
60917
- "Embedded",
60918
- "Pax",
60919
- "Windcave",
60920
- "Web portal",
60921
- "AdyenCastles",
60922
- "Printec Castles"
60923
- ]
60924
- },
60925
- "operatorId": {
60926
- "type": "integer"
60927
- },
60928
- "chargingZoneId": {
60929
- "type": "integer",
60930
- "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
60931
- },
60932
- "chargePointId": {
60933
- "type": "integer",
60934
- "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
60935
- },
60936
- "adminToken": {
60937
- "type": "string",
60938
62267
  "readOnly": true,
60939
- "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."
62268
+ "deprecated": true,
62269
+ "description": "Use `networkStatus` instead"
60940
62270
  },
60941
62271
  "networkStatus": {
60942
62272
  "type": "string",
@@ -60975,11 +62305,6 @@
60975
62305
  "type": "string",
60976
62306
  "readOnly": true
60977
62307
  },
60978
- "countryCode": {
60979
- "type": "string",
60980
- "description": "ISO 3166-1 alpha-2 country code",
60981
- "readOnly": true
60982
- },
60983
62308
  "serialNumber": {
60984
62309
  "type": "string"
60985
62310
  },
@@ -61111,7 +62436,8 @@
61111
62436
  "Windcave",
61112
62437
  "Web portal",
61113
62438
  "AdyenCastles",
61114
- "Printec Castles"
62439
+ "Printec Castles",
62440
+ "Cardlink Castles"
61115
62441
  ]
61116
62442
  },
61117
62443
  "operatorId": {
@@ -61232,7 +62558,8 @@
61232
62558
  "Windcave",
61233
62559
  "Web portal",
61234
62560
  "AdyenCastles",
61235
- "Printec Castles"
62561
+ "Printec Castles",
62562
+ "Cardlink Castles"
61236
62563
  ]
61237
62564
  },
61238
62565
  "operatorId": {
@@ -61367,7 +62694,8 @@
61367
62694
  "Windcave",
61368
62695
  "Web portal",
61369
62696
  "AdyenCastles",
61370
- "Printec Castles"
62697
+ "Printec Castles",
62698
+ "Cardlink Castles"
61371
62699
  ]
61372
62700
  },
61373
62701
  "operatorId": {
@@ -61422,7 +62750,8 @@
61422
62750
  "Windcave",
61423
62751
  "Web portal",
61424
62752
  "AdyenCastles",
61425
- "Printec Castles"
62753
+ "Printec Castles",
62754
+ "Cardlink Castles"
61426
62755
  ]
61427
62756
  },
61428
62757
  "operatorId": {
@@ -61487,7 +62816,8 @@
61487
62816
  "Windcave",
61488
62817
  "Web portal",
61489
62818
  "AdyenCastles",
61490
- "Printec Castles"
62819
+ "Printec Castles",
62820
+ "Cardlink Castles"
61491
62821
  ]
61492
62822
  },
61493
62823
  "operatorId": {
@@ -61546,7 +62876,8 @@
61546
62876
  "Windcave",
61547
62877
  "Web portal",
61548
62878
  "AdyenCastles",
61549
- "Printec Castles"
62879
+ "Printec Castles",
62880
+ "Cardlink Castles"
61550
62881
  ]
61551
62882
  },
61552
62883
  "operatorId": {
@@ -61604,7 +62935,8 @@
61604
62935
  "Windcave",
61605
62936
  "Web portal",
61606
62937
  "AdyenCastles",
61607
- "Printec Castles"
62938
+ "Printec Castles",
62939
+ "Cardlink Castles"
61608
62940
  ]
61609
62941
  },
61610
62942
  "operatorId": {
@@ -61684,7 +63016,8 @@
61684
63016
  "Windcave",
61685
63017
  "Web portal",
61686
63018
  "AdyenCastles",
61687
- "Printec Castles"
63019
+ "Printec Castles",
63020
+ "Cardlink Castles"
61688
63021
  ]
61689
63022
  },
61690
63023
  "operatorId": {
@@ -61739,7 +63072,8 @@
61739
63072
  "Windcave",
61740
63073
  "Web portal",
61741
63074
  "AdyenCastles",
61742
- "Printec Castles"
63075
+ "Printec Castles",
63076
+ "Cardlink Castles"
61743
63077
  ]
61744
63078
  },
61745
63079
  "operatorId": {
@@ -61816,7 +63150,8 @@
61816
63150
  "Windcave",
61817
63151
  "Web portal",
61818
63152
  "AdyenCastles",
61819
- "Printec Castles"
63153
+ "Printec Castles",
63154
+ "Cardlink Castles"
61820
63155
  ]
61821
63156
  },
61822
63157
  "operatorId": {
@@ -61937,7 +63272,8 @@
61937
63272
  "Windcave",
61938
63273
  "Web portal",
61939
63274
  "AdyenCastles",
61940
- "Printec Castles"
63275
+ "Printec Castles",
63276
+ "Cardlink Castles"
61941
63277
  ]
61942
63278
  },
61943
63279
  "operatorId": {
@@ -62036,6 +63372,145 @@
62036
63372
  "readOnly": true
62037
63373
  }
62038
63374
  }
63375
+ },
63376
+ {
63377
+ "title": "Cardlink Castles",
63378
+ "required": [
63379
+ "phone",
63380
+ "defaultLanguage",
63381
+ "info",
63382
+ "bundle",
63383
+ "name",
63384
+ "integrationId",
63385
+ "terminalType",
63386
+ "operatorId"
63387
+ ],
63388
+ "type": "object",
63389
+ "properties": {
63390
+ "id": {
63391
+ "type": "integer",
63392
+ "readOnly": true
63393
+ },
63394
+ "name": {
63395
+ "type": "string"
63396
+ },
63397
+ "integrationId": {
63398
+ "type": "integer"
63399
+ },
63400
+ "terminalType": {
63401
+ "type": "string",
63402
+ "enum": [
63403
+ "Payter",
63404
+ "Valina",
63405
+ "Crane",
63406
+ "Ampeco",
63407
+ "Nayax",
63408
+ "Embedded",
63409
+ "Pax",
63410
+ "Windcave",
63411
+ "Web portal",
63412
+ "AdyenCastles",
63413
+ "Printec Castles",
63414
+ "Cardlink Castles"
63415
+ ]
63416
+ },
63417
+ "operatorId": {
63418
+ "type": "integer"
63419
+ },
63420
+ "chargingZoneId": {
63421
+ "type": "integer",
63422
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
63423
+ },
63424
+ "chargePointId": {
63425
+ "type": "integer",
63426
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
63427
+ },
63428
+ "adminToken": {
63429
+ "type": "string",
63430
+ "readOnly": true,
63431
+ "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."
63432
+ },
63433
+ "isOnline": {
63434
+ "type": "boolean",
63435
+ "readOnly": true,
63436
+ "deprecated": true,
63437
+ "description": "Use `networkStatus` instead"
63438
+ },
63439
+ "networkStatus": {
63440
+ "type": "string",
63441
+ "enum": [
63442
+ "online",
63443
+ "offline",
63444
+ "unknown"
63445
+ ]
63446
+ },
63447
+ "phone": {
63448
+ "type": "string"
63449
+ },
63450
+ "defaultLanguage": {
63451
+ "type": "string"
63452
+ },
63453
+ "presentCardOnStopSession": {
63454
+ "type": "boolean",
63455
+ "default": false
63456
+ },
63457
+ "info": {
63458
+ "type": "array",
63459
+ "items": {
63460
+ "type": "object",
63461
+ "properties": {
63462
+ "locale": {
63463
+ "type": "string",
63464
+ "description": "valid locale"
63465
+ },
63466
+ "translation": {
63467
+ "type": "string"
63468
+ }
63469
+ }
63470
+ }
63471
+ },
63472
+ "currencyCode": {
63473
+ "type": "string",
63474
+ "readOnly": true
63475
+ },
63476
+ "serialNumber": {
63477
+ "type": "string"
63478
+ },
63479
+ "externalId": {
63480
+ "type": "string"
63481
+ },
63482
+ "supportedLanguages": {
63483
+ "type": "array",
63484
+ "items": {
63485
+ "type": "string"
63486
+ },
63487
+ "nullable": true,
63488
+ "readOnly": true
63489
+ },
63490
+ "bundle": {
63491
+ "type": "object",
63492
+ "readOnly": true,
63493
+ "properties": {
63494
+ "version": {
63495
+ "type": "string",
63496
+ "example": [
63497
+ "1.0.0",
63498
+ "1.0.1",
63499
+ "2.1.0"
63500
+ ],
63501
+ "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."
63502
+ },
63503
+ "downloadUrl": {
63504
+ "type": "string",
63505
+ "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
63506
+ }
63507
+ }
63508
+ },
63509
+ "networkStatusMonitoringEnabled": {
63510
+ "type": "boolean",
63511
+ "readOnly": true
63512
+ }
63513
+ }
62039
63514
  }
62040
63515
  ]
62041
63516
  }
@@ -62172,7 +63647,8 @@
62172
63647
  "Windcave",
62173
63648
  "Web portal",
62174
63649
  "AdyenCastles",
62175
- "Printec Castles"
63650
+ "Printec Castles",
63651
+ "Cardlink Castles"
62176
63652
  ]
62177
63653
  },
62178
63654
  "operatorId": {
@@ -62293,7 +63769,8 @@
62293
63769
  "Windcave",
62294
63770
  "Web portal",
62295
63771
  "AdyenCastles",
62296
- "Printec Castles"
63772
+ "Printec Castles",
63773
+ "Cardlink Castles"
62297
63774
  ]
62298
63775
  },
62299
63776
  "operatorId": {
@@ -62428,7 +63905,8 @@
62428
63905
  "Windcave",
62429
63906
  "Web portal",
62430
63907
  "AdyenCastles",
62431
- "Printec Castles"
63908
+ "Printec Castles",
63909
+ "Cardlink Castles"
62432
63910
  ]
62433
63911
  },
62434
63912
  "operatorId": {
@@ -62483,7 +63961,8 @@
62483
63961
  "Windcave",
62484
63962
  "Web portal",
62485
63963
  "AdyenCastles",
62486
- "Printec Castles"
63964
+ "Printec Castles",
63965
+ "Cardlink Castles"
62487
63966
  ]
62488
63967
  },
62489
63968
  "operatorId": {
@@ -62548,7 +64027,8 @@
62548
64027
  "Windcave",
62549
64028
  "Web portal",
62550
64029
  "AdyenCastles",
62551
- "Printec Castles"
64030
+ "Printec Castles",
64031
+ "Cardlink Castles"
62552
64032
  ]
62553
64033
  },
62554
64034
  "operatorId": {
@@ -62607,7 +64087,8 @@
62607
64087
  "Windcave",
62608
64088
  "Web portal",
62609
64089
  "AdyenCastles",
62610
- "Printec Castles"
64090
+ "Printec Castles",
64091
+ "Cardlink Castles"
62611
64092
  ]
62612
64093
  },
62613
64094
  "operatorId": {
@@ -62665,7 +64146,8 @@
62665
64146
  "Windcave",
62666
64147
  "Web portal",
62667
64148
  "AdyenCastles",
62668
- "Printec Castles"
64149
+ "Printec Castles",
64150
+ "Cardlink Castles"
62669
64151
  ]
62670
64152
  },
62671
64153
  "operatorId": {
@@ -62745,7 +64227,8 @@
62745
64227
  "Windcave",
62746
64228
  "Web portal",
62747
64229
  "AdyenCastles",
62748
- "Printec Castles"
64230
+ "Printec Castles",
64231
+ "Cardlink Castles"
62749
64232
  ]
62750
64233
  },
62751
64234
  "operatorId": {
@@ -62800,84 +64283,346 @@
62800
64283
  "Windcave",
62801
64284
  "Web portal",
62802
64285
  "AdyenCastles",
62803
- "Printec Castles"
62804
- ]
62805
- },
62806
- "operatorId": {
62807
- "type": "integer"
62808
- },
62809
- "invoiceFields": {
62810
- "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
- "items": {
62814
- "type": "object",
62815
- "properties": {
62816
- "field": {
62817
- "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"
62823
- },
62824
- "type": {
62825
- "type": "string",
62826
- "enum": [
62827
- "individual",
62828
- "company"
62829
- ],
62830
- "description": "The invoice type this field belongs to (individual or company)"
62831
- }
62832
- },
62833
- "required": [
62834
- "field",
62835
- "required",
62836
- "type"
62837
- ]
62838
- }
62839
- }
62840
- }
62841
- },
62842
- {
62843
- "title": "AdyenCastles",
62844
- "required": [
62845
- "phone",
62846
- "defaultLanguage",
62847
- "info",
62848
- "merchantAccount",
62849
- "adyenApiKey",
62850
- "name",
62851
- "integrationId",
62852
- "terminalType",
62853
- "operatorId"
62854
- ],
62855
- "type": "object",
62856
- "properties": {
62857
- "id": {
62858
- "type": "integer",
62859
- "readOnly": true
62860
- },
62861
- "name": {
62862
- "type": "string"
62863
- },
62864
- "integrationId": {
62865
- "type": "integer"
62866
- },
62867
- "terminalType": {
62868
- "type": "string",
62869
- "enum": [
62870
- "Payter",
62871
- "Valina",
62872
- "Crane",
62873
- "Ampeco",
62874
- "Nayax",
62875
- "Embedded",
62876
- "Pax",
62877
- "Windcave",
62878
- "Web portal",
62879
- "AdyenCastles",
62880
- "Printec Castles"
64286
+ "Printec Castles",
64287
+ "Cardlink Castles"
64288
+ ]
64289
+ },
64290
+ "operatorId": {
64291
+ "type": "integer"
64292
+ },
64293
+ "invoiceFields": {
64294
+ "type": "array",
64295
+ "readOnly": true,
64296
+ "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
64297
+ "items": {
64298
+ "type": "object",
64299
+ "properties": {
64300
+ "field": {
64301
+ "type": "string",
64302
+ "description": "Field identifier (e.g., email, name, taxId, country)"
64303
+ },
64304
+ "required": {
64305
+ "type": "boolean",
64306
+ "description": "Whether this field is required or optional"
64307
+ },
64308
+ "type": {
64309
+ "type": "string",
64310
+ "enum": [
64311
+ "individual",
64312
+ "company"
64313
+ ],
64314
+ "description": "The invoice type this field belongs to (individual or company)"
64315
+ }
64316
+ },
64317
+ "required": [
64318
+ "field",
64319
+ "required",
64320
+ "type"
64321
+ ]
64322
+ }
64323
+ }
64324
+ }
64325
+ },
64326
+ {
64327
+ "title": "AdyenCastles",
64328
+ "required": [
64329
+ "phone",
64330
+ "defaultLanguage",
64331
+ "info",
64332
+ "merchantAccount",
64333
+ "adyenApiKey",
64334
+ "name",
64335
+ "integrationId",
64336
+ "terminalType",
64337
+ "operatorId"
64338
+ ],
64339
+ "type": "object",
64340
+ "properties": {
64341
+ "id": {
64342
+ "type": "integer",
64343
+ "readOnly": true
64344
+ },
64345
+ "name": {
64346
+ "type": "string"
64347
+ },
64348
+ "integrationId": {
64349
+ "type": "integer"
64350
+ },
64351
+ "terminalType": {
64352
+ "type": "string",
64353
+ "enum": [
64354
+ "Payter",
64355
+ "Valina",
64356
+ "Crane",
64357
+ "Ampeco",
64358
+ "Nayax",
64359
+ "Embedded",
64360
+ "Pax",
64361
+ "Windcave",
64362
+ "Web portal",
64363
+ "AdyenCastles",
64364
+ "Printec Castles",
64365
+ "Cardlink Castles"
64366
+ ]
64367
+ },
64368
+ "operatorId": {
64369
+ "type": "integer"
64370
+ },
64371
+ "chargingZoneId": {
64372
+ "type": "integer",
64373
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
64374
+ },
64375
+ "chargePointId": {
64376
+ "type": "integer",
64377
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
64378
+ },
64379
+ "adminToken": {
64380
+ "type": "string",
64381
+ "readOnly": true,
64382
+ "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."
64383
+ },
64384
+ "networkStatus": {
64385
+ "type": "string",
64386
+ "enum": [
64387
+ "online",
64388
+ "offline",
64389
+ "unknown"
64390
+ ]
64391
+ },
64392
+ "phone": {
64393
+ "type": "string"
64394
+ },
64395
+ "defaultLanguage": {
64396
+ "type": "string"
64397
+ },
64398
+ "presentCardOnStopSession": {
64399
+ "type": "boolean",
64400
+ "default": false
64401
+ },
64402
+ "info": {
64403
+ "type": "array",
64404
+ "items": {
64405
+ "type": "object",
64406
+ "properties": {
64407
+ "locale": {
64408
+ "type": "string",
64409
+ "description": "valid locale"
64410
+ },
64411
+ "translation": {
64412
+ "type": "string"
64413
+ }
64414
+ }
64415
+ }
64416
+ },
64417
+ "currencyCode": {
64418
+ "type": "string",
64419
+ "readOnly": true
64420
+ },
64421
+ "serialNumber": {
64422
+ "type": "string"
64423
+ },
64424
+ "externalId": {
64425
+ "type": "string"
64426
+ },
64427
+ "merchantAccount": {
64428
+ "type": "string",
64429
+ "description": "Unique identifier of the merchant in Adyen's portal"
64430
+ },
64431
+ "adyenApiKey": {
64432
+ "type": "string",
64433
+ "description": "API key to authenticate requests to Adyen"
64434
+ },
64435
+ "supportedLanguages": {
64436
+ "type": "array",
64437
+ "items": {
64438
+ "type": "string"
64439
+ },
64440
+ "nullable": true,
64441
+ "readOnly": true
64442
+ },
64443
+ "networkStatusMonitoringEnabled": {
64444
+ "type": "boolean",
64445
+ "readOnly": true
64446
+ }
64447
+ }
64448
+ },
64449
+ {
64450
+ "title": "Printec Castles",
64451
+ "required": [
64452
+ "phone",
64453
+ "defaultLanguage",
64454
+ "info",
64455
+ "bundle",
64456
+ "name",
64457
+ "integrationId",
64458
+ "terminalType",
64459
+ "operatorId"
64460
+ ],
64461
+ "type": "object",
64462
+ "properties": {
64463
+ "id": {
64464
+ "type": "integer",
64465
+ "readOnly": true
64466
+ },
64467
+ "name": {
64468
+ "type": "string"
64469
+ },
64470
+ "integrationId": {
64471
+ "type": "integer"
64472
+ },
64473
+ "terminalType": {
64474
+ "type": "string",
64475
+ "enum": [
64476
+ "Payter",
64477
+ "Valina",
64478
+ "Crane",
64479
+ "Ampeco",
64480
+ "Nayax",
64481
+ "Embedded",
64482
+ "Pax",
64483
+ "Windcave",
64484
+ "Web portal",
64485
+ "AdyenCastles",
64486
+ "Printec Castles",
64487
+ "Cardlink Castles"
64488
+ ]
64489
+ },
64490
+ "operatorId": {
64491
+ "type": "integer"
64492
+ },
64493
+ "chargingZoneId": {
64494
+ "type": "integer",
64495
+ "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
64496
+ },
64497
+ "chargePointId": {
64498
+ "type": "integer",
64499
+ "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
64500
+ },
64501
+ "adminToken": {
64502
+ "type": "string",
64503
+ "readOnly": true,
64504
+ "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."
64505
+ },
64506
+ "networkStatus": {
64507
+ "type": "string",
64508
+ "enum": [
64509
+ "online",
64510
+ "offline",
64511
+ "unknown"
64512
+ ]
64513
+ },
64514
+ "phone": {
64515
+ "type": "string"
64516
+ },
64517
+ "defaultLanguage": {
64518
+ "type": "string"
64519
+ },
64520
+ "presentCardOnStopSession": {
64521
+ "type": "boolean",
64522
+ "default": false
64523
+ },
64524
+ "info": {
64525
+ "type": "array",
64526
+ "items": {
64527
+ "type": "object",
64528
+ "properties": {
64529
+ "locale": {
64530
+ "type": "string",
64531
+ "description": "valid locale"
64532
+ },
64533
+ "translation": {
64534
+ "type": "string"
64535
+ }
64536
+ }
64537
+ }
64538
+ },
64539
+ "currencyCode": {
64540
+ "type": "string",
64541
+ "readOnly": true
64542
+ },
64543
+ "countryCode": {
64544
+ "type": "string",
64545
+ "description": "ISO 3166-1 alpha-2 country code",
64546
+ "readOnly": true
64547
+ },
64548
+ "serialNumber": {
64549
+ "type": "string"
64550
+ },
64551
+ "externalId": {
64552
+ "type": "string"
64553
+ },
64554
+ "supportedLanguages": {
64555
+ "type": "array",
64556
+ "items": {
64557
+ "type": "string"
64558
+ },
64559
+ "nullable": true,
64560
+ "readOnly": true
64561
+ },
64562
+ "bundle": {
64563
+ "type": "object",
64564
+ "readOnly": true,
64565
+ "properties": {
64566
+ "version": {
64567
+ "type": "string",
64568
+ "example": [
64569
+ "1.0.0",
64570
+ "1.0.1",
64571
+ "2.1.0"
64572
+ ],
64573
+ "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."
64574
+ },
64575
+ "downloadUrl": {
64576
+ "type": "string",
64577
+ "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
64578
+ }
64579
+ }
64580
+ },
64581
+ "networkStatusMonitoringEnabled": {
64582
+ "type": "boolean",
64583
+ "readOnly": true
64584
+ }
64585
+ }
64586
+ },
64587
+ {
64588
+ "title": "Cardlink Castles",
64589
+ "required": [
64590
+ "phone",
64591
+ "defaultLanguage",
64592
+ "info",
64593
+ "bundle",
64594
+ "name",
64595
+ "integrationId",
64596
+ "terminalType",
64597
+ "operatorId"
64598
+ ],
64599
+ "type": "object",
64600
+ "properties": {
64601
+ "id": {
64602
+ "type": "integer",
64603
+ "readOnly": true
64604
+ },
64605
+ "name": {
64606
+ "type": "string"
64607
+ },
64608
+ "integrationId": {
64609
+ "type": "integer"
64610
+ },
64611
+ "terminalType": {
64612
+ "type": "string",
64613
+ "enum": [
64614
+ "Payter",
64615
+ "Valina",
64616
+ "Crane",
64617
+ "Ampeco",
64618
+ "Nayax",
64619
+ "Embedded",
64620
+ "Pax",
64621
+ "Windcave",
64622
+ "Web portal",
64623
+ "AdyenCastles",
64624
+ "Printec Castles",
64625
+ "Cardlink Castles"
62881
64626
  ]
62882
64627
  },
62883
64628
  "operatorId": {
@@ -62896,126 +64641,11 @@
62896
64641
  "readOnly": true,
62897
64642
  "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."
62898
64643
  },
62899
- "networkStatus": {
62900
- "type": "string",
62901
- "enum": [
62902
- "online",
62903
- "offline",
62904
- "unknown"
62905
- ]
62906
- },
62907
- "phone": {
62908
- "type": "string"
62909
- },
62910
- "defaultLanguage": {
62911
- "type": "string"
62912
- },
62913
- "presentCardOnStopSession": {
62914
- "type": "boolean",
62915
- "default": false
62916
- },
62917
- "info": {
62918
- "type": "array",
62919
- "items": {
62920
- "type": "object",
62921
- "properties": {
62922
- "locale": {
62923
- "type": "string",
62924
- "description": "valid locale"
62925
- },
62926
- "translation": {
62927
- "type": "string"
62928
- }
62929
- }
62930
- }
62931
- },
62932
- "currencyCode": {
62933
- "type": "string",
62934
- "readOnly": true
62935
- },
62936
- "serialNumber": {
62937
- "type": "string"
62938
- },
62939
- "externalId": {
62940
- "type": "string"
62941
- },
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
- "supportedLanguages": {
62951
- "type": "array",
62952
- "items": {
62953
- "type": "string"
62954
- },
62955
- "nullable": true,
62956
- "readOnly": true
62957
- },
62958
- "networkStatusMonitoringEnabled": {
64644
+ "isOnline": {
62959
64645
  "type": "boolean",
62960
- "readOnly": true
62961
- }
62962
- }
62963
- },
62964
- {
62965
- "title": "Printec Castles",
62966
- "required": [
62967
- "phone",
62968
- "defaultLanguage",
62969
- "info",
62970
- "bundle",
62971
- "name",
62972
- "integrationId",
62973
- "terminalType",
62974
- "operatorId"
62975
- ],
62976
- "type": "object",
62977
- "properties": {
62978
- "id": {
62979
- "type": "integer",
62980
- "readOnly": true
62981
- },
62982
- "name": {
62983
- "type": "string"
62984
- },
62985
- "integrationId": {
62986
- "type": "integer"
62987
- },
62988
- "terminalType": {
62989
- "type": "string",
62990
- "enum": [
62991
- "Payter",
62992
- "Valina",
62993
- "Crane",
62994
- "Ampeco",
62995
- "Nayax",
62996
- "Embedded",
62997
- "Pax",
62998
- "Windcave",
62999
- "Web portal",
63000
- "AdyenCastles",
63001
- "Printec Castles"
63002
- ]
63003
- },
63004
- "operatorId": {
63005
- "type": "integer"
63006
- },
63007
- "chargingZoneId": {
63008
- "type": "integer",
63009
- "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
63010
- },
63011
- "chargePointId": {
63012
- "type": "integer",
63013
- "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
63014
- },
63015
- "adminToken": {
63016
- "type": "string",
63017
64646
  "readOnly": true,
63018
- "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."
64647
+ "deprecated": true,
64648
+ "description": "Use `networkStatus` instead"
63019
64649
  },
63020
64650
  "networkStatus": {
63021
64651
  "type": "string",
@@ -63054,11 +64684,6 @@
63054
64684
  "type": "string",
63055
64685
  "readOnly": true
63056
64686
  },
63057
- "countryCode": {
63058
- "type": "string",
63059
- "description": "ISO 3166-1 alpha-2 country code",
63060
- "readOnly": true
63061
- },
63062
64687
  "serialNumber": {
63063
64688
  "type": "string"
63064
64689
  },
@@ -68846,6 +70471,10 @@
68846
70471
  "description": "ISO 8601 formatted date",
68847
70472
  "readOnly": true
68848
70473
  },
70474
+ "chargePointOperatorRoamingId": {
70475
+ "type": "string",
70476
+ "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."
70477
+ },
68849
70478
  "roaming": {
68850
70479
  "type": "object",
68851
70480
  "properties": {
@@ -68983,7 +70612,7 @@
68983
70612
  "grid"
68984
70613
  ]
68985
70614
  },
68986
- "estimatedElectricityCostSavings": {
70615
+ "estimatedSavings": {
68987
70616
  "type": "number",
68988
70617
  "description": "The sum of savings that could be achieved if the consumed energy was not locally generated but delivered from the grid for all clock-aligned consumption periods in the charging session."
68989
70618
  },
@@ -69868,6 +71497,10 @@
69868
71497
  "description": "ISO 8601 formatted date",
69869
71498
  "readOnly": true
69870
71499
  },
71500
+ "chargePointOperatorRoamingId": {
71501
+ "type": "string",
71502
+ "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."
71503
+ },
69871
71504
  "roaming": {
69872
71505
  "type": "object",
69873
71506
  "properties": {
@@ -70005,7 +71638,7 @@
70005
71638
  "grid"
70006
71639
  ]
70007
71640
  },
70008
- "estimatedElectricityCostSavings": {
71641
+ "estimatedSavings": {
70009
71642
  "type": "number",
70010
71643
  "description": "The sum of savings that could be achieved if the consumed energy was not locally generated but delivered from the grid for all clock-aligned consumption periods in the charging session."
70011
71644
  },
@@ -72666,6 +74299,28 @@
72666
74299
  }
72667
74300
  }
72668
74301
  },
74302
+ "422": {
74303
+ "schema": {
74304
+ "type": "object",
74305
+ "required": [
74306
+ "message"
74307
+ ],
74308
+ "properties": {
74309
+ "message": {
74310
+ "type": "string"
74311
+ },
74312
+ "errors": {
74313
+ "type": "object",
74314
+ "additionalProperties": {
74315
+ "type": "array",
74316
+ "items": {
74317
+ "type": "string"
74318
+ }
74319
+ }
74320
+ }
74321
+ }
74322
+ }
74323
+ },
72669
74324
  "429": {
72670
74325
  "schema": {
72671
74326
  "type": "object",
@@ -79077,11 +80732,46 @@
79077
80732
  }
79078
80733
  }
79079
80734
  }
80735
+ },
80736
+ "termType": {
80737
+ "type": "string",
80738
+ "readOnly": true,
80739
+ "enum": [
80740
+ "marketing",
80741
+ "signup",
80742
+ "subscription",
80743
+ "top-up"
80744
+ ],
80745
+ "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"
80746
+ },
80747
+ "consentRequired": {
80748
+ "type": "boolean",
80749
+ "description": "Indicates whether explicit user consent is required for this term."
80750
+ },
80751
+ "consentCollection": {
80752
+ "type": "string",
80753
+ "enum": [
80754
+ "explicit",
80755
+ "automatic"
80756
+ ],
80757
+ "description": "Defines how consent is collected:\n- **explicit**: Requires user explicit confirmation\n- **automatic**: Assumes consent upon use\n"
80758
+ },
80759
+ "consentCheckboxDefaultState": {
80760
+ "type": "boolean",
80761
+ "description": "The default checked state for the consent checkbox in the UI."
80762
+ },
80763
+ "showOnSignup": {
80764
+ "type": "boolean",
80765
+ "description": "Indicates whether this term should be displayed during the user signup flow. Only applicable for marketing terms."
79080
80766
  }
79081
80767
  },
79082
80768
  "required": [
79083
80769
  "id",
79084
- "consentText"
80770
+ "consentText",
80771
+ "termType",
80772
+ "consentRequired",
80773
+ "consentCollection",
80774
+ "consentCheckboxDefaultState"
79085
80775
  ]
79086
80776
  },
79087
80777
  "validFrom": {
@@ -79371,11 +81061,46 @@
79371
81061
  }
79372
81062
  }
79373
81063
  }
81064
+ },
81065
+ "termType": {
81066
+ "type": "string",
81067
+ "readOnly": true,
81068
+ "enum": [
81069
+ "marketing",
81070
+ "signup",
81071
+ "subscription",
81072
+ "top-up"
81073
+ ],
81074
+ "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"
81075
+ },
81076
+ "consentRequired": {
81077
+ "type": "boolean",
81078
+ "description": "Indicates whether explicit user consent is required for this term."
81079
+ },
81080
+ "consentCollection": {
81081
+ "type": "string",
81082
+ "enum": [
81083
+ "explicit",
81084
+ "automatic"
81085
+ ],
81086
+ "description": "Defines how consent is collected:\n- **explicit**: Requires user explicit confirmation\n- **automatic**: Assumes consent upon use\n"
81087
+ },
81088
+ "consentCheckboxDefaultState": {
81089
+ "type": "boolean",
81090
+ "description": "The default checked state for the consent checkbox in the UI."
81091
+ },
81092
+ "showOnSignup": {
81093
+ "type": "boolean",
81094
+ "description": "Indicates whether this term should be displayed during the user signup flow. Only applicable for marketing terms."
79374
81095
  }
79375
81096
  },
79376
81097
  "required": [
79377
81098
  "id",
79378
- "consentText"
81099
+ "consentText",
81100
+ "termType",
81101
+ "consentRequired",
81102
+ "consentCollection",
81103
+ "consentCheckboxDefaultState"
79379
81104
  ]
79380
81105
  },
79381
81106
  "validFrom": {