@ampeco/public-api-mcp 3.257.2 → 3.258.0
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.
- package/dist/generated/build-stats.json +9 -9
- package/dist/generated/endpoints.json +1355 -478
- package/dist/generated/response-schemas.json +3044 -855
- package/dist/generated/schemas.d.ts +299 -199
- package/dist/generated/schemas.d.ts.map +1 -1
- package/dist/generated/schemas.js +94 -47
- package/dist/generated/schemas.js.map +1 -1
- package/dist/generated/schemas.ts +107 -47
- package/package.json +1 -1
|
@@ -1,4 +1,234 @@
|
|
|
1
1
|
{
|
|
2
|
+
"adminEndAllAccess": {
|
|
3
|
+
"202": {
|
|
4
|
+
"schema": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"data": {
|
|
8
|
+
"description": "The actual all-access termination state. No session count is returned. Optional properties are omitted when unavailable.",
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"occurredAt": {
|
|
12
|
+
"description": "ISO 8601 formatted date",
|
|
13
|
+
"type": "string",
|
|
14
|
+
"format": "date-time",
|
|
15
|
+
"readOnly": true
|
|
16
|
+
},
|
|
17
|
+
"operationId": {
|
|
18
|
+
"type": "integer",
|
|
19
|
+
"readOnly": true,
|
|
20
|
+
"description": "The durable all-access termination operation ID, when available."
|
|
21
|
+
},
|
|
22
|
+
"blockedReason": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": [
|
|
25
|
+
"actor_unavailable",
|
|
26
|
+
"subject_unavailable",
|
|
27
|
+
"retry_exhausted"
|
|
28
|
+
],
|
|
29
|
+
"description": "Why an accepted all-access termination operation cannot continue:\n- `actor_unavailable` — The administrator who requested termination is unavailable.\n- `subject_unavailable` — The administrator whose access is being ended is unavailable.\n- `retry_exhausted` — Pending work remains after five total attempts, including the initial attempt; automatic retries have stopped.\n"
|
|
30
|
+
},
|
|
31
|
+
"outcome": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"enum": [
|
|
34
|
+
"all_access_ended",
|
|
35
|
+
"sessions_pending",
|
|
36
|
+
"applications_pending",
|
|
37
|
+
"all_access_pending",
|
|
38
|
+
"blocked"
|
|
39
|
+
],
|
|
40
|
+
"description": "The actual state of the accepted all-access termination operation. Pending work is retried with bounded backoff, up to five total attempts including the initial attempt:\n- `all_access_ended` — Browser sessions and application access have both been ended.\n- `sessions_pending` — Application access has been revoked; ending browser sessions is pending.\n- `applications_pending` — Browser sessions have been ended; revoking application access is pending.\n- `all_access_pending` — Both browser session termination and application access revocation are pending.\n- `blocked` — The operation cannot continue because its actor or subject is unavailable, or pending work remains after five total attempts. Inspect `blockedReason` for the cause.\n"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"required": [
|
|
44
|
+
"occurredAt",
|
|
45
|
+
"operationId",
|
|
46
|
+
"outcome"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"required": [
|
|
51
|
+
"data"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"401": {
|
|
56
|
+
"schema": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"properties": {
|
|
59
|
+
"message": {
|
|
60
|
+
"type": "string"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"403": {
|
|
66
|
+
"schema": {
|
|
67
|
+
"type": "object",
|
|
68
|
+
"properties": {
|
|
69
|
+
"message": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"default": "This action is unauthorized."
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"404": {
|
|
77
|
+
"schema": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"properties": {
|
|
80
|
+
"message": {
|
|
81
|
+
"type": "string"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"422": {
|
|
87
|
+
"schema": {
|
|
88
|
+
"type": "object",
|
|
89
|
+
"required": [
|
|
90
|
+
"message"
|
|
91
|
+
],
|
|
92
|
+
"properties": {
|
|
93
|
+
"message": {
|
|
94
|
+
"type": "string"
|
|
95
|
+
},
|
|
96
|
+
"errors": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"additionalProperties": {
|
|
99
|
+
"type": "array",
|
|
100
|
+
"items": {
|
|
101
|
+
"type": "string"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"adminTerminateSessions": {
|
|
110
|
+
"202": {
|
|
111
|
+
"schema": {
|
|
112
|
+
"type": "object",
|
|
113
|
+
"properties": {
|
|
114
|
+
"data": {
|
|
115
|
+
"description": "The successful selected-session termination outcome. Application access and unselected sessions are unchanged. Optional properties are omitted when unavailable.",
|
|
116
|
+
"type": "object",
|
|
117
|
+
"properties": {
|
|
118
|
+
"occurredAt": {
|
|
119
|
+
"description": "ISO 8601 formatted date",
|
|
120
|
+
"type": "string",
|
|
121
|
+
"format": "date-time",
|
|
122
|
+
"readOnly": true
|
|
123
|
+
},
|
|
124
|
+
"operationId": {
|
|
125
|
+
"type": "integer",
|
|
126
|
+
"readOnly": true,
|
|
127
|
+
"description": "The durable all-access termination operation ID, when available."
|
|
128
|
+
},
|
|
129
|
+
"blockedReason": {
|
|
130
|
+
"type": "string",
|
|
131
|
+
"enum": [
|
|
132
|
+
"actor_unavailable",
|
|
133
|
+
"subject_unavailable",
|
|
134
|
+
"retry_exhausted"
|
|
135
|
+
],
|
|
136
|
+
"description": "Why an accepted all-access termination operation cannot continue:\n- `actor_unavailable` — The administrator who requested termination is unavailable.\n- `subject_unavailable` — The administrator whose access is being ended is unavailable.\n- `retry_exhausted` — Pending work remains after five total attempts, including the initial attempt; automatic retries have stopped.\n"
|
|
137
|
+
},
|
|
138
|
+
"outcome": {
|
|
139
|
+
"type": "string",
|
|
140
|
+
"enum": [
|
|
141
|
+
"selected_sessions_ended"
|
|
142
|
+
],
|
|
143
|
+
"description": "The selected active browser sessions have all been ended."
|
|
144
|
+
},
|
|
145
|
+
"endedSessionCount": {
|
|
146
|
+
"type": "integer",
|
|
147
|
+
"minimum": 1,
|
|
148
|
+
"maximum": 100,
|
|
149
|
+
"readOnly": true,
|
|
150
|
+
"description": "The number of selected browser sessions ended by this action."
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"required": [
|
|
154
|
+
"occurredAt",
|
|
155
|
+
"outcome",
|
|
156
|
+
"endedSessionCount"
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"required": [
|
|
161
|
+
"data"
|
|
162
|
+
]
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"401": {
|
|
166
|
+
"schema": {
|
|
167
|
+
"type": "object",
|
|
168
|
+
"properties": {
|
|
169
|
+
"message": {
|
|
170
|
+
"type": "string"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"403": {
|
|
176
|
+
"schema": {
|
|
177
|
+
"type": "object",
|
|
178
|
+
"properties": {
|
|
179
|
+
"message": {
|
|
180
|
+
"type": "string",
|
|
181
|
+
"default": "This action is unauthorized."
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"404": {
|
|
187
|
+
"schema": {
|
|
188
|
+
"type": "object",
|
|
189
|
+
"properties": {
|
|
190
|
+
"message": {
|
|
191
|
+
"type": "string"
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"409": {
|
|
197
|
+
"schema": {
|
|
198
|
+
"type": "object",
|
|
199
|
+
"properties": {
|
|
200
|
+
"message": {
|
|
201
|
+
"type": "string"
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"required": [
|
|
205
|
+
"message"
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"422": {
|
|
210
|
+
"schema": {
|
|
211
|
+
"type": "object",
|
|
212
|
+
"required": [
|
|
213
|
+
"message"
|
|
214
|
+
],
|
|
215
|
+
"properties": {
|
|
216
|
+
"message": {
|
|
217
|
+
"type": "string"
|
|
218
|
+
},
|
|
219
|
+
"errors": {
|
|
220
|
+
"type": "object",
|
|
221
|
+
"additionalProperties": {
|
|
222
|
+
"type": "array",
|
|
223
|
+
"items": {
|
|
224
|
+
"type": "string"
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
},
|
|
2
232
|
"chargePointChangeAvailability": {
|
|
3
233
|
"401": {
|
|
4
234
|
"schema": {
|
|
@@ -5823,7 +6053,7 @@
|
|
|
5823
6053
|
}
|
|
5824
6054
|
}
|
|
5825
6055
|
},
|
|
5826
|
-
"
|
|
6056
|
+
"partnerDiscountChangeCancel": {
|
|
5827
6057
|
"401": {
|
|
5828
6058
|
"schema": {
|
|
5829
6059
|
"type": "object",
|
|
@@ -5865,7 +6095,60 @@
|
|
|
5865
6095
|
}
|
|
5866
6096
|
}
|
|
5867
6097
|
},
|
|
5868
|
-
"
|
|
6098
|
+
"429": {
|
|
6099
|
+
"schema": {
|
|
6100
|
+
"type": "object",
|
|
6101
|
+
"properties": {
|
|
6102
|
+
"message": {
|
|
6103
|
+
"type": "string"
|
|
6104
|
+
}
|
|
6105
|
+
}
|
|
6106
|
+
}
|
|
6107
|
+
}
|
|
6108
|
+
},
|
|
6109
|
+
"partnerDiscountChangeEndNow": {
|
|
6110
|
+
"401": {
|
|
6111
|
+
"schema": {
|
|
6112
|
+
"type": "object",
|
|
6113
|
+
"properties": {
|
|
6114
|
+
"message": {
|
|
6115
|
+
"type": "string"
|
|
6116
|
+
}
|
|
6117
|
+
}
|
|
6118
|
+
}
|
|
6119
|
+
},
|
|
6120
|
+
"403": {
|
|
6121
|
+
"schema": {
|
|
6122
|
+
"type": "object",
|
|
6123
|
+
"properties": {
|
|
6124
|
+
"message": {
|
|
6125
|
+
"type": "string",
|
|
6126
|
+
"default": "This action is unauthorized."
|
|
6127
|
+
}
|
|
6128
|
+
}
|
|
6129
|
+
}
|
|
6130
|
+
},
|
|
6131
|
+
"404": {
|
|
6132
|
+
"schema": {
|
|
6133
|
+
"type": "object",
|
|
6134
|
+
"properties": {
|
|
6135
|
+
"message": {
|
|
6136
|
+
"type": "string"
|
|
6137
|
+
}
|
|
6138
|
+
}
|
|
6139
|
+
}
|
|
6140
|
+
},
|
|
6141
|
+
"409": {
|
|
6142
|
+
"schema": {
|
|
6143
|
+
"type": "object",
|
|
6144
|
+
"properties": {
|
|
6145
|
+
"message": {
|
|
6146
|
+
"type": "string"
|
|
6147
|
+
}
|
|
6148
|
+
}
|
|
6149
|
+
}
|
|
6150
|
+
},
|
|
6151
|
+
"424": {
|
|
5869
6152
|
"schema": {
|
|
5870
6153
|
"type": "object",
|
|
5871
6154
|
"required": [
|
|
@@ -5874,15 +6157,6 @@
|
|
|
5874
6157
|
"properties": {
|
|
5875
6158
|
"message": {
|
|
5876
6159
|
"type": "string"
|
|
5877
|
-
},
|
|
5878
|
-
"errors": {
|
|
5879
|
-
"type": "object",
|
|
5880
|
-
"additionalProperties": {
|
|
5881
|
-
"type": "array",
|
|
5882
|
-
"items": {
|
|
5883
|
-
"type": "string"
|
|
5884
|
-
}
|
|
5885
|
-
}
|
|
5886
6160
|
}
|
|
5887
6161
|
}
|
|
5888
6162
|
}
|
|
@@ -5898,7 +6172,82 @@
|
|
|
5898
6172
|
}
|
|
5899
6173
|
}
|
|
5900
6174
|
},
|
|
5901
|
-
"
|
|
6175
|
+
"partnerInviteCorporateBillingPolicyDisable": {
|
|
6176
|
+
"401": {
|
|
6177
|
+
"schema": {
|
|
6178
|
+
"type": "object",
|
|
6179
|
+
"properties": {
|
|
6180
|
+
"message": {
|
|
6181
|
+
"type": "string"
|
|
6182
|
+
}
|
|
6183
|
+
}
|
|
6184
|
+
}
|
|
6185
|
+
},
|
|
6186
|
+
"403": {
|
|
6187
|
+
"schema": {
|
|
6188
|
+
"type": "object",
|
|
6189
|
+
"properties": {
|
|
6190
|
+
"message": {
|
|
6191
|
+
"type": "string",
|
|
6192
|
+
"default": "This action is unauthorized."
|
|
6193
|
+
}
|
|
6194
|
+
}
|
|
6195
|
+
}
|
|
6196
|
+
},
|
|
6197
|
+
"404": {
|
|
6198
|
+
"schema": {
|
|
6199
|
+
"type": "object",
|
|
6200
|
+
"properties": {
|
|
6201
|
+
"message": {
|
|
6202
|
+
"type": "string"
|
|
6203
|
+
}
|
|
6204
|
+
}
|
|
6205
|
+
}
|
|
6206
|
+
},
|
|
6207
|
+
"409": {
|
|
6208
|
+
"schema": {
|
|
6209
|
+
"type": "object",
|
|
6210
|
+
"properties": {
|
|
6211
|
+
"message": {
|
|
6212
|
+
"type": "string"
|
|
6213
|
+
}
|
|
6214
|
+
}
|
|
6215
|
+
}
|
|
6216
|
+
},
|
|
6217
|
+
"422": {
|
|
6218
|
+
"schema": {
|
|
6219
|
+
"type": "object",
|
|
6220
|
+
"required": [
|
|
6221
|
+
"message"
|
|
6222
|
+
],
|
|
6223
|
+
"properties": {
|
|
6224
|
+
"message": {
|
|
6225
|
+
"type": "string"
|
|
6226
|
+
},
|
|
6227
|
+
"errors": {
|
|
6228
|
+
"type": "object",
|
|
6229
|
+
"additionalProperties": {
|
|
6230
|
+
"type": "array",
|
|
6231
|
+
"items": {
|
|
6232
|
+
"type": "string"
|
|
6233
|
+
}
|
|
6234
|
+
}
|
|
6235
|
+
}
|
|
6236
|
+
}
|
|
6237
|
+
}
|
|
6238
|
+
},
|
|
6239
|
+
"429": {
|
|
6240
|
+
"schema": {
|
|
6241
|
+
"type": "object",
|
|
6242
|
+
"properties": {
|
|
6243
|
+
"message": {
|
|
6244
|
+
"type": "string"
|
|
6245
|
+
}
|
|
6246
|
+
}
|
|
6247
|
+
}
|
|
6248
|
+
}
|
|
6249
|
+
},
|
|
6250
|
+
"partnerInviteCorporateBillingPolicyEnable": {
|
|
5902
6251
|
"401": {
|
|
5903
6252
|
"schema": {
|
|
5904
6253
|
"type": "object",
|
|
@@ -9562,6 +9911,251 @@
|
|
|
9562
9911
|
}
|
|
9563
9912
|
}
|
|
9564
9913
|
},
|
|
9914
|
+
"partnerRevenueSetCustomFields": {
|
|
9915
|
+
"202": {
|
|
9916
|
+
"schema": {
|
|
9917
|
+
"type": "object",
|
|
9918
|
+
"required": [
|
|
9919
|
+
"data"
|
|
9920
|
+
],
|
|
9921
|
+
"properties": {
|
|
9922
|
+
"data": {
|
|
9923
|
+
"type": "object",
|
|
9924
|
+
"properties": {
|
|
9925
|
+
"id": {
|
|
9926
|
+
"type": "integer",
|
|
9927
|
+
"readOnly": true
|
|
9928
|
+
},
|
|
9929
|
+
"partnerId": {
|
|
9930
|
+
"type": "integer"
|
|
9931
|
+
},
|
|
9932
|
+
"date": {
|
|
9933
|
+
"type": "string",
|
|
9934
|
+
"format": "date-time"
|
|
9935
|
+
},
|
|
9936
|
+
"origin": {
|
|
9937
|
+
"description": "The origin type of the revenue record:\n- `session-cpo` - Revenue from a charging session on a partner-owned charge point, based on the partner contract.\n- `electricity-tax-reimbursement` - Tax reimbursement for electricity consumed during charging sessions, configured for monthly or quarterly periods.\n- `home-charging-reimbursement` - A home-charging reimbursement correction credited to the partner.\n- `private-evse-access-fee` - Revenue earned by a charge point owner when other partners are granted access to their private EVSEs.\n",
|
|
9938
|
+
"type": "string",
|
|
9939
|
+
"enum": [
|
|
9940
|
+
"electricity-tax-reimbursement",
|
|
9941
|
+
"home-charging-reimbursement",
|
|
9942
|
+
"private-evse-access-fee",
|
|
9943
|
+
"session-cpo"
|
|
9944
|
+
]
|
|
9945
|
+
},
|
|
9946
|
+
"totalAmount": {
|
|
9947
|
+
"type": "object",
|
|
9948
|
+
"properties": {
|
|
9949
|
+
"withoutTax": {
|
|
9950
|
+
"type": "number"
|
|
9951
|
+
},
|
|
9952
|
+
"withTax": {
|
|
9953
|
+
"type": "number"
|
|
9954
|
+
}
|
|
9955
|
+
},
|
|
9956
|
+
"required": [
|
|
9957
|
+
"withoutTax"
|
|
9958
|
+
]
|
|
9959
|
+
},
|
|
9960
|
+
"operatorShare": {
|
|
9961
|
+
"type": "object",
|
|
9962
|
+
"properties": {
|
|
9963
|
+
"withoutTax": {
|
|
9964
|
+
"type": "number"
|
|
9965
|
+
},
|
|
9966
|
+
"withTax": {
|
|
9967
|
+
"type": "number"
|
|
9968
|
+
}
|
|
9969
|
+
},
|
|
9970
|
+
"required": [
|
|
9971
|
+
"withoutTax"
|
|
9972
|
+
]
|
|
9973
|
+
},
|
|
9974
|
+
"partnerShare": {
|
|
9975
|
+
"type": "object",
|
|
9976
|
+
"properties": {
|
|
9977
|
+
"withoutTax": {
|
|
9978
|
+
"type": "number"
|
|
9979
|
+
},
|
|
9980
|
+
"withTax": {
|
|
9981
|
+
"type": "number"
|
|
9982
|
+
}
|
|
9983
|
+
},
|
|
9984
|
+
"required": [
|
|
9985
|
+
"withoutTax"
|
|
9986
|
+
]
|
|
9987
|
+
},
|
|
9988
|
+
"currencyCode": {
|
|
9989
|
+
"type": "string",
|
|
9990
|
+
"minLength": 3,
|
|
9991
|
+
"maxLength": 3,
|
|
9992
|
+
"description": "The ISO 4217 3-letter code of the currency"
|
|
9993
|
+
},
|
|
9994
|
+
"settlementReportId": {
|
|
9995
|
+
"type": "integer",
|
|
9996
|
+
"nullable": true
|
|
9997
|
+
},
|
|
9998
|
+
"period": {
|
|
9999
|
+
"type": "string",
|
|
10000
|
+
"description": "Month and year the revenue applies to. Only applicable for records with private-evse-access-fee origin",
|
|
10001
|
+
"example": "November 2025"
|
|
10002
|
+
},
|
|
10003
|
+
"chargePointId": {
|
|
10004
|
+
"type": "integer",
|
|
10005
|
+
"description": "ID of the associated charge point"
|
|
10006
|
+
},
|
|
10007
|
+
"locationId": {
|
|
10008
|
+
"type": "integer",
|
|
10009
|
+
"description": "ID of the associated location"
|
|
10010
|
+
},
|
|
10011
|
+
"partnerContractId": {
|
|
10012
|
+
"type": "integer",
|
|
10013
|
+
"description": "ID of the associated partner contract"
|
|
10014
|
+
},
|
|
10015
|
+
"evseCount": {
|
|
10016
|
+
"type": "integer",
|
|
10017
|
+
"description": "Number of EVSEs accessed on this charge point. Only applicable for records with private-evse-access-fee origin"
|
|
10018
|
+
},
|
|
10019
|
+
"chargingSessionId": {
|
|
10020
|
+
"type": "integer"
|
|
10021
|
+
},
|
|
10022
|
+
"startedAt": {
|
|
10023
|
+
"type": "string",
|
|
10024
|
+
"format": "date-time"
|
|
10025
|
+
},
|
|
10026
|
+
"duration": {
|
|
10027
|
+
"type": "string",
|
|
10028
|
+
"description": "Charging Session duration"
|
|
10029
|
+
},
|
|
10030
|
+
"authorization": {
|
|
10031
|
+
"type": "string",
|
|
10032
|
+
"description": "Source of authorisation"
|
|
10033
|
+
},
|
|
10034
|
+
"electricityCost": {
|
|
10035
|
+
"type": "object",
|
|
10036
|
+
"properties": {
|
|
10037
|
+
"withoutTax": {
|
|
10038
|
+
"type": "number"
|
|
10039
|
+
}
|
|
10040
|
+
},
|
|
10041
|
+
"required": [
|
|
10042
|
+
"withoutTax"
|
|
10043
|
+
]
|
|
10044
|
+
},
|
|
10045
|
+
"remainingRevenue": {
|
|
10046
|
+
"type": "object",
|
|
10047
|
+
"properties": {
|
|
10048
|
+
"withoutTax": {
|
|
10049
|
+
"type": "number"
|
|
10050
|
+
}
|
|
10051
|
+
},
|
|
10052
|
+
"required": [
|
|
10053
|
+
"withoutTax"
|
|
10054
|
+
]
|
|
10055
|
+
},
|
|
10056
|
+
"collectedAt": {
|
|
10057
|
+
"type": "string",
|
|
10058
|
+
"format": "date-time",
|
|
10059
|
+
"description": "The date at which the session amount has been fully collected. Only applicable for records with session-cpo origin"
|
|
10060
|
+
},
|
|
10061
|
+
"customFields": {
|
|
10062
|
+
"description": "Current custom field values applicable to this revenue. Omitted when none apply; applicable fields without values are null.",
|
|
10063
|
+
"type": "object",
|
|
10064
|
+
"additionalProperties": true
|
|
10065
|
+
}
|
|
10066
|
+
},
|
|
10067
|
+
"required": [
|
|
10068
|
+
"id",
|
|
10069
|
+
"partnerId",
|
|
10070
|
+
"date",
|
|
10071
|
+
"origin",
|
|
10072
|
+
"totalAmount",
|
|
10073
|
+
"partnerShare",
|
|
10074
|
+
"operatorShare",
|
|
10075
|
+
"currencyCode",
|
|
10076
|
+
"settlementReportId"
|
|
10077
|
+
]
|
|
10078
|
+
}
|
|
10079
|
+
}
|
|
10080
|
+
}
|
|
10081
|
+
},
|
|
10082
|
+
"401": {
|
|
10083
|
+
"schema": {
|
|
10084
|
+
"type": "object",
|
|
10085
|
+
"properties": {
|
|
10086
|
+
"message": {
|
|
10087
|
+
"type": "string"
|
|
10088
|
+
}
|
|
10089
|
+
}
|
|
10090
|
+
}
|
|
10091
|
+
},
|
|
10092
|
+
"403": {
|
|
10093
|
+
"schema": {
|
|
10094
|
+
"type": "object",
|
|
10095
|
+
"properties": {
|
|
10096
|
+
"message": {
|
|
10097
|
+
"type": "string",
|
|
10098
|
+
"default": "This action is unauthorized."
|
|
10099
|
+
}
|
|
10100
|
+
}
|
|
10101
|
+
}
|
|
10102
|
+
},
|
|
10103
|
+
"404": {
|
|
10104
|
+
"schema": {
|
|
10105
|
+
"type": "object",
|
|
10106
|
+
"properties": {
|
|
10107
|
+
"message": {
|
|
10108
|
+
"type": "string"
|
|
10109
|
+
}
|
|
10110
|
+
}
|
|
10111
|
+
}
|
|
10112
|
+
},
|
|
10113
|
+
"412": {
|
|
10114
|
+
"schema": {
|
|
10115
|
+
"type": "object",
|
|
10116
|
+
"required": [
|
|
10117
|
+
"message"
|
|
10118
|
+
],
|
|
10119
|
+
"properties": {
|
|
10120
|
+
"message": {
|
|
10121
|
+
"type": "string"
|
|
10122
|
+
}
|
|
10123
|
+
}
|
|
10124
|
+
}
|
|
10125
|
+
},
|
|
10126
|
+
"422": {
|
|
10127
|
+
"schema": {
|
|
10128
|
+
"type": "object",
|
|
10129
|
+
"required": [
|
|
10130
|
+
"message"
|
|
10131
|
+
],
|
|
10132
|
+
"properties": {
|
|
10133
|
+
"message": {
|
|
10134
|
+
"type": "string"
|
|
10135
|
+
},
|
|
10136
|
+
"errors": {
|
|
10137
|
+
"type": "object",
|
|
10138
|
+
"additionalProperties": {
|
|
10139
|
+
"type": "array",
|
|
10140
|
+
"items": {
|
|
10141
|
+
"type": "string"
|
|
10142
|
+
}
|
|
10143
|
+
}
|
|
10144
|
+
}
|
|
10145
|
+
}
|
|
10146
|
+
}
|
|
10147
|
+
},
|
|
10148
|
+
"429": {
|
|
10149
|
+
"schema": {
|
|
10150
|
+
"type": "object",
|
|
10151
|
+
"properties": {
|
|
10152
|
+
"message": {
|
|
10153
|
+
"type": "string"
|
|
10154
|
+
}
|
|
10155
|
+
}
|
|
10156
|
+
}
|
|
10157
|
+
}
|
|
10158
|
+
},
|
|
9565
10159
|
"partnerSettlementReportIssuePartnerInvoice": {
|
|
9566
10160
|
"202": {
|
|
9567
10161
|
"schema": {
|
|
@@ -12187,7 +12781,8 @@
|
|
|
12187
12781
|
},
|
|
12188
12782
|
"discount": {
|
|
12189
12783
|
"type": "number",
|
|
12190
|
-
"format": "decimal"
|
|
12784
|
+
"format": "decimal",
|
|
12785
|
+
"description": "The current discount. An active or scheduled discount change can replace this value when it starts or ends; see the partner's discount changes."
|
|
12191
12786
|
}
|
|
12192
12787
|
}
|
|
12193
12788
|
},
|
|
@@ -15433,6 +16028,15 @@
|
|
|
15433
16028
|
"type": "integer",
|
|
15434
16029
|
"description": "Operator the report belongs to, as exposed by the operators resource."
|
|
15435
16030
|
},
|
|
16031
|
+
"type": {
|
|
16032
|
+
"description": "The kind of aggregate a reimbursement report represents:\n- **user**: The report aggregates the records owed to a single beneficiary user.\n- **partner**: The report aggregates the records owed by a single payer partner contract.\n",
|
|
16033
|
+
"type": "string",
|
|
16034
|
+
"enum": [
|
|
16035
|
+
"user",
|
|
16036
|
+
"partner"
|
|
16037
|
+
],
|
|
16038
|
+
"example": "user"
|
|
16039
|
+
},
|
|
15436
16040
|
"beneficiary": {
|
|
15437
16041
|
"description": "Party the reimbursement is owed to.\n",
|
|
15438
16042
|
"type": "object",
|
|
@@ -15700,6 +16304,7 @@
|
|
|
15700
16304
|
"required": [
|
|
15701
16305
|
"id",
|
|
15702
16306
|
"operatorId",
|
|
16307
|
+
"type",
|
|
15703
16308
|
"totalEnergy",
|
|
15704
16309
|
"totalAmount",
|
|
15705
16310
|
"periodStartsOn",
|
|
@@ -16546,6 +17151,10 @@
|
|
|
16546
17151
|
"chargePointId": {
|
|
16547
17152
|
"type": "integer"
|
|
16548
17153
|
},
|
|
17154
|
+
"locationId": {
|
|
17155
|
+
"type": "integer",
|
|
17156
|
+
"description": "The ID of the charge point's current location when a session list, session detail or session update webhook payload is built, not a historical session snapshot. Charge point or EVSE moves change the ID in later payloads. A soft-deleted charge point, zone or location still provides its location ID for grouping, although retrieving a deleted location through the location endpoint returns 404. Omitted when the current asset graph has no location."
|
|
17157
|
+
},
|
|
16549
17158
|
"evseId": {
|
|
16550
17159
|
"type": "integer"
|
|
16551
17160
|
},
|
|
@@ -25819,6 +26428,16 @@
|
|
|
25819
26428
|
"items": {
|
|
25820
26429
|
"type": "object",
|
|
25821
26430
|
"properties": {
|
|
26431
|
+
"name": {
|
|
26432
|
+
"type": "string",
|
|
26433
|
+
"maxLength": 255,
|
|
26434
|
+
"description": "Optional notification name. Omission or an empty or spaces-only string leaves it unset. Surrounding whitespace is trimmed. Explicit null is rejected."
|
|
26435
|
+
},
|
|
26436
|
+
"description": {
|
|
26437
|
+
"type": "string",
|
|
26438
|
+
"maxLength": 1000,
|
|
26439
|
+
"description": "Optional internal-only plain-text description, not included in event payloads. Omission or an empty or spaces-only string leaves it unset. Surrounding whitespace is trimmed; internal line breaks are preserved. Explicit null is rejected."
|
|
26440
|
+
},
|
|
25822
26441
|
"id": {
|
|
25823
26442
|
"type": "number",
|
|
25824
26443
|
"readOnly": true
|
|
@@ -25844,6 +26463,7 @@
|
|
|
25844
26463
|
"ChargePointSyncConfigurationNotification",
|
|
25845
26464
|
"CircuitConsumptionNotification",
|
|
25846
26465
|
"circuit.changed",
|
|
26466
|
+
"CoOperatorInsightChangedNotification",
|
|
25847
26467
|
"DiagnosticsStatusNotification",
|
|
25848
26468
|
"FirmwareStatusNotification",
|
|
25849
26469
|
"HardwareStatusNotification",
|
|
@@ -25883,7 +26503,8 @@
|
|
|
25883
26503
|
"cdr.received",
|
|
25884
26504
|
"chargingProfile.applied",
|
|
25885
26505
|
"installerJob.changed",
|
|
25886
|
-
"corporateBilling.limitReached"
|
|
26506
|
+
"corporateBilling.limitReached",
|
|
26507
|
+
"SignedFirmwareStatusNotification"
|
|
25887
26508
|
]
|
|
25888
26509
|
}
|
|
25889
26510
|
},
|
|
@@ -26075,6 +26696,16 @@
|
|
|
26075
26696
|
"data": {
|
|
26076
26697
|
"type": "object",
|
|
26077
26698
|
"properties": {
|
|
26699
|
+
"name": {
|
|
26700
|
+
"type": "string",
|
|
26701
|
+
"maxLength": 255,
|
|
26702
|
+
"description": "Optional notification name. Omission or an empty or spaces-only string leaves it unset. Surrounding whitespace is trimmed. Explicit null is rejected."
|
|
26703
|
+
},
|
|
26704
|
+
"description": {
|
|
26705
|
+
"type": "string",
|
|
26706
|
+
"maxLength": 1000,
|
|
26707
|
+
"description": "Optional internal-only plain-text description, not included in event payloads. Omission or an empty or spaces-only string leaves it unset. Surrounding whitespace is trimmed; internal line breaks are preserved. Explicit null is rejected."
|
|
26708
|
+
},
|
|
26078
26709
|
"id": {
|
|
26079
26710
|
"type": "number",
|
|
26080
26711
|
"readOnly": true
|
|
@@ -26100,6 +26731,7 @@
|
|
|
26100
26731
|
"ChargePointSyncConfigurationNotification",
|
|
26101
26732
|
"CircuitConsumptionNotification",
|
|
26102
26733
|
"circuit.changed",
|
|
26734
|
+
"CoOperatorInsightChangedNotification",
|
|
26103
26735
|
"DiagnosticsStatusNotification",
|
|
26104
26736
|
"FirmwareStatusNotification",
|
|
26105
26737
|
"HardwareStatusNotification",
|
|
@@ -26139,7 +26771,8 @@
|
|
|
26139
26771
|
"cdr.received",
|
|
26140
26772
|
"chargingProfile.applied",
|
|
26141
26773
|
"installerJob.changed",
|
|
26142
|
-
"corporateBilling.limitReached"
|
|
26774
|
+
"corporateBilling.limitReached",
|
|
26775
|
+
"SignedFirmwareStatusNotification"
|
|
26143
26776
|
]
|
|
26144
26777
|
}
|
|
26145
26778
|
},
|
|
@@ -26304,6 +26937,16 @@
|
|
|
26304
26937
|
"data": {
|
|
26305
26938
|
"type": "object",
|
|
26306
26939
|
"properties": {
|
|
26940
|
+
"name": {
|
|
26941
|
+
"type": "string",
|
|
26942
|
+
"maxLength": 255,
|
|
26943
|
+
"description": "Optional notification name. Omission or an empty or spaces-only string leaves it unset. Surrounding whitespace is trimmed. Explicit null is rejected."
|
|
26944
|
+
},
|
|
26945
|
+
"description": {
|
|
26946
|
+
"type": "string",
|
|
26947
|
+
"maxLength": 1000,
|
|
26948
|
+
"description": "Optional internal-only plain-text description, not included in event payloads. Omission or an empty or spaces-only string leaves it unset. Surrounding whitespace is trimmed; internal line breaks are preserved. Explicit null is rejected."
|
|
26949
|
+
},
|
|
26307
26950
|
"id": {
|
|
26308
26951
|
"type": "number",
|
|
26309
26952
|
"readOnly": true
|
|
@@ -26329,6 +26972,7 @@
|
|
|
26329
26972
|
"ChargePointSyncConfigurationNotification",
|
|
26330
26973
|
"CircuitConsumptionNotification",
|
|
26331
26974
|
"circuit.changed",
|
|
26975
|
+
"CoOperatorInsightChangedNotification",
|
|
26332
26976
|
"DiagnosticsStatusNotification",
|
|
26333
26977
|
"FirmwareStatusNotification",
|
|
26334
26978
|
"HardwareStatusNotification",
|
|
@@ -26368,7 +27012,8 @@
|
|
|
26368
27012
|
"cdr.received",
|
|
26369
27013
|
"chargingProfile.applied",
|
|
26370
27014
|
"installerJob.changed",
|
|
26371
|
-
"corporateBilling.limitReached"
|
|
27015
|
+
"corporateBilling.limitReached",
|
|
27016
|
+
"SignedFirmwareStatusNotification"
|
|
26372
27017
|
]
|
|
26373
27018
|
}
|
|
26374
27019
|
},
|
|
@@ -26521,6 +27166,16 @@
|
|
|
26521
27166
|
"data": {
|
|
26522
27167
|
"type": "object",
|
|
26523
27168
|
"properties": {
|
|
27169
|
+
"name": {
|
|
27170
|
+
"type": "string",
|
|
27171
|
+
"maxLength": 255,
|
|
27172
|
+
"description": "Optional notification name. Omission or an empty or spaces-only string leaves it unset. Surrounding whitespace is trimmed. Explicit null is rejected."
|
|
27173
|
+
},
|
|
27174
|
+
"description": {
|
|
27175
|
+
"type": "string",
|
|
27176
|
+
"maxLength": 1000,
|
|
27177
|
+
"description": "Optional internal-only plain-text description, not included in event payloads. Omission or an empty or spaces-only string leaves it unset. Surrounding whitespace is trimmed; internal line breaks are preserved. Explicit null is rejected."
|
|
27178
|
+
},
|
|
26524
27179
|
"id": {
|
|
26525
27180
|
"type": "number",
|
|
26526
27181
|
"readOnly": true
|
|
@@ -26546,6 +27201,7 @@
|
|
|
26546
27201
|
"ChargePointSyncConfigurationNotification",
|
|
26547
27202
|
"CircuitConsumptionNotification",
|
|
26548
27203
|
"circuit.changed",
|
|
27204
|
+
"CoOperatorInsightChangedNotification",
|
|
26549
27205
|
"DiagnosticsStatusNotification",
|
|
26550
27206
|
"FirmwareStatusNotification",
|
|
26551
27207
|
"HardwareStatusNotification",
|
|
@@ -26585,7 +27241,8 @@
|
|
|
26585
27241
|
"cdr.received",
|
|
26586
27242
|
"chargingProfile.applied",
|
|
26587
27243
|
"installerJob.changed",
|
|
26588
|
-
"corporateBilling.limitReached"
|
|
27244
|
+
"corporateBilling.limitReached",
|
|
27245
|
+
"SignedFirmwareStatusNotification"
|
|
26589
27246
|
]
|
|
26590
27247
|
}
|
|
26591
27248
|
},
|
|
@@ -27258,178 +27915,7 @@
|
|
|
27258
27915
|
}
|
|
27259
27916
|
}
|
|
27260
27917
|
},
|
|
27261
|
-
"
|
|
27262
|
-
"200": {
|
|
27263
|
-
"schema": {
|
|
27264
|
-
"type": "object",
|
|
27265
|
-
"properties": {
|
|
27266
|
-
"data": {
|
|
27267
|
-
"type": "object",
|
|
27268
|
-
"description": "Authorization.\n\nReturned by the deprecated Authorization / Read (v1.0) endpoint. Session responses and session\nwebhook notifications embed the session authorization schema instead.\n",
|
|
27269
|
-
"properties": {
|
|
27270
|
-
"id": {
|
|
27271
|
-
"type": "integer"
|
|
27272
|
-
},
|
|
27273
|
-
"operatorId": {
|
|
27274
|
-
"type": "integer",
|
|
27275
|
-
"nullable": true,
|
|
27276
|
-
"description": "The ID of the operator this resource belongs to",
|
|
27277
|
-
"example": 1
|
|
27278
|
-
},
|
|
27279
|
-
"method": {
|
|
27280
|
-
"description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `rfid_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge\n- `plug_and_charge_iso15118` - Authorization via ISO 15118 Plug & Charge\n- `payment_terminal` - Authorization via payment terminal\n- `mobile_app` - Authorization received from a roaming platform via OCPI\n",
|
|
27281
|
-
"type": "string",
|
|
27282
|
-
"enum": [
|
|
27283
|
-
"user_device",
|
|
27284
|
-
"rfid_tag",
|
|
27285
|
-
"mac_address",
|
|
27286
|
-
"admin",
|
|
27287
|
-
"plug_and_charge",
|
|
27288
|
-
"plug_and_charge_iso15118",
|
|
27289
|
-
"payment_terminal",
|
|
27290
|
-
"mobile_app"
|
|
27291
|
-
]
|
|
27292
|
-
},
|
|
27293
|
-
"source": {
|
|
27294
|
-
"description": "The origin of the authorization request.\n- `local` - Authorization initiated directly on this platform\n- `roaming` - Authorization received from a roaming platform (OCPI/Hubject). OCPI authorizations report the method as `mobile_app`.\n- `third_party` - Authorization initiated by a third-party authority\n",
|
|
27295
|
-
"type": "string",
|
|
27296
|
-
"enum": [
|
|
27297
|
-
"local",
|
|
27298
|
-
"roaming",
|
|
27299
|
-
"third_party"
|
|
27300
|
-
]
|
|
27301
|
-
},
|
|
27302
|
-
"createdAt": {
|
|
27303
|
-
"type": "string",
|
|
27304
|
-
"format": "date-time"
|
|
27305
|
-
},
|
|
27306
|
-
"createdAtLocal": {
|
|
27307
|
-
"type": "string",
|
|
27308
|
-
"format": "date-time",
|
|
27309
|
-
"description": "The creation time in the local time zone of the charge point, falling back to the operator's default time zone."
|
|
27310
|
-
},
|
|
27311
|
-
"status": {
|
|
27312
|
-
"description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
|
|
27313
|
-
"type": "string",
|
|
27314
|
-
"enum": [
|
|
27315
|
-
"accepted",
|
|
27316
|
-
"rejected",
|
|
27317
|
-
"pending"
|
|
27318
|
-
]
|
|
27319
|
-
},
|
|
27320
|
-
"rejectionReason": {
|
|
27321
|
-
"type": "string",
|
|
27322
|
-
"nullable": true,
|
|
27323
|
-
"description": "The reason for rejecting the authorization. `null` unless status is `rejected`."
|
|
27324
|
-
},
|
|
27325
|
-
"userId": {
|
|
27326
|
-
"type": "integer",
|
|
27327
|
-
"nullable": true,
|
|
27328
|
-
"description": "The user that is authorized. `null` when the authorization is not linked to a local user."
|
|
27329
|
-
},
|
|
27330
|
-
"rfidTagUid": {
|
|
27331
|
-
"type": "string",
|
|
27332
|
-
"nullable": true,
|
|
27333
|
-
"description": "The UID of the identification tag that created the authorization. Only populated when source is\n`local` or `third_party`; `null` for roaming authorizations, whose token details are in the `roaming`\nobject.\n"
|
|
27334
|
-
},
|
|
27335
|
-
"roaming": {
|
|
27336
|
-
"description": "In case source is `roaming`, this object describes the EMSP that gave the authorization",
|
|
27337
|
-
"type": "object",
|
|
27338
|
-
"properties": {
|
|
27339
|
-
"platformId": {
|
|
27340
|
-
"description": "The roaming platform ID that gave the authorization",
|
|
27341
|
-
"type": "integer"
|
|
27342
|
-
},
|
|
27343
|
-
"platformRoleId": {
|
|
27344
|
-
"description": "The role that gave the authorization (the EMSP)",
|
|
27345
|
-
"type": "integer"
|
|
27346
|
-
},
|
|
27347
|
-
"platformRole": {
|
|
27348
|
-
"description": "The role identifier",
|
|
27349
|
-
"type": "string"
|
|
27350
|
-
},
|
|
27351
|
-
"reference": {
|
|
27352
|
-
"description": "OCPI's authorization_reference, or Hubject's SessionID",
|
|
27353
|
-
"type": "string"
|
|
27354
|
-
},
|
|
27355
|
-
"client": {
|
|
27356
|
-
"description": "OCPI's contractId, or Hubject's EVCO ID",
|
|
27357
|
-
"type": "string"
|
|
27358
|
-
}
|
|
27359
|
-
},
|
|
27360
|
-
"required": [
|
|
27361
|
-
"platformId",
|
|
27362
|
-
"platformRoleId",
|
|
27363
|
-
"platformRole",
|
|
27364
|
-
"reference",
|
|
27365
|
-
"client"
|
|
27366
|
-
]
|
|
27367
|
-
},
|
|
27368
|
-
"lastUpdatedAt": {
|
|
27369
|
-
"type": "string",
|
|
27370
|
-
"format": "date-time",
|
|
27371
|
-
"description": "ISO 8601 formatted date",
|
|
27372
|
-
"readOnly": true
|
|
27373
|
-
}
|
|
27374
|
-
},
|
|
27375
|
-
"required": [
|
|
27376
|
-
"id",
|
|
27377
|
-
"method",
|
|
27378
|
-
"source",
|
|
27379
|
-
"createdAt",
|
|
27380
|
-
"status",
|
|
27381
|
-
"rejectionReason",
|
|
27382
|
-
"userId",
|
|
27383
|
-
"rfidTagUid",
|
|
27384
|
-
"lastUpdatedAt"
|
|
27385
|
-
]
|
|
27386
|
-
}
|
|
27387
|
-
}
|
|
27388
|
-
}
|
|
27389
|
-
},
|
|
27390
|
-
"401": {
|
|
27391
|
-
"schema": {
|
|
27392
|
-
"type": "object",
|
|
27393
|
-
"properties": {
|
|
27394
|
-
"message": {
|
|
27395
|
-
"type": "string"
|
|
27396
|
-
}
|
|
27397
|
-
}
|
|
27398
|
-
}
|
|
27399
|
-
},
|
|
27400
|
-
"403": {
|
|
27401
|
-
"schema": {
|
|
27402
|
-
"type": "object",
|
|
27403
|
-
"properties": {
|
|
27404
|
-
"message": {
|
|
27405
|
-
"type": "string",
|
|
27406
|
-
"default": "This action is unauthorized."
|
|
27407
|
-
}
|
|
27408
|
-
}
|
|
27409
|
-
}
|
|
27410
|
-
},
|
|
27411
|
-
"404": {
|
|
27412
|
-
"schema": {
|
|
27413
|
-
"type": "object",
|
|
27414
|
-
"properties": {
|
|
27415
|
-
"message": {
|
|
27416
|
-
"type": "string"
|
|
27417
|
-
}
|
|
27418
|
-
}
|
|
27419
|
-
}
|
|
27420
|
-
},
|
|
27421
|
-
"429": {
|
|
27422
|
-
"schema": {
|
|
27423
|
-
"type": "object",
|
|
27424
|
-
"properties": {
|
|
27425
|
-
"message": {
|
|
27426
|
-
"type": "string"
|
|
27427
|
-
}
|
|
27428
|
-
}
|
|
27429
|
-
}
|
|
27430
|
-
}
|
|
27431
|
-
},
|
|
27432
|
-
"authorizationsListing": {
|
|
27918
|
+
"adminSessionsListing": {
|
|
27433
27919
|
"200": {
|
|
27434
27920
|
"schema": {
|
|
27435
27921
|
"type": "object",
|
|
@@ -27438,98 +27924,26 @@
|
|
|
27438
27924
|
"type": "array",
|
|
27439
27925
|
"items": {
|
|
27440
27926
|
"type": "object",
|
|
27441
|
-
"description": "Authorization",
|
|
27442
27927
|
"properties": {
|
|
27443
27928
|
"id": {
|
|
27444
|
-
"type": "integer"
|
|
27445
|
-
},
|
|
27446
|
-
"method": {
|
|
27447
|
-
"description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `roaming` - Authorization via roaming platform (OCPI/Hubject)\n- `payment_terminal` - Authorization via payment terminal\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
|
|
27448
|
-
"type": "string",
|
|
27449
|
-
"enum": [
|
|
27450
|
-
"user_device",
|
|
27451
|
-
"id_tag",
|
|
27452
|
-
"admin",
|
|
27453
|
-
"plug_and_charge",
|
|
27454
|
-
"roaming",
|
|
27455
|
-
"payment_terminal",
|
|
27456
|
-
"plug_and_charge_iso15118"
|
|
27457
|
-
]
|
|
27458
|
-
},
|
|
27459
|
-
"source": {
|
|
27460
|
-
"description": "In case roaming is set, the method can only be user_device or id_tag",
|
|
27461
|
-
"type": "string",
|
|
27462
|
-
"enum": [
|
|
27463
|
-
"local",
|
|
27464
|
-
"roaming"
|
|
27465
|
-
]
|
|
27466
|
-
},
|
|
27467
|
-
"createdAt": {
|
|
27468
27929
|
"type": "string",
|
|
27469
|
-
"format": "
|
|
27470
|
-
|
|
27471
|
-
|
|
27472
|
-
"type": "string",
|
|
27473
|
-
"enum": [
|
|
27474
|
-
"accepted",
|
|
27475
|
-
"rejected",
|
|
27476
|
-
"pending"
|
|
27477
|
-
]
|
|
27930
|
+
"format": "uuid",
|
|
27931
|
+
"readOnly": true,
|
|
27932
|
+
"description": "The tracked browser session ID used by the terminate-sessions action."
|
|
27478
27933
|
},
|
|
27479
|
-
"
|
|
27934
|
+
"startedAt": {
|
|
27480
27935
|
"type": "string",
|
|
27481
|
-
"
|
|
27482
|
-
|
|
27483
|
-
|
|
27484
|
-
"type": "integer",
|
|
27485
|
-
"nullable": true,
|
|
27486
|
-
"description": "The user that is authorized. For anonymous users this value is 0"
|
|
27936
|
+
"format": "date-time",
|
|
27937
|
+
"description": "ISO 8601 formatted date",
|
|
27938
|
+
"readOnly": true
|
|
27487
27939
|
},
|
|
27488
|
-
"
|
|
27940
|
+
"lastSeenAt": {
|
|
27941
|
+
"description": "ISO 8601 formatted date",
|
|
27489
27942
|
"type": "string",
|
|
27490
|
-
"
|
|
27491
|
-
"
|
|
27492
|
-
},
|
|
27493
|
-
"roaming": {
|
|
27494
|
-
"description": "Roaming information for authorizations from external EMSPs.\nPresent only when source is 'roaming'.\n\nNote: The platformRoleId field is conditionally included:\n- Always present for OCPI authorizations\n- May be absent for Hubject authorizations (only included when hubject_platform_role_id is set)\n",
|
|
27495
|
-
"type": "object",
|
|
27496
|
-
"nullable": true,
|
|
27497
|
-
"properties": {
|
|
27498
|
-
"platformId": {
|
|
27499
|
-
"description": "The roaming platform ID that gave the authorization",
|
|
27500
|
-
"type": "integer"
|
|
27501
|
-
},
|
|
27502
|
-
"platformRoleId": {
|
|
27503
|
-
"description": "The ID of the roaming operator role (EMSP) that gave the authorization.\n\nConditional presence:\n- OCPI: Always present\n- Hubject: Only present when hubject_platform_role_id is set in the authorization\n",
|
|
27504
|
-
"type": "integer"
|
|
27505
|
-
},
|
|
27506
|
-
"platformRole": {
|
|
27507
|
-
"description": "The role identifier",
|
|
27508
|
-
"type": "string"
|
|
27509
|
-
},
|
|
27510
|
-
"reference": {
|
|
27511
|
-
"description": "OCPI's authorization_reference, or Hubjects SessionID",
|
|
27512
|
-
"type": "string"
|
|
27513
|
-
},
|
|
27514
|
-
"client": {
|
|
27515
|
-
"description": "OCPI's contractId, or Hubjects EVCO ID",
|
|
27516
|
-
"type": "string"
|
|
27517
|
-
}
|
|
27518
|
-
}
|
|
27519
|
-
},
|
|
27520
|
-
"chargePointId": {
|
|
27521
|
-
"type": "integer"
|
|
27522
|
-
},
|
|
27523
|
-
"evseId": {
|
|
27524
|
-
"type": "integer"
|
|
27525
|
-
},
|
|
27526
|
-
"sessionIds": {
|
|
27527
|
-
"type": "array",
|
|
27528
|
-
"items": {
|
|
27529
|
-
"type": "integer"
|
|
27530
|
-
}
|
|
27943
|
+
"format": "date-time",
|
|
27944
|
+
"readOnly": true
|
|
27531
27945
|
},
|
|
27532
|
-
"
|
|
27946
|
+
"expiresAt": {
|
|
27533
27947
|
"type": "string",
|
|
27534
27948
|
"format": "date-time",
|
|
27535
27949
|
"description": "ISO 8601 formatted date",
|
|
@@ -27538,13 +27952,9 @@
|
|
|
27538
27952
|
},
|
|
27539
27953
|
"required": [
|
|
27540
27954
|
"id",
|
|
27541
|
-
"
|
|
27542
|
-
"
|
|
27543
|
-
"
|
|
27544
|
-
"status",
|
|
27545
|
-
"rejectionReason",
|
|
27546
|
-
"chargePointId",
|
|
27547
|
-
"sessionIds"
|
|
27955
|
+
"startedAt",
|
|
27956
|
+
"lastSeenAt",
|
|
27957
|
+
"expiresAt"
|
|
27548
27958
|
]
|
|
27549
27959
|
}
|
|
27550
27960
|
},
|
|
@@ -27574,95 +27984,34 @@
|
|
|
27574
27984
|
}
|
|
27575
27985
|
},
|
|
27576
27986
|
"meta": {
|
|
27577
|
-
"
|
|
27578
|
-
|
|
27579
|
-
|
|
27580
|
-
"type": "
|
|
27581
|
-
"
|
|
27582
|
-
"description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
|
|
27583
|
-
"properties": {
|
|
27584
|
-
"current_page": {
|
|
27585
|
-
"type": "integer",
|
|
27586
|
-
"description": "The number of the current page being fetched"
|
|
27587
|
-
},
|
|
27588
|
-
"from": {
|
|
27589
|
-
"type": "integer",
|
|
27590
|
-
"description": "The first of the fetched item's position in the total list",
|
|
27591
|
-
"nullable": true
|
|
27592
|
-
},
|
|
27593
|
-
"last_page": {
|
|
27594
|
-
"type": "integer",
|
|
27595
|
-
"description": "The number of the past page"
|
|
27596
|
-
},
|
|
27597
|
-
"links": {
|
|
27598
|
-
"type": "array",
|
|
27599
|
-
"description": "Array of link objects pointing to the previous/current/next pages",
|
|
27600
|
-
"items": {
|
|
27601
|
-
"type": "object",
|
|
27602
|
-
"properties": {
|
|
27603
|
-
"url": {
|
|
27604
|
-
"type": "string",
|
|
27605
|
-
"nullable": true,
|
|
27606
|
-
"description": "The URL to the previous/current/next page or null if such page does not exist"
|
|
27607
|
-
},
|
|
27608
|
-
"label": {
|
|
27609
|
-
"type": "string",
|
|
27610
|
-
"description": "The name of the page that the links should be pointing to"
|
|
27611
|
-
},
|
|
27612
|
-
"active": {
|
|
27613
|
-
"type": "boolean",
|
|
27614
|
-
"description": "Is the link active, it will be true only when there is an URL"
|
|
27615
|
-
}
|
|
27616
|
-
}
|
|
27617
|
-
}
|
|
27618
|
-
},
|
|
27619
|
-
"path": {
|
|
27620
|
-
"type": "string",
|
|
27621
|
-
"description": "The base route of the endpoint (unpaginated)"
|
|
27622
|
-
},
|
|
27623
|
-
"per_page": {
|
|
27624
|
-
"type": "integer",
|
|
27625
|
-
"description": "The max number of items in each page"
|
|
27626
|
-
},
|
|
27627
|
-
"to": {
|
|
27628
|
-
"type": "integer",
|
|
27629
|
-
"description": "The last of the fetched item's position in the total list",
|
|
27630
|
-
"nullable": true
|
|
27631
|
-
},
|
|
27632
|
-
"total": {
|
|
27633
|
-
"type": "integer",
|
|
27634
|
-
"description": "The total number of items in the list"
|
|
27635
|
-
}
|
|
27636
|
-
}
|
|
27987
|
+
"type": "object",
|
|
27988
|
+
"properties": {
|
|
27989
|
+
"path": {
|
|
27990
|
+
"type": "string",
|
|
27991
|
+
"description": "The base route of the endpoint (unpaginated)"
|
|
27637
27992
|
},
|
|
27638
|
-
{
|
|
27639
|
-
"
|
|
27640
|
-
"
|
|
27641
|
-
|
|
27642
|
-
|
|
27643
|
-
|
|
27644
|
-
|
|
27645
|
-
|
|
27646
|
-
|
|
27647
|
-
|
|
27648
|
-
|
|
27649
|
-
|
|
27650
|
-
|
|
27651
|
-
"next_cursor": {
|
|
27652
|
-
"type": "string",
|
|
27653
|
-
"description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
|
|
27654
|
-
"nullable": true
|
|
27655
|
-
},
|
|
27656
|
-
"prev_cursor": {
|
|
27657
|
-
"type": "string",
|
|
27658
|
-
"description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
|
|
27659
|
-
"nullable": true
|
|
27660
|
-
}
|
|
27661
|
-
}
|
|
27993
|
+
"per_page": {
|
|
27994
|
+
"type": "integer",
|
|
27995
|
+
"description": "The max number of items in each page"
|
|
27996
|
+
},
|
|
27997
|
+
"next_cursor": {
|
|
27998
|
+
"type": "string",
|
|
27999
|
+
"description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
|
|
28000
|
+
"nullable": true
|
|
28001
|
+
},
|
|
28002
|
+
"prev_cursor": {
|
|
28003
|
+
"type": "string",
|
|
28004
|
+
"description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
|
|
28005
|
+
"nullable": true
|
|
27662
28006
|
}
|
|
27663
|
-
|
|
28007
|
+
}
|
|
27664
28008
|
}
|
|
27665
|
-
}
|
|
28009
|
+
},
|
|
28010
|
+
"required": [
|
|
28011
|
+
"data",
|
|
28012
|
+
"links",
|
|
28013
|
+
"meta"
|
|
28014
|
+
]
|
|
27666
28015
|
}
|
|
27667
28016
|
},
|
|
27668
28017
|
"401": {
|
|
@@ -27695,56 +28044,60 @@
|
|
|
27695
28044
|
}
|
|
27696
28045
|
}
|
|
27697
28046
|
}
|
|
27698
|
-
},
|
|
27699
|
-
"429": {
|
|
27700
|
-
"schema": {
|
|
27701
|
-
"type": "object",
|
|
27702
|
-
"properties": {
|
|
27703
|
-
"message": {
|
|
27704
|
-
"type": "string"
|
|
27705
|
-
}
|
|
27706
|
-
}
|
|
27707
|
-
}
|
|
27708
28047
|
}
|
|
27709
28048
|
},
|
|
27710
|
-
"
|
|
28049
|
+
"authorizationReadDeprecated": {
|
|
27711
28050
|
"200": {
|
|
27712
28051
|
"schema": {
|
|
27713
28052
|
"type": "object",
|
|
27714
28053
|
"properties": {
|
|
27715
28054
|
"data": {
|
|
27716
28055
|
"type": "object",
|
|
27717
|
-
"description": "Authorization",
|
|
28056
|
+
"description": "Authorization.\n\nReturned by the deprecated Authorization / Read (v1.0) endpoint. Session responses and session\nwebhook notifications embed the session authorization schema instead.\n",
|
|
27718
28057
|
"properties": {
|
|
27719
28058
|
"id": {
|
|
27720
28059
|
"type": "integer"
|
|
27721
28060
|
},
|
|
28061
|
+
"operatorId": {
|
|
28062
|
+
"type": "integer",
|
|
28063
|
+
"nullable": true,
|
|
28064
|
+
"description": "The ID of the operator this resource belongs to",
|
|
28065
|
+
"example": 1
|
|
28066
|
+
},
|
|
27722
28067
|
"method": {
|
|
27723
|
-
"description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `
|
|
28068
|
+
"description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `rfid_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge\n- `plug_and_charge_iso15118` - Authorization via ISO 15118 Plug & Charge\n- `payment_terminal` - Authorization via payment terminal\n- `mobile_app` - Authorization received from a roaming platform via OCPI\n",
|
|
27724
28069
|
"type": "string",
|
|
27725
28070
|
"enum": [
|
|
27726
28071
|
"user_device",
|
|
27727
|
-
"
|
|
28072
|
+
"rfid_tag",
|
|
28073
|
+
"mac_address",
|
|
27728
28074
|
"admin",
|
|
27729
28075
|
"plug_and_charge",
|
|
27730
|
-
"
|
|
28076
|
+
"plug_and_charge_iso15118",
|
|
27731
28077
|
"payment_terminal",
|
|
27732
|
-
"
|
|
28078
|
+
"mobile_app"
|
|
27733
28079
|
]
|
|
27734
28080
|
},
|
|
27735
28081
|
"source": {
|
|
27736
|
-
"description": "
|
|
28082
|
+
"description": "The origin of the authorization request.\n- `local` - Authorization initiated directly on this platform\n- `roaming` - Authorization received from a roaming platform (OCPI/Hubject). OCPI authorizations report the method as `mobile_app`.\n- `third_party` - Authorization initiated by a third-party authority\n",
|
|
27737
28083
|
"type": "string",
|
|
27738
28084
|
"enum": [
|
|
27739
28085
|
"local",
|
|
27740
|
-
"roaming"
|
|
28086
|
+
"roaming",
|
|
28087
|
+
"third_party"
|
|
27741
28088
|
]
|
|
27742
28089
|
},
|
|
27743
28090
|
"createdAt": {
|
|
27744
28091
|
"type": "string",
|
|
27745
28092
|
"format": "date-time"
|
|
27746
28093
|
},
|
|
28094
|
+
"createdAtLocal": {
|
|
28095
|
+
"type": "string",
|
|
28096
|
+
"format": "date-time",
|
|
28097
|
+
"description": "The creation time in the local time zone of the charge point, falling back to the operator's default time zone."
|
|
28098
|
+
},
|
|
27747
28099
|
"status": {
|
|
28100
|
+
"description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
|
|
27748
28101
|
"type": "string",
|
|
27749
28102
|
"enum": [
|
|
27750
28103
|
"accepted",
|
|
@@ -27754,29 +28107,29 @@
|
|
|
27754
28107
|
},
|
|
27755
28108
|
"rejectionReason": {
|
|
27756
28109
|
"type": "string",
|
|
27757
|
-
"nullable": true
|
|
28110
|
+
"nullable": true,
|
|
28111
|
+
"description": "The reason for rejecting the authorization. `null` unless status is `rejected`."
|
|
27758
28112
|
},
|
|
27759
28113
|
"userId": {
|
|
27760
28114
|
"type": "integer",
|
|
27761
28115
|
"nullable": true,
|
|
27762
|
-
"description": "The user that is authorized.
|
|
28116
|
+
"description": "The user that is authorized. `null` when the authorization is not linked to a local user."
|
|
27763
28117
|
},
|
|
27764
|
-
"
|
|
28118
|
+
"rfidTagUid": {
|
|
27765
28119
|
"type": "string",
|
|
27766
28120
|
"nullable": true,
|
|
27767
|
-
"description": "The UID of the
|
|
28121
|
+
"description": "The UID of the identification tag that created the authorization. Only populated when source is\n`local` or `third_party`; `null` for roaming authorizations, whose token details are in the `roaming`\nobject.\n"
|
|
27768
28122
|
},
|
|
27769
28123
|
"roaming": {
|
|
27770
|
-
"description": "
|
|
28124
|
+
"description": "In case source is `roaming`, this object describes the EMSP that gave the authorization",
|
|
27771
28125
|
"type": "object",
|
|
27772
|
-
"nullable": true,
|
|
27773
28126
|
"properties": {
|
|
27774
28127
|
"platformId": {
|
|
27775
28128
|
"description": "The roaming platform ID that gave the authorization",
|
|
27776
28129
|
"type": "integer"
|
|
27777
28130
|
},
|
|
27778
28131
|
"platformRoleId": {
|
|
27779
|
-
"description": "The
|
|
28132
|
+
"description": "The role that gave the authorization (the EMSP)",
|
|
27780
28133
|
"type": "integer"
|
|
27781
28134
|
},
|
|
27782
28135
|
"platformRole": {
|
|
@@ -27784,26 +28137,21 @@
|
|
|
27784
28137
|
"type": "string"
|
|
27785
28138
|
},
|
|
27786
28139
|
"reference": {
|
|
27787
|
-
"description": "OCPI's authorization_reference, or
|
|
28140
|
+
"description": "OCPI's authorization_reference, or Hubject's SessionID",
|
|
27788
28141
|
"type": "string"
|
|
27789
28142
|
},
|
|
27790
28143
|
"client": {
|
|
27791
|
-
"description": "OCPI's contractId, or
|
|
28144
|
+
"description": "OCPI's contractId, or Hubject's EVCO ID",
|
|
27792
28145
|
"type": "string"
|
|
27793
28146
|
}
|
|
27794
|
-
}
|
|
27795
|
-
|
|
27796
|
-
|
|
27797
|
-
|
|
27798
|
-
|
|
27799
|
-
|
|
27800
|
-
|
|
27801
|
-
|
|
27802
|
-
"sessionIds": {
|
|
27803
|
-
"type": "array",
|
|
27804
|
-
"items": {
|
|
27805
|
-
"type": "integer"
|
|
27806
|
-
}
|
|
28147
|
+
},
|
|
28148
|
+
"required": [
|
|
28149
|
+
"platformId",
|
|
28150
|
+
"platformRoleId",
|
|
28151
|
+
"platformRole",
|
|
28152
|
+
"reference",
|
|
28153
|
+
"client"
|
|
28154
|
+
]
|
|
27807
28155
|
},
|
|
27808
28156
|
"lastUpdatedAt": {
|
|
27809
28157
|
"type": "string",
|
|
@@ -27819,8 +28167,9 @@
|
|
|
27819
28167
|
"createdAt",
|
|
27820
28168
|
"status",
|
|
27821
28169
|
"rejectionReason",
|
|
27822
|
-
"
|
|
27823
|
-
"
|
|
28170
|
+
"userId",
|
|
28171
|
+
"rfidTagUid",
|
|
28172
|
+
"lastUpdatedAt"
|
|
27824
28173
|
]
|
|
27825
28174
|
}
|
|
27826
28175
|
}
|
|
@@ -27868,7 +28217,7 @@
|
|
|
27868
28217
|
}
|
|
27869
28218
|
}
|
|
27870
28219
|
},
|
|
27871
|
-
"
|
|
28220
|
+
"authorizationsListing": {
|
|
27872
28221
|
"200": {
|
|
27873
28222
|
"schema": {
|
|
27874
28223
|
"type": "object",
|
|
@@ -27882,19 +28231,12 @@
|
|
|
27882
28231
|
"id": {
|
|
27883
28232
|
"type": "integer"
|
|
27884
28233
|
},
|
|
27885
|
-
"operatorId": {
|
|
27886
|
-
"type": "integer",
|
|
27887
|
-
"nullable": true,
|
|
27888
|
-
"description": "The ID of the operator this resource belongs to",
|
|
27889
|
-
"example": 1
|
|
27890
|
-
},
|
|
27891
28234
|
"method": {
|
|
27892
|
-
"description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `
|
|
28235
|
+
"description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `roaming` - Authorization via roaming platform (OCPI/Hubject)\n- `payment_terminal` - Authorization via payment terminal\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
|
|
27893
28236
|
"type": "string",
|
|
27894
28237
|
"enum": [
|
|
27895
28238
|
"user_device",
|
|
27896
28239
|
"id_tag",
|
|
27897
|
-
"mac_address",
|
|
27898
28240
|
"admin",
|
|
27899
28241
|
"plug_and_charge",
|
|
27900
28242
|
"roaming",
|
|
@@ -27903,7 +28245,7 @@
|
|
|
27903
28245
|
]
|
|
27904
28246
|
},
|
|
27905
28247
|
"source": {
|
|
27906
|
-
"description": "
|
|
28248
|
+
"description": "In case roaming is set, the method can only be user_device or id_tag",
|
|
27907
28249
|
"type": "string",
|
|
27908
28250
|
"enum": [
|
|
27909
28251
|
"local",
|
|
@@ -27915,7 +28257,6 @@
|
|
|
27915
28257
|
"format": "date-time"
|
|
27916
28258
|
},
|
|
27917
28259
|
"status": {
|
|
27918
|
-
"description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
|
|
27919
28260
|
"type": "string",
|
|
27920
28261
|
"enum": [
|
|
27921
28262
|
"accepted",
|
|
@@ -27925,19 +28266,22 @@
|
|
|
27925
28266
|
},
|
|
27926
28267
|
"rejectionReason": {
|
|
27927
28268
|
"type": "string",
|
|
27928
|
-
"
|
|
28269
|
+
"nullable": true
|
|
27929
28270
|
},
|
|
27930
28271
|
"userId": {
|
|
27931
28272
|
"type": "integer",
|
|
28273
|
+
"nullable": true,
|
|
27932
28274
|
"description": "The user that is authorized. For anonymous users this value is 0"
|
|
27933
28275
|
},
|
|
27934
28276
|
"idTagUid": {
|
|
27935
28277
|
"type": "string",
|
|
28278
|
+
"nullable": true,
|
|
27936
28279
|
"description": "The UID of the Id Tag that created the authorization. It could be of an RFID card or MAC address."
|
|
27937
28280
|
},
|
|
27938
28281
|
"roaming": {
|
|
27939
28282
|
"description": "Roaming information for authorizations from external EMSPs.\nPresent only when source is 'roaming'.\n\nNote: The platformRoleId field is conditionally included:\n- Always present for OCPI authorizations\n- May be absent for Hubject authorizations (only included when hubject_platform_role_id is set)\n",
|
|
27940
28283
|
"type": "object",
|
|
28284
|
+
"nullable": true,
|
|
27941
28285
|
"properties": {
|
|
27942
28286
|
"platformId": {
|
|
27943
28287
|
"description": "The roaming platform ID that gave the authorization",
|
|
@@ -27958,22 +28302,8 @@
|
|
|
27958
28302
|
"client": {
|
|
27959
28303
|
"description": "OCPI's contractId, or Hubjects EVCO ID",
|
|
27960
28304
|
"type": "string"
|
|
27961
|
-
},
|
|
27962
|
-
"uid": {
|
|
27963
|
-
"description": "OCPI's token UID, as recorded at the moment the authorization was created. Absent for Hubject\nauthorizations and for authorizations created before the identifiers were recorded.\n",
|
|
27964
|
-
"type": "string"
|
|
27965
|
-
},
|
|
27966
|
-
"visualNumber": {
|
|
27967
|
-
"description": "OCPI's token visual_number, as recorded at the moment the authorization was created. Absent for\nHubject authorizations, for authorizations created before the identifiers were recorded, and when\nthe roaming platform did not provide a visual number.\n",
|
|
27968
|
-
"type": "string"
|
|
27969
28305
|
}
|
|
27970
|
-
}
|
|
27971
|
-
"required": [
|
|
27972
|
-
"platformId",
|
|
27973
|
-
"platformRole",
|
|
27974
|
-
"reference",
|
|
27975
|
-
"client"
|
|
27976
|
-
]
|
|
28306
|
+
}
|
|
27977
28307
|
},
|
|
27978
28308
|
"chargePointId": {
|
|
27979
28309
|
"type": "integer"
|
|
@@ -28000,10 +28330,9 @@
|
|
|
28000
28330
|
"source",
|
|
28001
28331
|
"createdAt",
|
|
28002
28332
|
"status",
|
|
28003
|
-
"
|
|
28004
|
-
"
|
|
28005
|
-
"sessionIds"
|
|
28006
|
-
"lastUpdatedAt"
|
|
28333
|
+
"rejectionReason",
|
|
28334
|
+
"chargePointId",
|
|
28335
|
+
"sessionIds"
|
|
28007
28336
|
]
|
|
28008
28337
|
}
|
|
28009
28338
|
},
|
|
@@ -28166,7 +28495,7 @@
|
|
|
28166
28495
|
}
|
|
28167
28496
|
}
|
|
28168
28497
|
},
|
|
28169
|
-
"
|
|
28498
|
+
"authorizationRead": {
|
|
28170
28499
|
"200": {
|
|
28171
28500
|
"schema": {
|
|
28172
28501
|
"type": "object",
|
|
@@ -28178,19 +28507,12 @@
|
|
|
28178
28507
|
"id": {
|
|
28179
28508
|
"type": "integer"
|
|
28180
28509
|
},
|
|
28181
|
-
"operatorId": {
|
|
28182
|
-
"type": "integer",
|
|
28183
|
-
"nullable": true,
|
|
28184
|
-
"description": "The ID of the operator this resource belongs to",
|
|
28185
|
-
"example": 1
|
|
28186
|
-
},
|
|
28187
28510
|
"method": {
|
|
28188
|
-
"description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `
|
|
28511
|
+
"description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `roaming` - Authorization via roaming platform (OCPI/Hubject)\n- `payment_terminal` - Authorization via payment terminal\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
|
|
28189
28512
|
"type": "string",
|
|
28190
28513
|
"enum": [
|
|
28191
28514
|
"user_device",
|
|
28192
28515
|
"id_tag",
|
|
28193
|
-
"mac_address",
|
|
28194
28516
|
"admin",
|
|
28195
28517
|
"plug_and_charge",
|
|
28196
28518
|
"roaming",
|
|
@@ -28199,7 +28521,7 @@
|
|
|
28199
28521
|
]
|
|
28200
28522
|
},
|
|
28201
28523
|
"source": {
|
|
28202
|
-
"description": "
|
|
28524
|
+
"description": "In case roaming is set, the method can only be user_device or id_tag",
|
|
28203
28525
|
"type": "string",
|
|
28204
28526
|
"enum": [
|
|
28205
28527
|
"local",
|
|
@@ -28211,7 +28533,6 @@
|
|
|
28211
28533
|
"format": "date-time"
|
|
28212
28534
|
},
|
|
28213
28535
|
"status": {
|
|
28214
|
-
"description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
|
|
28215
28536
|
"type": "string",
|
|
28216
28537
|
"enum": [
|
|
28217
28538
|
"accepted",
|
|
@@ -28221,19 +28542,22 @@
|
|
|
28221
28542
|
},
|
|
28222
28543
|
"rejectionReason": {
|
|
28223
28544
|
"type": "string",
|
|
28224
|
-
"
|
|
28545
|
+
"nullable": true
|
|
28225
28546
|
},
|
|
28226
28547
|
"userId": {
|
|
28227
28548
|
"type": "integer",
|
|
28549
|
+
"nullable": true,
|
|
28228
28550
|
"description": "The user that is authorized. For anonymous users this value is 0"
|
|
28229
28551
|
},
|
|
28230
28552
|
"idTagUid": {
|
|
28231
28553
|
"type": "string",
|
|
28554
|
+
"nullable": true,
|
|
28232
28555
|
"description": "The UID of the Id Tag that created the authorization. It could be of an RFID card or MAC address."
|
|
28233
28556
|
},
|
|
28234
28557
|
"roaming": {
|
|
28235
28558
|
"description": "Roaming information for authorizations from external EMSPs.\nPresent only when source is 'roaming'.\n\nNote: The platformRoleId field is conditionally included:\n- Always present for OCPI authorizations\n- May be absent for Hubject authorizations (only included when hubject_platform_role_id is set)\n",
|
|
28236
28559
|
"type": "object",
|
|
28560
|
+
"nullable": true,
|
|
28237
28561
|
"properties": {
|
|
28238
28562
|
"platformId": {
|
|
28239
28563
|
"description": "The roaming platform ID that gave the authorization",
|
|
@@ -28254,22 +28578,486 @@
|
|
|
28254
28578
|
"client": {
|
|
28255
28579
|
"description": "OCPI's contractId, or Hubjects EVCO ID",
|
|
28256
28580
|
"type": "string"
|
|
28257
|
-
},
|
|
28258
|
-
"uid": {
|
|
28259
|
-
"description": "OCPI's token UID, as recorded at the moment the authorization was created. Absent for Hubject\nauthorizations and for authorizations created before the identifiers were recorded.\n",
|
|
28260
|
-
"type": "string"
|
|
28261
|
-
},
|
|
28262
|
-
"visualNumber": {
|
|
28263
|
-
"description": "OCPI's token visual_number, as recorded at the moment the authorization was created. Absent for\nHubject authorizations, for authorizations created before the identifiers were recorded, and when\nthe roaming platform did not provide a visual number.\n",
|
|
28264
|
-
"type": "string"
|
|
28265
28581
|
}
|
|
28266
|
-
}
|
|
28267
|
-
|
|
28268
|
-
|
|
28269
|
-
|
|
28270
|
-
|
|
28271
|
-
|
|
28272
|
-
|
|
28582
|
+
}
|
|
28583
|
+
},
|
|
28584
|
+
"chargePointId": {
|
|
28585
|
+
"type": "integer"
|
|
28586
|
+
},
|
|
28587
|
+
"evseId": {
|
|
28588
|
+
"type": "integer"
|
|
28589
|
+
},
|
|
28590
|
+
"sessionIds": {
|
|
28591
|
+
"type": "array",
|
|
28592
|
+
"items": {
|
|
28593
|
+
"type": "integer"
|
|
28594
|
+
}
|
|
28595
|
+
},
|
|
28596
|
+
"lastUpdatedAt": {
|
|
28597
|
+
"type": "string",
|
|
28598
|
+
"format": "date-time",
|
|
28599
|
+
"description": "ISO 8601 formatted date",
|
|
28600
|
+
"readOnly": true
|
|
28601
|
+
}
|
|
28602
|
+
},
|
|
28603
|
+
"required": [
|
|
28604
|
+
"id",
|
|
28605
|
+
"method",
|
|
28606
|
+
"source",
|
|
28607
|
+
"createdAt",
|
|
28608
|
+
"status",
|
|
28609
|
+
"rejectionReason",
|
|
28610
|
+
"chargePointId",
|
|
28611
|
+
"sessionIds"
|
|
28612
|
+
]
|
|
28613
|
+
}
|
|
28614
|
+
}
|
|
28615
|
+
}
|
|
28616
|
+
},
|
|
28617
|
+
"401": {
|
|
28618
|
+
"schema": {
|
|
28619
|
+
"type": "object",
|
|
28620
|
+
"properties": {
|
|
28621
|
+
"message": {
|
|
28622
|
+
"type": "string"
|
|
28623
|
+
}
|
|
28624
|
+
}
|
|
28625
|
+
}
|
|
28626
|
+
},
|
|
28627
|
+
"403": {
|
|
28628
|
+
"schema": {
|
|
28629
|
+
"type": "object",
|
|
28630
|
+
"properties": {
|
|
28631
|
+
"message": {
|
|
28632
|
+
"type": "string",
|
|
28633
|
+
"default": "This action is unauthorized."
|
|
28634
|
+
}
|
|
28635
|
+
}
|
|
28636
|
+
}
|
|
28637
|
+
},
|
|
28638
|
+
"404": {
|
|
28639
|
+
"schema": {
|
|
28640
|
+
"type": "object",
|
|
28641
|
+
"properties": {
|
|
28642
|
+
"message": {
|
|
28643
|
+
"type": "string"
|
|
28644
|
+
}
|
|
28645
|
+
}
|
|
28646
|
+
}
|
|
28647
|
+
},
|
|
28648
|
+
"429": {
|
|
28649
|
+
"schema": {
|
|
28650
|
+
"type": "object",
|
|
28651
|
+
"properties": {
|
|
28652
|
+
"message": {
|
|
28653
|
+
"type": "string"
|
|
28654
|
+
}
|
|
28655
|
+
}
|
|
28656
|
+
}
|
|
28657
|
+
}
|
|
28658
|
+
},
|
|
28659
|
+
"authorizationsListingV2_1": {
|
|
28660
|
+
"200": {
|
|
28661
|
+
"schema": {
|
|
28662
|
+
"type": "object",
|
|
28663
|
+
"properties": {
|
|
28664
|
+
"data": {
|
|
28665
|
+
"type": "array",
|
|
28666
|
+
"items": {
|
|
28667
|
+
"type": "object",
|
|
28668
|
+
"description": "Authorization",
|
|
28669
|
+
"properties": {
|
|
28670
|
+
"id": {
|
|
28671
|
+
"type": "integer"
|
|
28672
|
+
},
|
|
28673
|
+
"operatorId": {
|
|
28674
|
+
"type": "integer",
|
|
28675
|
+
"nullable": true,
|
|
28676
|
+
"description": "The ID of the operator this resource belongs to",
|
|
28677
|
+
"example": 1
|
|
28678
|
+
},
|
|
28679
|
+
"method": {
|
|
28680
|
+
"description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `roaming` - Authorization via roaming platform (OCPI/Hubject)\n- `payment_terminal` - Authorization via payment terminal\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
|
|
28681
|
+
"type": "string",
|
|
28682
|
+
"enum": [
|
|
28683
|
+
"user_device",
|
|
28684
|
+
"id_tag",
|
|
28685
|
+
"mac_address",
|
|
28686
|
+
"admin",
|
|
28687
|
+
"plug_and_charge",
|
|
28688
|
+
"roaming",
|
|
28689
|
+
"payment_terminal",
|
|
28690
|
+
"plug_and_charge_iso15118"
|
|
28691
|
+
]
|
|
28692
|
+
},
|
|
28693
|
+
"source": {
|
|
28694
|
+
"description": "The origin of the authorization request.\n- `local` - Authorization initiated directly on this platform (via mobile app, RFID card, MAC address, admin, or payment terminal)\n- `roaming` - Authorization received from a roaming platform (OCPI/Hubject). When source is roaming, method can only be user_device or id_tag.\n",
|
|
28695
|
+
"type": "string",
|
|
28696
|
+
"enum": [
|
|
28697
|
+
"local",
|
|
28698
|
+
"roaming"
|
|
28699
|
+
]
|
|
28700
|
+
},
|
|
28701
|
+
"createdAt": {
|
|
28702
|
+
"type": "string",
|
|
28703
|
+
"format": "date-time"
|
|
28704
|
+
},
|
|
28705
|
+
"status": {
|
|
28706
|
+
"description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
|
|
28707
|
+
"type": "string",
|
|
28708
|
+
"enum": [
|
|
28709
|
+
"accepted",
|
|
28710
|
+
"rejected",
|
|
28711
|
+
"pending"
|
|
28712
|
+
]
|
|
28713
|
+
},
|
|
28714
|
+
"rejectionReason": {
|
|
28715
|
+
"type": "string",
|
|
28716
|
+
"description": "The reason for rejecting the authorization. Only present when status is rejected."
|
|
28717
|
+
},
|
|
28718
|
+
"userId": {
|
|
28719
|
+
"type": "integer",
|
|
28720
|
+
"description": "The user that is authorized. For anonymous users this value is 0"
|
|
28721
|
+
},
|
|
28722
|
+
"idTagUid": {
|
|
28723
|
+
"type": "string",
|
|
28724
|
+
"description": "The UID of the Id Tag that created the authorization. It could be of an RFID card or MAC address."
|
|
28725
|
+
},
|
|
28726
|
+
"roaming": {
|
|
28727
|
+
"description": "Roaming information for authorizations from external EMSPs.\nPresent only when source is 'roaming'.\n\nNote: The platformRoleId field is conditionally included:\n- Always present for OCPI authorizations\n- May be absent for Hubject authorizations (only included when hubject_platform_role_id is set)\n",
|
|
28728
|
+
"type": "object",
|
|
28729
|
+
"properties": {
|
|
28730
|
+
"platformId": {
|
|
28731
|
+
"description": "The roaming platform ID that gave the authorization",
|
|
28732
|
+
"type": "integer"
|
|
28733
|
+
},
|
|
28734
|
+
"platformRoleId": {
|
|
28735
|
+
"description": "The ID of the roaming operator role (EMSP) that gave the authorization.\n\nConditional presence:\n- OCPI: Always present\n- Hubject: Only present when hubject_platform_role_id is set in the authorization\n",
|
|
28736
|
+
"type": "integer"
|
|
28737
|
+
},
|
|
28738
|
+
"platformRole": {
|
|
28739
|
+
"description": "The role identifier",
|
|
28740
|
+
"type": "string"
|
|
28741
|
+
},
|
|
28742
|
+
"reference": {
|
|
28743
|
+
"description": "OCPI's authorization_reference, or Hubjects SessionID",
|
|
28744
|
+
"type": "string"
|
|
28745
|
+
},
|
|
28746
|
+
"client": {
|
|
28747
|
+
"description": "OCPI's contractId, or Hubjects EVCO ID",
|
|
28748
|
+
"type": "string"
|
|
28749
|
+
},
|
|
28750
|
+
"uid": {
|
|
28751
|
+
"description": "OCPI's token UID, as recorded at the moment the authorization was created. Absent for Hubject\nauthorizations and for authorizations created before the identifiers were recorded.\n",
|
|
28752
|
+
"type": "string"
|
|
28753
|
+
},
|
|
28754
|
+
"visualNumber": {
|
|
28755
|
+
"description": "OCPI's token visual_number, as recorded at the moment the authorization was created. Absent for\nHubject authorizations, for authorizations created before the identifiers were recorded, and when\nthe roaming platform did not provide a visual number.\n",
|
|
28756
|
+
"type": "string"
|
|
28757
|
+
}
|
|
28758
|
+
},
|
|
28759
|
+
"required": [
|
|
28760
|
+
"platformId",
|
|
28761
|
+
"platformRole",
|
|
28762
|
+
"reference",
|
|
28763
|
+
"client"
|
|
28764
|
+
]
|
|
28765
|
+
},
|
|
28766
|
+
"chargePointId": {
|
|
28767
|
+
"type": "integer"
|
|
28768
|
+
},
|
|
28769
|
+
"evseId": {
|
|
28770
|
+
"type": "integer"
|
|
28771
|
+
},
|
|
28772
|
+
"sessionIds": {
|
|
28773
|
+
"type": "array",
|
|
28774
|
+
"items": {
|
|
28775
|
+
"type": "integer"
|
|
28776
|
+
}
|
|
28777
|
+
},
|
|
28778
|
+
"lastUpdatedAt": {
|
|
28779
|
+
"type": "string",
|
|
28780
|
+
"format": "date-time",
|
|
28781
|
+
"description": "ISO 8601 formatted date",
|
|
28782
|
+
"readOnly": true
|
|
28783
|
+
}
|
|
28784
|
+
},
|
|
28785
|
+
"required": [
|
|
28786
|
+
"id",
|
|
28787
|
+
"method",
|
|
28788
|
+
"source",
|
|
28789
|
+
"createdAt",
|
|
28790
|
+
"status",
|
|
28791
|
+
"userId",
|
|
28792
|
+
"idTagUid",
|
|
28793
|
+
"sessionIds",
|
|
28794
|
+
"lastUpdatedAt"
|
|
28795
|
+
]
|
|
28796
|
+
}
|
|
28797
|
+
},
|
|
28798
|
+
"links": {
|
|
28799
|
+
"type": "object",
|
|
28800
|
+
"properties": {
|
|
28801
|
+
"first": {
|
|
28802
|
+
"type": "string",
|
|
28803
|
+
"description": "The URL to fetch the first page",
|
|
28804
|
+
"nullable": true
|
|
28805
|
+
},
|
|
28806
|
+
"last": {
|
|
28807
|
+
"type": "string",
|
|
28808
|
+
"description": "The URL to fetch the last page",
|
|
28809
|
+
"nullable": true
|
|
28810
|
+
},
|
|
28811
|
+
"prev": {
|
|
28812
|
+
"type": "string",
|
|
28813
|
+
"description": "The URL to fetch the previous page",
|
|
28814
|
+
"nullable": true
|
|
28815
|
+
},
|
|
28816
|
+
"next": {
|
|
28817
|
+
"type": "string",
|
|
28818
|
+
"description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
|
|
28819
|
+
"nullable": true
|
|
28820
|
+
}
|
|
28821
|
+
}
|
|
28822
|
+
},
|
|
28823
|
+
"meta": {
|
|
28824
|
+
"anyOf": [
|
|
28825
|
+
{
|
|
28826
|
+
"title": "Basic Pagination (DEPRECATED)",
|
|
28827
|
+
"type": "object",
|
|
28828
|
+
"deprecated": true,
|
|
28829
|
+
"description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
|
|
28830
|
+
"properties": {
|
|
28831
|
+
"current_page": {
|
|
28832
|
+
"type": "integer",
|
|
28833
|
+
"description": "The number of the current page being fetched"
|
|
28834
|
+
},
|
|
28835
|
+
"from": {
|
|
28836
|
+
"type": "integer",
|
|
28837
|
+
"description": "The first of the fetched item's position in the total list",
|
|
28838
|
+
"nullable": true
|
|
28839
|
+
},
|
|
28840
|
+
"last_page": {
|
|
28841
|
+
"type": "integer",
|
|
28842
|
+
"description": "The number of the past page"
|
|
28843
|
+
},
|
|
28844
|
+
"links": {
|
|
28845
|
+
"type": "array",
|
|
28846
|
+
"description": "Array of link objects pointing to the previous/current/next pages",
|
|
28847
|
+
"items": {
|
|
28848
|
+
"type": "object",
|
|
28849
|
+
"properties": {
|
|
28850
|
+
"url": {
|
|
28851
|
+
"type": "string",
|
|
28852
|
+
"nullable": true,
|
|
28853
|
+
"description": "The URL to the previous/current/next page or null if such page does not exist"
|
|
28854
|
+
},
|
|
28855
|
+
"label": {
|
|
28856
|
+
"type": "string",
|
|
28857
|
+
"description": "The name of the page that the links should be pointing to"
|
|
28858
|
+
},
|
|
28859
|
+
"active": {
|
|
28860
|
+
"type": "boolean",
|
|
28861
|
+
"description": "Is the link active, it will be true only when there is an URL"
|
|
28862
|
+
}
|
|
28863
|
+
}
|
|
28864
|
+
}
|
|
28865
|
+
},
|
|
28866
|
+
"path": {
|
|
28867
|
+
"type": "string",
|
|
28868
|
+
"description": "The base route of the endpoint (unpaginated)"
|
|
28869
|
+
},
|
|
28870
|
+
"per_page": {
|
|
28871
|
+
"type": "integer",
|
|
28872
|
+
"description": "The max number of items in each page"
|
|
28873
|
+
},
|
|
28874
|
+
"to": {
|
|
28875
|
+
"type": "integer",
|
|
28876
|
+
"description": "The last of the fetched item's position in the total list",
|
|
28877
|
+
"nullable": true
|
|
28878
|
+
},
|
|
28879
|
+
"total": {
|
|
28880
|
+
"type": "integer",
|
|
28881
|
+
"description": "The total number of items in the list"
|
|
28882
|
+
}
|
|
28883
|
+
}
|
|
28884
|
+
},
|
|
28885
|
+
{
|
|
28886
|
+
"title": "Cursor Pagination",
|
|
28887
|
+
"type": "object",
|
|
28888
|
+
"description": "In case of cursor pagination, the meta object will contain the following properties",
|
|
28889
|
+
"properties": {
|
|
28890
|
+
"path": {
|
|
28891
|
+
"type": "string",
|
|
28892
|
+
"description": "The base route of the endpoint (unpaginated)"
|
|
28893
|
+
},
|
|
28894
|
+
"per_page": {
|
|
28895
|
+
"type": "integer",
|
|
28896
|
+
"description": "The max number of items in each page"
|
|
28897
|
+
},
|
|
28898
|
+
"next_cursor": {
|
|
28899
|
+
"type": "string",
|
|
28900
|
+
"description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
|
|
28901
|
+
"nullable": true
|
|
28902
|
+
},
|
|
28903
|
+
"prev_cursor": {
|
|
28904
|
+
"type": "string",
|
|
28905
|
+
"description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
|
|
28906
|
+
"nullable": true
|
|
28907
|
+
}
|
|
28908
|
+
}
|
|
28909
|
+
}
|
|
28910
|
+
]
|
|
28911
|
+
}
|
|
28912
|
+
}
|
|
28913
|
+
}
|
|
28914
|
+
},
|
|
28915
|
+
"401": {
|
|
28916
|
+
"schema": {
|
|
28917
|
+
"type": "object",
|
|
28918
|
+
"properties": {
|
|
28919
|
+
"message": {
|
|
28920
|
+
"type": "string"
|
|
28921
|
+
}
|
|
28922
|
+
}
|
|
28923
|
+
}
|
|
28924
|
+
},
|
|
28925
|
+
"403": {
|
|
28926
|
+
"schema": {
|
|
28927
|
+
"type": "object",
|
|
28928
|
+
"properties": {
|
|
28929
|
+
"message": {
|
|
28930
|
+
"type": "string",
|
|
28931
|
+
"default": "This action is unauthorized."
|
|
28932
|
+
}
|
|
28933
|
+
}
|
|
28934
|
+
}
|
|
28935
|
+
},
|
|
28936
|
+
"404": {
|
|
28937
|
+
"schema": {
|
|
28938
|
+
"type": "object",
|
|
28939
|
+
"properties": {
|
|
28940
|
+
"message": {
|
|
28941
|
+
"type": "string"
|
|
28942
|
+
}
|
|
28943
|
+
}
|
|
28944
|
+
}
|
|
28945
|
+
},
|
|
28946
|
+
"429": {
|
|
28947
|
+
"schema": {
|
|
28948
|
+
"type": "object",
|
|
28949
|
+
"properties": {
|
|
28950
|
+
"message": {
|
|
28951
|
+
"type": "string"
|
|
28952
|
+
}
|
|
28953
|
+
}
|
|
28954
|
+
}
|
|
28955
|
+
}
|
|
28956
|
+
},
|
|
28957
|
+
"authorizationReadV2_1": {
|
|
28958
|
+
"200": {
|
|
28959
|
+
"schema": {
|
|
28960
|
+
"type": "object",
|
|
28961
|
+
"properties": {
|
|
28962
|
+
"data": {
|
|
28963
|
+
"type": "object",
|
|
28964
|
+
"description": "Authorization",
|
|
28965
|
+
"properties": {
|
|
28966
|
+
"id": {
|
|
28967
|
+
"type": "integer"
|
|
28968
|
+
},
|
|
28969
|
+
"operatorId": {
|
|
28970
|
+
"type": "integer",
|
|
28971
|
+
"nullable": true,
|
|
28972
|
+
"description": "The ID of the operator this resource belongs to",
|
|
28973
|
+
"example": 1
|
|
28974
|
+
},
|
|
28975
|
+
"method": {
|
|
28976
|
+
"description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `roaming` - Authorization via roaming platform (OCPI/Hubject)\n- `payment_terminal` - Authorization via payment terminal\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
|
|
28977
|
+
"type": "string",
|
|
28978
|
+
"enum": [
|
|
28979
|
+
"user_device",
|
|
28980
|
+
"id_tag",
|
|
28981
|
+
"mac_address",
|
|
28982
|
+
"admin",
|
|
28983
|
+
"plug_and_charge",
|
|
28984
|
+
"roaming",
|
|
28985
|
+
"payment_terminal",
|
|
28986
|
+
"plug_and_charge_iso15118"
|
|
28987
|
+
]
|
|
28988
|
+
},
|
|
28989
|
+
"source": {
|
|
28990
|
+
"description": "The origin of the authorization request.\n- `local` - Authorization initiated directly on this platform (via mobile app, RFID card, MAC address, admin, or payment terminal)\n- `roaming` - Authorization received from a roaming platform (OCPI/Hubject). When source is roaming, method can only be user_device or id_tag.\n",
|
|
28991
|
+
"type": "string",
|
|
28992
|
+
"enum": [
|
|
28993
|
+
"local",
|
|
28994
|
+
"roaming"
|
|
28995
|
+
]
|
|
28996
|
+
},
|
|
28997
|
+
"createdAt": {
|
|
28998
|
+
"type": "string",
|
|
28999
|
+
"format": "date-time"
|
|
29000
|
+
},
|
|
29001
|
+
"status": {
|
|
29002
|
+
"description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
|
|
29003
|
+
"type": "string",
|
|
29004
|
+
"enum": [
|
|
29005
|
+
"accepted",
|
|
29006
|
+
"rejected",
|
|
29007
|
+
"pending"
|
|
29008
|
+
]
|
|
29009
|
+
},
|
|
29010
|
+
"rejectionReason": {
|
|
29011
|
+
"type": "string",
|
|
29012
|
+
"description": "The reason for rejecting the authorization. Only present when status is rejected."
|
|
29013
|
+
},
|
|
29014
|
+
"userId": {
|
|
29015
|
+
"type": "integer",
|
|
29016
|
+
"description": "The user that is authorized. For anonymous users this value is 0"
|
|
29017
|
+
},
|
|
29018
|
+
"idTagUid": {
|
|
29019
|
+
"type": "string",
|
|
29020
|
+
"description": "The UID of the Id Tag that created the authorization. It could be of an RFID card or MAC address."
|
|
29021
|
+
},
|
|
29022
|
+
"roaming": {
|
|
29023
|
+
"description": "Roaming information for authorizations from external EMSPs.\nPresent only when source is 'roaming'.\n\nNote: The platformRoleId field is conditionally included:\n- Always present for OCPI authorizations\n- May be absent for Hubject authorizations (only included when hubject_platform_role_id is set)\n",
|
|
29024
|
+
"type": "object",
|
|
29025
|
+
"properties": {
|
|
29026
|
+
"platformId": {
|
|
29027
|
+
"description": "The roaming platform ID that gave the authorization",
|
|
29028
|
+
"type": "integer"
|
|
29029
|
+
},
|
|
29030
|
+
"platformRoleId": {
|
|
29031
|
+
"description": "The ID of the roaming operator role (EMSP) that gave the authorization.\n\nConditional presence:\n- OCPI: Always present\n- Hubject: Only present when hubject_platform_role_id is set in the authorization\n",
|
|
29032
|
+
"type": "integer"
|
|
29033
|
+
},
|
|
29034
|
+
"platformRole": {
|
|
29035
|
+
"description": "The role identifier",
|
|
29036
|
+
"type": "string"
|
|
29037
|
+
},
|
|
29038
|
+
"reference": {
|
|
29039
|
+
"description": "OCPI's authorization_reference, or Hubjects SessionID",
|
|
29040
|
+
"type": "string"
|
|
29041
|
+
},
|
|
29042
|
+
"client": {
|
|
29043
|
+
"description": "OCPI's contractId, or Hubjects EVCO ID",
|
|
29044
|
+
"type": "string"
|
|
29045
|
+
},
|
|
29046
|
+
"uid": {
|
|
29047
|
+
"description": "OCPI's token UID, as recorded at the moment the authorization was created. Absent for Hubject\nauthorizations and for authorizations created before the identifiers were recorded.\n",
|
|
29048
|
+
"type": "string"
|
|
29049
|
+
},
|
|
29050
|
+
"visualNumber": {
|
|
29051
|
+
"description": "OCPI's token visual_number, as recorded at the moment the authorization was created. Absent for\nHubject authorizations, for authorizations created before the identifiers were recorded, and when\nthe roaming platform did not provide a visual number.\n",
|
|
29052
|
+
"type": "string"
|
|
29053
|
+
}
|
|
29054
|
+
},
|
|
29055
|
+
"required": [
|
|
29056
|
+
"platformId",
|
|
29057
|
+
"platformRole",
|
|
29058
|
+
"reference",
|
|
29059
|
+
"client"
|
|
29060
|
+
]
|
|
28273
29061
|
},
|
|
28274
29062
|
"chargePointId": {
|
|
28275
29063
|
"type": "integer"
|
|
@@ -29896,6 +30684,19 @@
|
|
|
29896
30684
|
"description": "Status of booking:\n- **pending**: Booking has been requested and is awaiting an asynchronous decision\n- **accepted**: Booking has been approved and confirmed\n- **rejected**: Booking request has been declined\n- **reserved**: EVSE has been reserved via OCPP ReserveNow command\n- **completed**: User has started a charging session and fulfilled the booking\n- **cancelled**: Booking has been cancelled by user or system\n- **no-show**: User failed to start session within the no-show timeout period\n- **failed**: The booking could not be established - either the EVSE could not be reserved after multiple attempts, or the request could not be decided\n",
|
|
29897
30685
|
"example": "accepted"
|
|
29898
30686
|
},
|
|
30687
|
+
"failureReason": {
|
|
30688
|
+
"readOnly": true,
|
|
30689
|
+
"description": "Recorded cause of a failed booking:\n- **request_not_processed**: The booking request could not be processed.\n- **booking_holds_no_evse**: The booking had no EVSE candidates to reserve.\n- **evse_occupied_or_reserved**: The EVSE was occupied or already reserved.\n- **charge_point_rejected_or_unresponsive**: The charge point rejected the reservation or was unresponsive.\n- **could_not_be_reserved**: The booking could not be reserved without an established more specific cause, including overdue recovery.\n\nIntegrations must tolerate future unknown values as new failure reasons may be added.\n",
|
|
30690
|
+
"type": "string",
|
|
30691
|
+
"enum": [
|
|
30692
|
+
"request_not_processed",
|
|
30693
|
+
"booking_holds_no_evse",
|
|
30694
|
+
"evse_occupied_or_reserved",
|
|
30695
|
+
"charge_point_rejected_or_unresponsive",
|
|
30696
|
+
"could_not_be_reserved"
|
|
30697
|
+
],
|
|
30698
|
+
"example": "evse_occupied_or_reserved"
|
|
30699
|
+
},
|
|
29899
30700
|
"sessionId": {
|
|
29900
30701
|
"type": "integer",
|
|
29901
30702
|
"description": "ID of the charging session that fulfilled the booking"
|
|
@@ -30010,6 +30811,28 @@
|
|
|
30010
30811
|
}
|
|
30011
30812
|
}
|
|
30012
30813
|
},
|
|
30814
|
+
"422": {
|
|
30815
|
+
"schema": {
|
|
30816
|
+
"type": "object",
|
|
30817
|
+
"required": [
|
|
30818
|
+
"message"
|
|
30819
|
+
],
|
|
30820
|
+
"properties": {
|
|
30821
|
+
"message": {
|
|
30822
|
+
"type": "string"
|
|
30823
|
+
},
|
|
30824
|
+
"errors": {
|
|
30825
|
+
"type": "object",
|
|
30826
|
+
"additionalProperties": {
|
|
30827
|
+
"type": "array",
|
|
30828
|
+
"items": {
|
|
30829
|
+
"type": "string"
|
|
30830
|
+
}
|
|
30831
|
+
}
|
|
30832
|
+
}
|
|
30833
|
+
}
|
|
30834
|
+
}
|
|
30835
|
+
},
|
|
30013
30836
|
"429": {
|
|
30014
30837
|
"schema": {
|
|
30015
30838
|
"type": "object",
|
|
@@ -30107,6 +30930,19 @@
|
|
|
30107
30930
|
"description": "Status of booking:\n- **pending**: Booking has been requested and is awaiting an asynchronous decision\n- **accepted**: Booking has been approved and confirmed\n- **rejected**: Booking request has been declined\n- **reserved**: EVSE has been reserved via OCPP ReserveNow command\n- **completed**: User has started a charging session and fulfilled the booking\n- **cancelled**: Booking has been cancelled by user or system\n- **no-show**: User failed to start session within the no-show timeout period\n- **failed**: The booking could not be established - either the EVSE could not be reserved after multiple attempts, or the request could not be decided\n",
|
|
30108
30931
|
"example": "accepted"
|
|
30109
30932
|
},
|
|
30933
|
+
"failureReason": {
|
|
30934
|
+
"readOnly": true,
|
|
30935
|
+
"description": "Recorded cause of a failed booking:\n- **request_not_processed**: The booking request could not be processed.\n- **booking_holds_no_evse**: The booking had no EVSE candidates to reserve.\n- **evse_occupied_or_reserved**: The EVSE was occupied or already reserved.\n- **charge_point_rejected_or_unresponsive**: The charge point rejected the reservation or was unresponsive.\n- **could_not_be_reserved**: The booking could not be reserved without an established more specific cause, including overdue recovery.\n\nIntegrations must tolerate future unknown values as new failure reasons may be added.\n",
|
|
30936
|
+
"type": "string",
|
|
30937
|
+
"enum": [
|
|
30938
|
+
"request_not_processed",
|
|
30939
|
+
"booking_holds_no_evse",
|
|
30940
|
+
"evse_occupied_or_reserved",
|
|
30941
|
+
"charge_point_rejected_or_unresponsive",
|
|
30942
|
+
"could_not_be_reserved"
|
|
30943
|
+
],
|
|
30944
|
+
"example": "evse_occupied_or_reserved"
|
|
30945
|
+
},
|
|
30110
30946
|
"sessionId": {
|
|
30111
30947
|
"type": "integer",
|
|
30112
30948
|
"description": "ID of the charging session that fulfilled the booking"
|
|
@@ -30198,6 +31034,28 @@
|
|
|
30198
31034
|
}
|
|
30199
31035
|
}
|
|
30200
31036
|
},
|
|
31037
|
+
"422": {
|
|
31038
|
+
"schema": {
|
|
31039
|
+
"type": "object",
|
|
31040
|
+
"required": [
|
|
31041
|
+
"message"
|
|
31042
|
+
],
|
|
31043
|
+
"properties": {
|
|
31044
|
+
"message": {
|
|
31045
|
+
"type": "string"
|
|
31046
|
+
},
|
|
31047
|
+
"errors": {
|
|
31048
|
+
"type": "object",
|
|
31049
|
+
"additionalProperties": {
|
|
31050
|
+
"type": "array",
|
|
31051
|
+
"items": {
|
|
31052
|
+
"type": "string"
|
|
31053
|
+
}
|
|
31054
|
+
}
|
|
31055
|
+
}
|
|
31056
|
+
}
|
|
31057
|
+
}
|
|
31058
|
+
},
|
|
30201
31059
|
"429": {
|
|
30202
31060
|
"schema": {
|
|
30203
31061
|
"type": "object",
|
|
@@ -39651,12 +40509,6 @@
|
|
|
39651
40509
|
"powerOptions": {
|
|
39652
40510
|
"type": "object",
|
|
39653
40511
|
"properties": {
|
|
39654
|
-
"maxOutputVoltage": {
|
|
39655
|
-
"type": "integer",
|
|
39656
|
-
"minimum": 1,
|
|
39657
|
-
"maximum": 1000,
|
|
39658
|
-
"description": "Maximum output voltage for DC charging.\n"
|
|
39659
|
-
},
|
|
39660
40512
|
"maxPower": {
|
|
39661
40513
|
"type": "integer",
|
|
39662
40514
|
"description": "Maximum power of the EVSE in W (Watts).",
|
|
@@ -39671,6 +40523,7 @@
|
|
|
39671
40523
|
"380",
|
|
39672
40524
|
"400",
|
|
39673
40525
|
"480",
|
|
40526
|
+
"600",
|
|
39674
40527
|
"120",
|
|
39675
40528
|
"208",
|
|
39676
40529
|
"240",
|
|
@@ -40251,12 +41104,6 @@
|
|
|
40251
41104
|
"powerOptions": {
|
|
40252
41105
|
"type": "object",
|
|
40253
41106
|
"properties": {
|
|
40254
|
-
"maxOutputVoltage": {
|
|
40255
|
-
"type": "integer",
|
|
40256
|
-
"minimum": 1,
|
|
40257
|
-
"maximum": 1000,
|
|
40258
|
-
"description": "Maximum output voltage for DC charging.\n"
|
|
40259
|
-
},
|
|
40260
41107
|
"maxPower": {
|
|
40261
41108
|
"type": "integer",
|
|
40262
41109
|
"description": "Maximum power of the EVSE in W (Watts).",
|
|
@@ -40271,6 +41118,7 @@
|
|
|
40271
41118
|
"380",
|
|
40272
41119
|
"400",
|
|
40273
41120
|
"480",
|
|
41121
|
+
"600",
|
|
40274
41122
|
"120",
|
|
40275
41123
|
"208",
|
|
40276
41124
|
"240",
|
|
@@ -40896,12 +41744,6 @@
|
|
|
40896
41744
|
"powerOptions": {
|
|
40897
41745
|
"type": "object",
|
|
40898
41746
|
"properties": {
|
|
40899
|
-
"maxOutputVoltage": {
|
|
40900
|
-
"type": "integer",
|
|
40901
|
-
"minimum": 1,
|
|
40902
|
-
"maximum": 1000,
|
|
40903
|
-
"description": "Maximum output voltage for DC charging.\n"
|
|
40904
|
-
},
|
|
40905
41747
|
"maxPower": {
|
|
40906
41748
|
"type": "integer",
|
|
40907
41749
|
"description": "Maximum power of the EVSE in W (Watts).",
|
|
@@ -40916,6 +41758,7 @@
|
|
|
40916
41758
|
"380",
|
|
40917
41759
|
"400",
|
|
40918
41760
|
"480",
|
|
41761
|
+
"600",
|
|
40919
41762
|
"120",
|
|
40920
41763
|
"208",
|
|
40921
41764
|
"240",
|
|
@@ -41532,12 +42375,6 @@
|
|
|
41532
42375
|
"powerOptions": {
|
|
41533
42376
|
"type": "object",
|
|
41534
42377
|
"properties": {
|
|
41535
|
-
"maxOutputVoltage": {
|
|
41536
|
-
"type": "integer",
|
|
41537
|
-
"minimum": 1,
|
|
41538
|
-
"maximum": 1000,
|
|
41539
|
-
"description": "Maximum output voltage for DC charging.\n"
|
|
41540
|
-
},
|
|
41541
42378
|
"maxPower": {
|
|
41542
42379
|
"type": "integer",
|
|
41543
42380
|
"description": "Maximum power of the EVSE in W (Watts).",
|
|
@@ -41552,6 +42389,7 @@
|
|
|
41552
42389
|
"380",
|
|
41553
42390
|
"400",
|
|
41554
42391
|
"480",
|
|
42392
|
+
"600",
|
|
41555
42393
|
"120",
|
|
41556
42394
|
"208",
|
|
41557
42395
|
"240",
|
|
@@ -45537,6 +46375,7 @@
|
|
|
45537
46375
|
"380",
|
|
45538
46376
|
"400",
|
|
45539
46377
|
"480",
|
|
46378
|
+
"600",
|
|
45540
46379
|
"120",
|
|
45541
46380
|
"208",
|
|
45542
46381
|
"240",
|
|
@@ -45670,6 +46509,7 @@
|
|
|
45670
46509
|
"380",
|
|
45671
46510
|
"400",
|
|
45672
46511
|
"480",
|
|
46512
|
+
"600",
|
|
45673
46513
|
"120",
|
|
45674
46514
|
"208",
|
|
45675
46515
|
"240",
|
|
@@ -45803,6 +46643,7 @@
|
|
|
45803
46643
|
"380",
|
|
45804
46644
|
"400",
|
|
45805
46645
|
"480",
|
|
46646
|
+
"600",
|
|
45806
46647
|
"120",
|
|
45807
46648
|
"208",
|
|
45808
46649
|
"240",
|
|
@@ -46975,6 +47816,7 @@
|
|
|
46975
47816
|
"380",
|
|
46976
47817
|
"400",
|
|
46977
47818
|
"480",
|
|
47819
|
+
"600",
|
|
46978
47820
|
"120",
|
|
46979
47821
|
"208",
|
|
46980
47822
|
"240",
|
|
@@ -47381,6 +48223,7 @@
|
|
|
47381
48223
|
"380",
|
|
47382
48224
|
"400",
|
|
47383
48225
|
"480",
|
|
48226
|
+
"600",
|
|
47384
48227
|
"120",
|
|
47385
48228
|
"208",
|
|
47386
48229
|
"240",
|
|
@@ -47760,6 +48603,7 @@
|
|
|
47760
48603
|
"380",
|
|
47761
48604
|
"400",
|
|
47762
48605
|
"480",
|
|
48606
|
+
"600",
|
|
47763
48607
|
"120",
|
|
47764
48608
|
"208",
|
|
47765
48609
|
"240",
|
|
@@ -48497,6 +49341,7 @@
|
|
|
48497
49341
|
"380",
|
|
48498
49342
|
"400",
|
|
48499
49343
|
"480",
|
|
49344
|
+
"600",
|
|
48500
49345
|
"120",
|
|
48501
49346
|
"208",
|
|
48502
49347
|
"240",
|
|
@@ -52315,7 +53160,7 @@
|
|
|
52315
53160
|
}
|
|
52316
53161
|
}
|
|
52317
53162
|
},
|
|
52318
|
-
"
|
|
53163
|
+
"cooperatorInsightsListing": {
|
|
52319
53164
|
"200": {
|
|
52320
53165
|
"schema": {
|
|
52321
53166
|
"type": "object",
|
|
@@ -52324,41 +53169,45 @@
|
|
|
52324
53169
|
"type": "array",
|
|
52325
53170
|
"items": {
|
|
52326
53171
|
"type": "object",
|
|
53172
|
+
"description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nA `failed` insight exposes no failure-detail property. Callers should enforce their own polling timeout because stale `pending` insights are not automatically expired.\n",
|
|
53173
|
+
"required": [
|
|
53174
|
+
"id",
|
|
53175
|
+
"state",
|
|
53176
|
+
"createdAt",
|
|
53177
|
+
"updatedAt"
|
|
53178
|
+
],
|
|
52327
53179
|
"properties": {
|
|
52328
53180
|
"id": {
|
|
52329
|
-
"type": "integer"
|
|
52330
|
-
|
|
52331
|
-
"name": {
|
|
52332
|
-
"type": "string"
|
|
53181
|
+
"type": "integer",
|
|
53182
|
+
"readOnly": true
|
|
52333
53183
|
},
|
|
52334
|
-
"
|
|
52335
|
-
"type": "
|
|
53184
|
+
"state": {
|
|
53185
|
+
"type": "string",
|
|
53186
|
+
"description": "Current processing state:\n- `pending` — The analysis is queued or in progress.\n- `completed` — The analysis completed and `content` is available.\n- `failed` — The analysis could not be completed.\n",
|
|
53187
|
+
"enum": [
|
|
53188
|
+
"pending",
|
|
53189
|
+
"completed",
|
|
53190
|
+
"failed"
|
|
53191
|
+
]
|
|
52336
53192
|
},
|
|
52337
|
-
"
|
|
53193
|
+
"createdAt": {
|
|
52338
53194
|
"type": "string",
|
|
52339
|
-
"format": "
|
|
52340
|
-
"
|
|
52341
|
-
"
|
|
53195
|
+
"format": "date-time",
|
|
53196
|
+
"description": "ISO 8601 formatted date",
|
|
53197
|
+
"readOnly": true
|
|
52342
53198
|
},
|
|
52343
|
-
"
|
|
53199
|
+
"updatedAt": {
|
|
52344
53200
|
"type": "string",
|
|
52345
|
-
"format": "
|
|
52346
|
-
"
|
|
52347
|
-
"
|
|
53201
|
+
"format": "date-time",
|
|
53202
|
+
"description": "ISO 8601 formatted date",
|
|
53203
|
+
"readOnly": true
|
|
52348
53204
|
},
|
|
52349
|
-
"
|
|
53205
|
+
"content": {
|
|
52350
53206
|
"type": "string",
|
|
52351
|
-
"
|
|
52352
|
-
"description": "
|
|
53207
|
+
"readOnly": true,
|
|
53208
|
+
"description": "Markdown analysis, present only when the state is `completed`."
|
|
52353
53209
|
}
|
|
52354
|
-
}
|
|
52355
|
-
"required": [
|
|
52356
|
-
"id",
|
|
52357
|
-
"name",
|
|
52358
|
-
"vendorId",
|
|
52359
|
-
"defaultPhoto",
|
|
52360
|
-
"userManual"
|
|
52361
|
-
]
|
|
53210
|
+
}
|
|
52362
53211
|
}
|
|
52363
53212
|
},
|
|
52364
53213
|
"links": {
|
|
@@ -52366,11 +53215,13 @@
|
|
|
52366
53215
|
"properties": {
|
|
52367
53216
|
"first": {
|
|
52368
53217
|
"type": "string",
|
|
52369
|
-
"description": "The URL to fetch the first page"
|
|
53218
|
+
"description": "The URL to fetch the first page",
|
|
53219
|
+
"nullable": true
|
|
52370
53220
|
},
|
|
52371
53221
|
"last": {
|
|
52372
53222
|
"type": "string",
|
|
52373
|
-
"description": "The URL to fetch the last page"
|
|
53223
|
+
"description": "The URL to fetch the last page",
|
|
53224
|
+
"nullable": true
|
|
52374
53225
|
},
|
|
52375
53226
|
"prev": {
|
|
52376
53227
|
"type": "string",
|
|
@@ -52379,53 +53230,14 @@
|
|
|
52379
53230
|
},
|
|
52380
53231
|
"next": {
|
|
52381
53232
|
"type": "string",
|
|
52382
|
-
"description": "The URL to fetch the next page",
|
|
53233
|
+
"description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
|
|
52383
53234
|
"nullable": true
|
|
52384
53235
|
}
|
|
52385
|
-
}
|
|
52386
|
-
"required": [
|
|
52387
|
-
"first",
|
|
52388
|
-
"last"
|
|
52389
|
-
]
|
|
53236
|
+
}
|
|
52390
53237
|
},
|
|
52391
53238
|
"meta": {
|
|
52392
53239
|
"type": "object",
|
|
52393
53240
|
"properties": {
|
|
52394
|
-
"current_page": {
|
|
52395
|
-
"type": "integer",
|
|
52396
|
-
"description": "The number of the current page being fetched"
|
|
52397
|
-
},
|
|
52398
|
-
"from": {
|
|
52399
|
-
"type": "integer",
|
|
52400
|
-
"description": "The first of the fetched item's position in the total list",
|
|
52401
|
-
"nullable": true
|
|
52402
|
-
},
|
|
52403
|
-
"last_page": {
|
|
52404
|
-
"type": "integer",
|
|
52405
|
-
"description": "The number of the past page"
|
|
52406
|
-
},
|
|
52407
|
-
"links": {
|
|
52408
|
-
"type": "array",
|
|
52409
|
-
"description": "Array of link objects pointing to the previous/current/next pages",
|
|
52410
|
-
"items": {
|
|
52411
|
-
"type": "object",
|
|
52412
|
-
"properties": {
|
|
52413
|
-
"url": {
|
|
52414
|
-
"type": "string",
|
|
52415
|
-
"nullable": true,
|
|
52416
|
-
"description": "The URL to the previous/current/next page or null if such page does not exist"
|
|
52417
|
-
},
|
|
52418
|
-
"label": {
|
|
52419
|
-
"type": "string",
|
|
52420
|
-
"description": "The name of the page that the links should be pointing to"
|
|
52421
|
-
},
|
|
52422
|
-
"active": {
|
|
52423
|
-
"type": "boolean",
|
|
52424
|
-
"description": "Is the link active, it will be true only when there is an URL"
|
|
52425
|
-
}
|
|
52426
|
-
}
|
|
52427
|
-
}
|
|
52428
|
-
},
|
|
52429
53241
|
"path": {
|
|
52430
53242
|
"type": "string",
|
|
52431
53243
|
"description": "The base route of the endpoint (unpaginated)"
|
|
@@ -52434,14 +53246,15 @@
|
|
|
52434
53246
|
"type": "integer",
|
|
52435
53247
|
"description": "The max number of items in each page"
|
|
52436
53248
|
},
|
|
52437
|
-
"
|
|
52438
|
-
"type": "
|
|
52439
|
-
"description": "The
|
|
53249
|
+
"next_cursor": {
|
|
53250
|
+
"type": "string",
|
|
53251
|
+
"description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
|
|
52440
53252
|
"nullable": true
|
|
52441
53253
|
},
|
|
52442
|
-
"
|
|
52443
|
-
"type": "
|
|
52444
|
-
"description": "The
|
|
53254
|
+
"prev_cursor": {
|
|
53255
|
+
"type": "string",
|
|
53256
|
+
"description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
|
|
53257
|
+
"nullable": true
|
|
52445
53258
|
}
|
|
52446
53259
|
}
|
|
52447
53260
|
}
|
|
@@ -52468,50 +53281,443 @@
|
|
|
52468
53281
|
}
|
|
52469
53282
|
}
|
|
52470
53283
|
}
|
|
53284
|
+
},
|
|
53285
|
+
"422": {
|
|
53286
|
+
"schema": {
|
|
53287
|
+
"type": "object",
|
|
53288
|
+
"required": [
|
|
53289
|
+
"message"
|
|
53290
|
+
],
|
|
53291
|
+
"properties": {
|
|
53292
|
+
"message": {
|
|
53293
|
+
"type": "string"
|
|
53294
|
+
},
|
|
53295
|
+
"errors": {
|
|
53296
|
+
"type": "object",
|
|
53297
|
+
"additionalProperties": {
|
|
53298
|
+
"type": "array",
|
|
53299
|
+
"items": {
|
|
53300
|
+
"type": "string"
|
|
53301
|
+
}
|
|
53302
|
+
}
|
|
53303
|
+
}
|
|
53304
|
+
}
|
|
53305
|
+
}
|
|
53306
|
+
},
|
|
53307
|
+
"429": {
|
|
53308
|
+
"schema": {
|
|
53309
|
+
"type": "object",
|
|
53310
|
+
"properties": {
|
|
53311
|
+
"message": {
|
|
53312
|
+
"type": "string"
|
|
53313
|
+
}
|
|
53314
|
+
}
|
|
53315
|
+
}
|
|
52471
53316
|
}
|
|
52472
53317
|
},
|
|
52473
|
-
"
|
|
52474
|
-
"
|
|
53318
|
+
"cooperatorInsightCreate": {
|
|
53319
|
+
"202": {
|
|
52475
53320
|
"schema": {
|
|
52476
53321
|
"type": "object",
|
|
52477
53322
|
"properties": {
|
|
52478
53323
|
"data": {
|
|
52479
53324
|
"type": "object",
|
|
53325
|
+
"description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nA `failed` insight exposes no failure-detail property. Callers should enforce their own polling timeout because stale `pending` insights are not automatically expired.\n",
|
|
53326
|
+
"required": [
|
|
53327
|
+
"id",
|
|
53328
|
+
"state",
|
|
53329
|
+
"createdAt",
|
|
53330
|
+
"updatedAt"
|
|
53331
|
+
],
|
|
52480
53332
|
"properties": {
|
|
52481
53333
|
"id": {
|
|
52482
|
-
"type": "integer"
|
|
52483
|
-
|
|
52484
|
-
"name": {
|
|
52485
|
-
"type": "string"
|
|
53334
|
+
"type": "integer",
|
|
53335
|
+
"readOnly": true
|
|
52486
53336
|
},
|
|
52487
|
-
"
|
|
52488
|
-
"type": "
|
|
53337
|
+
"state": {
|
|
53338
|
+
"type": "string",
|
|
53339
|
+
"description": "Current processing state:\n- `pending` — The analysis is queued or in progress.\n- `completed` — The analysis completed and `content` is available.\n- `failed` — The analysis could not be completed.\n",
|
|
53340
|
+
"enum": [
|
|
53341
|
+
"pending",
|
|
53342
|
+
"completed",
|
|
53343
|
+
"failed"
|
|
53344
|
+
]
|
|
52489
53345
|
},
|
|
52490
|
-
"
|
|
53346
|
+
"createdAt": {
|
|
52491
53347
|
"type": "string",
|
|
52492
|
-
"format": "
|
|
52493
|
-
"
|
|
52494
|
-
"
|
|
53348
|
+
"format": "date-time",
|
|
53349
|
+
"description": "ISO 8601 formatted date",
|
|
53350
|
+
"readOnly": true
|
|
52495
53351
|
},
|
|
52496
|
-
"
|
|
53352
|
+
"updatedAt": {
|
|
52497
53353
|
"type": "string",
|
|
52498
|
-
"format": "
|
|
52499
|
-
"
|
|
52500
|
-
"
|
|
53354
|
+
"format": "date-time",
|
|
53355
|
+
"description": "ISO 8601 formatted date",
|
|
53356
|
+
"readOnly": true
|
|
52501
53357
|
},
|
|
52502
|
-
"
|
|
53358
|
+
"content": {
|
|
52503
53359
|
"type": "string",
|
|
52504
|
-
"
|
|
52505
|
-
"description": "
|
|
53360
|
+
"readOnly": true,
|
|
53361
|
+
"description": "Markdown analysis, present only when the state is `completed`."
|
|
52506
53362
|
}
|
|
52507
|
-
}
|
|
52508
|
-
|
|
52509
|
-
|
|
52510
|
-
|
|
52511
|
-
|
|
52512
|
-
|
|
52513
|
-
|
|
52514
|
-
|
|
53363
|
+
}
|
|
53364
|
+
}
|
|
53365
|
+
}
|
|
53366
|
+
}
|
|
53367
|
+
},
|
|
53368
|
+
"401": {
|
|
53369
|
+
"schema": {
|
|
53370
|
+
"type": "object",
|
|
53371
|
+
"properties": {
|
|
53372
|
+
"message": {
|
|
53373
|
+
"type": "string"
|
|
53374
|
+
}
|
|
53375
|
+
}
|
|
53376
|
+
}
|
|
53377
|
+
},
|
|
53378
|
+
"403": {
|
|
53379
|
+
"schema": {
|
|
53380
|
+
"type": "object",
|
|
53381
|
+
"properties": {
|
|
53382
|
+
"message": {
|
|
53383
|
+
"type": "string",
|
|
53384
|
+
"default": "This action is unauthorized."
|
|
53385
|
+
}
|
|
53386
|
+
}
|
|
53387
|
+
}
|
|
53388
|
+
},
|
|
53389
|
+
"409": {
|
|
53390
|
+
"schema": {
|
|
53391
|
+
"type": "object",
|
|
53392
|
+
"properties": {
|
|
53393
|
+
"message": {
|
|
53394
|
+
"type": "string"
|
|
53395
|
+
}
|
|
53396
|
+
}
|
|
53397
|
+
}
|
|
53398
|
+
},
|
|
53399
|
+
"422": {
|
|
53400
|
+
"schema": {
|
|
53401
|
+
"type": "object",
|
|
53402
|
+
"required": [
|
|
53403
|
+
"message"
|
|
53404
|
+
],
|
|
53405
|
+
"properties": {
|
|
53406
|
+
"message": {
|
|
53407
|
+
"type": "string"
|
|
53408
|
+
},
|
|
53409
|
+
"errors": {
|
|
53410
|
+
"type": "object",
|
|
53411
|
+
"additionalProperties": {
|
|
53412
|
+
"type": "array",
|
|
53413
|
+
"items": {
|
|
53414
|
+
"type": "string"
|
|
53415
|
+
}
|
|
53416
|
+
}
|
|
53417
|
+
}
|
|
53418
|
+
}
|
|
53419
|
+
}
|
|
53420
|
+
},
|
|
53421
|
+
"429": {
|
|
53422
|
+
"schema": {
|
|
53423
|
+
"type": "object",
|
|
53424
|
+
"properties": {
|
|
53425
|
+
"message": {
|
|
53426
|
+
"type": "string"
|
|
53427
|
+
}
|
|
53428
|
+
}
|
|
53429
|
+
}
|
|
53430
|
+
}
|
|
53431
|
+
},
|
|
53432
|
+
"cooperatorInsightRead": {
|
|
53433
|
+
"200": {
|
|
53434
|
+
"schema": {
|
|
53435
|
+
"type": "object",
|
|
53436
|
+
"properties": {
|
|
53437
|
+
"data": {
|
|
53438
|
+
"type": "object",
|
|
53439
|
+
"description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nA `failed` insight exposes no failure-detail property. Callers should enforce their own polling timeout because stale `pending` insights are not automatically expired.\n",
|
|
53440
|
+
"required": [
|
|
53441
|
+
"id",
|
|
53442
|
+
"state",
|
|
53443
|
+
"createdAt",
|
|
53444
|
+
"updatedAt"
|
|
53445
|
+
],
|
|
53446
|
+
"properties": {
|
|
53447
|
+
"id": {
|
|
53448
|
+
"type": "integer",
|
|
53449
|
+
"readOnly": true
|
|
53450
|
+
},
|
|
53451
|
+
"state": {
|
|
53452
|
+
"type": "string",
|
|
53453
|
+
"description": "Current processing state:\n- `pending` — The analysis is queued or in progress.\n- `completed` — The analysis completed and `content` is available.\n- `failed` — The analysis could not be completed.\n",
|
|
53454
|
+
"enum": [
|
|
53455
|
+
"pending",
|
|
53456
|
+
"completed",
|
|
53457
|
+
"failed"
|
|
53458
|
+
]
|
|
53459
|
+
},
|
|
53460
|
+
"createdAt": {
|
|
53461
|
+
"type": "string",
|
|
53462
|
+
"format": "date-time",
|
|
53463
|
+
"description": "ISO 8601 formatted date",
|
|
53464
|
+
"readOnly": true
|
|
53465
|
+
},
|
|
53466
|
+
"updatedAt": {
|
|
53467
|
+
"type": "string",
|
|
53468
|
+
"format": "date-time",
|
|
53469
|
+
"description": "ISO 8601 formatted date",
|
|
53470
|
+
"readOnly": true
|
|
53471
|
+
},
|
|
53472
|
+
"content": {
|
|
53473
|
+
"type": "string",
|
|
53474
|
+
"readOnly": true,
|
|
53475
|
+
"description": "Markdown analysis, present only when the state is `completed`."
|
|
53476
|
+
}
|
|
53477
|
+
}
|
|
53478
|
+
}
|
|
53479
|
+
}
|
|
53480
|
+
}
|
|
53481
|
+
},
|
|
53482
|
+
"401": {
|
|
53483
|
+
"schema": {
|
|
53484
|
+
"type": "object",
|
|
53485
|
+
"properties": {
|
|
53486
|
+
"message": {
|
|
53487
|
+
"type": "string"
|
|
53488
|
+
}
|
|
53489
|
+
}
|
|
53490
|
+
}
|
|
53491
|
+
},
|
|
53492
|
+
"403": {
|
|
53493
|
+
"schema": {
|
|
53494
|
+
"type": "object",
|
|
53495
|
+
"properties": {
|
|
53496
|
+
"message": {
|
|
53497
|
+
"type": "string",
|
|
53498
|
+
"default": "This action is unauthorized."
|
|
53499
|
+
}
|
|
53500
|
+
}
|
|
53501
|
+
}
|
|
53502
|
+
},
|
|
53503
|
+
"404": {
|
|
53504
|
+
"schema": {
|
|
53505
|
+
"type": "object",
|
|
53506
|
+
"properties": {
|
|
53507
|
+
"message": {
|
|
53508
|
+
"type": "string"
|
|
53509
|
+
}
|
|
53510
|
+
}
|
|
53511
|
+
}
|
|
53512
|
+
},
|
|
53513
|
+
"429": {
|
|
53514
|
+
"schema": {
|
|
53515
|
+
"type": "object",
|
|
53516
|
+
"properties": {
|
|
53517
|
+
"message": {
|
|
53518
|
+
"type": "string"
|
|
53519
|
+
}
|
|
53520
|
+
}
|
|
53521
|
+
}
|
|
53522
|
+
}
|
|
53523
|
+
},
|
|
53524
|
+
"chargePointModelsListingDeprecated": {
|
|
53525
|
+
"200": {
|
|
53526
|
+
"schema": {
|
|
53527
|
+
"type": "object",
|
|
53528
|
+
"properties": {
|
|
53529
|
+
"data": {
|
|
53530
|
+
"type": "array",
|
|
53531
|
+
"items": {
|
|
53532
|
+
"type": "object",
|
|
53533
|
+
"properties": {
|
|
53534
|
+
"id": {
|
|
53535
|
+
"type": "integer"
|
|
53536
|
+
},
|
|
53537
|
+
"name": {
|
|
53538
|
+
"type": "string"
|
|
53539
|
+
},
|
|
53540
|
+
"vendorId": {
|
|
53541
|
+
"type": "integer"
|
|
53542
|
+
},
|
|
53543
|
+
"defaultPhoto": {
|
|
53544
|
+
"type": "string",
|
|
53545
|
+
"format": "uri",
|
|
53546
|
+
"nullable": true,
|
|
53547
|
+
"description": "For home chargers the default photo for the model is shown in the mobile app. The image URL is available for 24 hours after generated."
|
|
53548
|
+
},
|
|
53549
|
+
"userManual": {
|
|
53550
|
+
"type": "string",
|
|
53551
|
+
"format": "uri",
|
|
53552
|
+
"nullable": true,
|
|
53553
|
+
"description": "A download link for the user manual. Shown in the mobile app for home chargers."
|
|
53554
|
+
},
|
|
53555
|
+
"installerManual": {
|
|
53556
|
+
"type": "string",
|
|
53557
|
+
"format": "uri",
|
|
53558
|
+
"description": "URL to an externally-hosted installer manual. The system stores this URL reference only (does not download or cache the document) and provides it to installers for viewing/downloading through the installer app interface. This field is omitted from the response when no installer manual is configured."
|
|
53559
|
+
}
|
|
53560
|
+
},
|
|
53561
|
+
"required": [
|
|
53562
|
+
"id",
|
|
53563
|
+
"name",
|
|
53564
|
+
"vendorId",
|
|
53565
|
+
"defaultPhoto",
|
|
53566
|
+
"userManual"
|
|
53567
|
+
]
|
|
53568
|
+
}
|
|
53569
|
+
},
|
|
53570
|
+
"links": {
|
|
53571
|
+
"type": "object",
|
|
53572
|
+
"properties": {
|
|
53573
|
+
"first": {
|
|
53574
|
+
"type": "string",
|
|
53575
|
+
"description": "The URL to fetch the first page"
|
|
53576
|
+
},
|
|
53577
|
+
"last": {
|
|
53578
|
+
"type": "string",
|
|
53579
|
+
"description": "The URL to fetch the last page"
|
|
53580
|
+
},
|
|
53581
|
+
"prev": {
|
|
53582
|
+
"type": "string",
|
|
53583
|
+
"description": "The URL to fetch the previous page",
|
|
53584
|
+
"nullable": true
|
|
53585
|
+
},
|
|
53586
|
+
"next": {
|
|
53587
|
+
"type": "string",
|
|
53588
|
+
"description": "The URL to fetch the next page",
|
|
53589
|
+
"nullable": true
|
|
53590
|
+
}
|
|
53591
|
+
},
|
|
53592
|
+
"required": [
|
|
53593
|
+
"first",
|
|
53594
|
+
"last"
|
|
53595
|
+
]
|
|
53596
|
+
},
|
|
53597
|
+
"meta": {
|
|
53598
|
+
"type": "object",
|
|
53599
|
+
"properties": {
|
|
53600
|
+
"current_page": {
|
|
53601
|
+
"type": "integer",
|
|
53602
|
+
"description": "The number of the current page being fetched"
|
|
53603
|
+
},
|
|
53604
|
+
"from": {
|
|
53605
|
+
"type": "integer",
|
|
53606
|
+
"description": "The first of the fetched item's position in the total list",
|
|
53607
|
+
"nullable": true
|
|
53608
|
+
},
|
|
53609
|
+
"last_page": {
|
|
53610
|
+
"type": "integer",
|
|
53611
|
+
"description": "The number of the past page"
|
|
53612
|
+
},
|
|
53613
|
+
"links": {
|
|
53614
|
+
"type": "array",
|
|
53615
|
+
"description": "Array of link objects pointing to the previous/current/next pages",
|
|
53616
|
+
"items": {
|
|
53617
|
+
"type": "object",
|
|
53618
|
+
"properties": {
|
|
53619
|
+
"url": {
|
|
53620
|
+
"type": "string",
|
|
53621
|
+
"nullable": true,
|
|
53622
|
+
"description": "The URL to the previous/current/next page or null if such page does not exist"
|
|
53623
|
+
},
|
|
53624
|
+
"label": {
|
|
53625
|
+
"type": "string",
|
|
53626
|
+
"description": "The name of the page that the links should be pointing to"
|
|
53627
|
+
},
|
|
53628
|
+
"active": {
|
|
53629
|
+
"type": "boolean",
|
|
53630
|
+
"description": "Is the link active, it will be true only when there is an URL"
|
|
53631
|
+
}
|
|
53632
|
+
}
|
|
53633
|
+
}
|
|
53634
|
+
},
|
|
53635
|
+
"path": {
|
|
53636
|
+
"type": "string",
|
|
53637
|
+
"description": "The base route of the endpoint (unpaginated)"
|
|
53638
|
+
},
|
|
53639
|
+
"per_page": {
|
|
53640
|
+
"type": "integer",
|
|
53641
|
+
"description": "The max number of items in each page"
|
|
53642
|
+
},
|
|
53643
|
+
"to": {
|
|
53644
|
+
"type": "integer",
|
|
53645
|
+
"description": "The last of the fetched item's position in the total list",
|
|
53646
|
+
"nullable": true
|
|
53647
|
+
},
|
|
53648
|
+
"total": {
|
|
53649
|
+
"type": "integer",
|
|
53650
|
+
"description": "The total number of items in the list"
|
|
53651
|
+
}
|
|
53652
|
+
}
|
|
53653
|
+
}
|
|
53654
|
+
}
|
|
53655
|
+
}
|
|
53656
|
+
},
|
|
53657
|
+
"401": {
|
|
53658
|
+
"schema": {
|
|
53659
|
+
"type": "object",
|
|
53660
|
+
"properties": {
|
|
53661
|
+
"message": {
|
|
53662
|
+
"type": "string"
|
|
53663
|
+
}
|
|
53664
|
+
}
|
|
53665
|
+
}
|
|
53666
|
+
},
|
|
53667
|
+
"403": {
|
|
53668
|
+
"schema": {
|
|
53669
|
+
"type": "object",
|
|
53670
|
+
"properties": {
|
|
53671
|
+
"message": {
|
|
53672
|
+
"type": "string",
|
|
53673
|
+
"default": "This action is unauthorized."
|
|
53674
|
+
}
|
|
53675
|
+
}
|
|
53676
|
+
}
|
|
53677
|
+
}
|
|
53678
|
+
},
|
|
53679
|
+
"chargePointModelCreateDeprecated": {
|
|
53680
|
+
"201": {
|
|
53681
|
+
"schema": {
|
|
53682
|
+
"type": "object",
|
|
53683
|
+
"properties": {
|
|
53684
|
+
"data": {
|
|
53685
|
+
"type": "object",
|
|
53686
|
+
"properties": {
|
|
53687
|
+
"id": {
|
|
53688
|
+
"type": "integer"
|
|
53689
|
+
},
|
|
53690
|
+
"name": {
|
|
53691
|
+
"type": "string"
|
|
53692
|
+
},
|
|
53693
|
+
"vendorId": {
|
|
53694
|
+
"type": "integer"
|
|
53695
|
+
},
|
|
53696
|
+
"defaultPhoto": {
|
|
53697
|
+
"type": "string",
|
|
53698
|
+
"format": "uri",
|
|
53699
|
+
"nullable": true,
|
|
53700
|
+
"description": "For home chargers the default photo for the model is shown in the mobile app. The image URL is available for 24 hours after generated."
|
|
53701
|
+
},
|
|
53702
|
+
"userManual": {
|
|
53703
|
+
"type": "string",
|
|
53704
|
+
"format": "uri",
|
|
53705
|
+
"nullable": true,
|
|
53706
|
+
"description": "A download link for the user manual. Shown in the mobile app for home chargers."
|
|
53707
|
+
},
|
|
53708
|
+
"installerManual": {
|
|
53709
|
+
"type": "string",
|
|
53710
|
+
"format": "uri",
|
|
53711
|
+
"description": "URL to an externally-hosted installer manual. The system stores this URL reference only (does not download or cache the document) and provides it to installers for viewing/downloading through the installer app interface. This field is omitted from the response when no installer manual is configured."
|
|
53712
|
+
}
|
|
53713
|
+
},
|
|
53714
|
+
"required": [
|
|
53715
|
+
"id",
|
|
53716
|
+
"name",
|
|
53717
|
+
"vendorId",
|
|
53718
|
+
"defaultPhoto",
|
|
53719
|
+
"userManual"
|
|
53720
|
+
]
|
|
52515
53721
|
}
|
|
52516
53722
|
}
|
|
52517
53723
|
}
|
|
@@ -65375,6 +66581,7 @@
|
|
|
65375
66581
|
"380",
|
|
65376
66582
|
"400",
|
|
65377
66583
|
"480",
|
|
66584
|
+
"600",
|
|
65378
66585
|
"120",
|
|
65379
66586
|
"208",
|
|
65380
66587
|
"240",
|
|
@@ -65946,6 +67153,7 @@
|
|
|
65946
67153
|
"380",
|
|
65947
67154
|
"400",
|
|
65948
67155
|
"480",
|
|
67156
|
+
"600",
|
|
65949
67157
|
"120",
|
|
65950
67158
|
"208",
|
|
65951
67159
|
"240",
|
|
@@ -66400,6 +67608,7 @@
|
|
|
66400
67608
|
"380",
|
|
66401
67609
|
"400",
|
|
66402
67610
|
"480",
|
|
67611
|
+
"600",
|
|
66403
67612
|
"120",
|
|
66404
67613
|
"208",
|
|
66405
67614
|
"240",
|
|
@@ -67521,12 +68730,6 @@
|
|
|
67521
68730
|
"powerOptions": {
|
|
67522
68731
|
"type": "object",
|
|
67523
68732
|
"properties": {
|
|
67524
|
-
"maxOutputVoltage": {
|
|
67525
|
-
"type": "integer",
|
|
67526
|
-
"minimum": 1,
|
|
67527
|
-
"maximum": 1000,
|
|
67528
|
-
"description": "Maximum output voltage for DC charging.\n"
|
|
67529
|
-
},
|
|
67530
68733
|
"maxPower": {
|
|
67531
68734
|
"type": "integer",
|
|
67532
68735
|
"description": "Maximum power of the EVSE in W (Watts).",
|
|
@@ -67541,6 +68744,7 @@
|
|
|
67541
68744
|
"380",
|
|
67542
68745
|
"400",
|
|
67543
68746
|
"480",
|
|
68747
|
+
"600",
|
|
67544
68748
|
"120",
|
|
67545
68749
|
"208",
|
|
67546
68750
|
"240",
|
|
@@ -68148,12 +69352,6 @@
|
|
|
68148
69352
|
"powerOptions": {
|
|
68149
69353
|
"type": "object",
|
|
68150
69354
|
"properties": {
|
|
68151
|
-
"maxOutputVoltage": {
|
|
68152
|
-
"type": "integer",
|
|
68153
|
-
"minimum": 1,
|
|
68154
|
-
"maximum": 1000,
|
|
68155
|
-
"description": "Maximum output voltage for DC charging.\n"
|
|
68156
|
-
},
|
|
68157
69355
|
"maxPower": {
|
|
68158
69356
|
"type": "integer",
|
|
68159
69357
|
"description": "Maximum power of the EVSE in W (Watts).",
|
|
@@ -68168,6 +69366,7 @@
|
|
|
68168
69366
|
"380",
|
|
68169
69367
|
"400",
|
|
68170
69368
|
"480",
|
|
69369
|
+
"600",
|
|
68171
69370
|
"120",
|
|
68172
69371
|
"208",
|
|
68173
69372
|
"240",
|
|
@@ -68726,12 +69925,6 @@
|
|
|
68726
69925
|
"powerOptions": {
|
|
68727
69926
|
"type": "object",
|
|
68728
69927
|
"properties": {
|
|
68729
|
-
"maxOutputVoltage": {
|
|
68730
|
-
"type": "integer",
|
|
68731
|
-
"minimum": 1,
|
|
68732
|
-
"maximum": 1000,
|
|
68733
|
-
"description": "Maximum output voltage for DC charging.\n"
|
|
68734
|
-
},
|
|
68735
69928
|
"maxPower": {
|
|
68736
69929
|
"type": "integer",
|
|
68737
69930
|
"description": "Maximum power of the EVSE in W (Watts).",
|
|
@@ -68746,6 +69939,7 @@
|
|
|
68746
69939
|
"380",
|
|
68747
69940
|
"400",
|
|
68748
69941
|
"480",
|
|
69942
|
+
"600",
|
|
68749
69943
|
"120",
|
|
68750
69944
|
"208",
|
|
68751
69945
|
"240",
|
|
@@ -69367,12 +70561,6 @@
|
|
|
69367
70561
|
"powerOptions": {
|
|
69368
70562
|
"type": "object",
|
|
69369
70563
|
"properties": {
|
|
69370
|
-
"maxOutputVoltage": {
|
|
69371
|
-
"type": "integer",
|
|
69372
|
-
"minimum": 1,
|
|
69373
|
-
"maximum": 1000,
|
|
69374
|
-
"description": "Maximum output voltage for DC charging.\n"
|
|
69375
|
-
},
|
|
69376
70564
|
"maxPower": {
|
|
69377
70565
|
"type": "integer",
|
|
69378
70566
|
"description": "Maximum power of the EVSE in W (Watts).",
|
|
@@ -69387,6 +70575,7 @@
|
|
|
69387
70575
|
"380",
|
|
69388
70576
|
"400",
|
|
69389
70577
|
"480",
|
|
70578
|
+
"600",
|
|
69390
70579
|
"120",
|
|
69391
70580
|
"208",
|
|
69392
70581
|
"240",
|
|
@@ -85053,6 +86242,28 @@
|
|
|
85053
86242
|
}
|
|
85054
86243
|
}
|
|
85055
86244
|
},
|
|
86245
|
+
"422": {
|
|
86246
|
+
"schema": {
|
|
86247
|
+
"type": "object",
|
|
86248
|
+
"required": [
|
|
86249
|
+
"message"
|
|
86250
|
+
],
|
|
86251
|
+
"properties": {
|
|
86252
|
+
"message": {
|
|
86253
|
+
"type": "string"
|
|
86254
|
+
},
|
|
86255
|
+
"errors": {
|
|
86256
|
+
"type": "object",
|
|
86257
|
+
"additionalProperties": {
|
|
86258
|
+
"type": "array",
|
|
86259
|
+
"items": {
|
|
86260
|
+
"type": "string"
|
|
86261
|
+
}
|
|
86262
|
+
}
|
|
86263
|
+
}
|
|
86264
|
+
}
|
|
86265
|
+
}
|
|
86266
|
+
},
|
|
85056
86267
|
"429": {
|
|
85057
86268
|
"schema": {
|
|
85058
86269
|
"type": "object",
|
|
@@ -102287,7 +103498,7 @@
|
|
|
102287
103498
|
"description": "The home-charging reimbursement policy attached to the invite. Must reference an active policy that belongs to the partner or has no partner. Omitted from the response when no policy is attached.\n\nWhen the policy resolves the electricity rate from the charge point, it is applied only to the invited user's charge points that have an electricity rate assigned. Charge points without one are skipped and the request still succeeds; assign an electricity rate to those charge points and re-apply the policy to cover them.\n"
|
|
102288
103499
|
},
|
|
102289
103500
|
"restrictions": {
|
|
102290
|
-
"description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (
|
|
103501
|
+
"description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (RFIDs must belong to the invite's partner and must either belong to the invited user or have no owner, and vehicles must belong to the invite's partner), and attached entities left off the list are detached. Listed RFIDs that have no owner are assigned to the invited user, and the invited user is added to the users of listed vehicles they are not yet a user of — when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted.\n",
|
|
102291
103502
|
"type": "object",
|
|
102292
103503
|
"properties": {
|
|
102293
103504
|
"rfids": {
|
|
@@ -102307,7 +103518,7 @@
|
|
|
102307
103518
|
"items": {
|
|
102308
103519
|
"type": "integer"
|
|
102309
103520
|
},
|
|
102310
|
-
"description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. Omitted when type is `none`."
|
|
103521
|
+
"description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invite's partner, and must either belong to the invited user or have no owner. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. A listed RFID with no owner is assigned to the invited user when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted. Omitted when type is `none`."
|
|
102311
103522
|
}
|
|
102312
103523
|
},
|
|
102313
103524
|
"required": [
|
|
@@ -102331,7 +103542,7 @@
|
|
|
102331
103542
|
"items": {
|
|
102332
103543
|
"type": "integer"
|
|
102333
103544
|
},
|
|
102334
|
-
"description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the
|
|
103545
|
+
"description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the invite's partner. Listed vehicles that are not yet attached are attached automatically, and attached vehicles left off the list are detached. The invited user is added to the users of a listed vehicle they are not yet a user of when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted. Omitted when type is `none`."
|
|
102335
103546
|
}
|
|
102336
103547
|
},
|
|
102337
103548
|
"required": [
|
|
@@ -102608,7 +103819,7 @@
|
|
|
102608
103819
|
"description": "The home-charging reimbursement policy attached to the invite. Must reference an active policy that belongs to the partner or has no partner. Omitted from the response when no policy is attached.\n\nWhen the policy resolves the electricity rate from the charge point, it is applied only to the invited user's charge points that have an electricity rate assigned. Charge points without one are skipped and the request still succeeds; assign an electricity rate to those charge points and re-apply the policy to cover them.\n"
|
|
102609
103820
|
},
|
|
102610
103821
|
"restrictions": {
|
|
102611
|
-
"description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (
|
|
103822
|
+
"description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (RFIDs must belong to the invite's partner and must either belong to the invited user or have no owner, and vehicles must belong to the invite's partner), and attached entities left off the list are detached. Listed RFIDs that have no owner are assigned to the invited user, and the invited user is added to the users of listed vehicles they are not yet a user of — when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted.\n",
|
|
102612
103823
|
"type": "object",
|
|
102613
103824
|
"properties": {
|
|
102614
103825
|
"rfids": {
|
|
@@ -102628,7 +103839,7 @@
|
|
|
102628
103839
|
"items": {
|
|
102629
103840
|
"type": "integer"
|
|
102630
103841
|
},
|
|
102631
|
-
"description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. Omitted when type is `none`."
|
|
103842
|
+
"description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invite's partner, and must either belong to the invited user or have no owner. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. A listed RFID with no owner is assigned to the invited user when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted. Omitted when type is `none`."
|
|
102632
103843
|
}
|
|
102633
103844
|
},
|
|
102634
103845
|
"required": [
|
|
@@ -102652,7 +103863,7 @@
|
|
|
102652
103863
|
"items": {
|
|
102653
103864
|
"type": "integer"
|
|
102654
103865
|
},
|
|
102655
|
-
"description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the
|
|
103866
|
+
"description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the invite's partner. Listed vehicles that are not yet attached are attached automatically, and attached vehicles left off the list are detached. The invited user is added to the users of a listed vehicle they are not yet a user of when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted. Omitted when type is `none`."
|
|
102656
103867
|
}
|
|
102657
103868
|
},
|
|
102658
103869
|
"required": [
|
|
@@ -102880,7 +104091,7 @@
|
|
|
102880
104091
|
"description": "The home-charging reimbursement policy attached to the invite. Must reference an active policy that belongs to the partner or has no partner. Omitted from the response when no policy is attached.\n\nWhen the policy resolves the electricity rate from the charge point, it is applied only to the invited user's charge points that have an electricity rate assigned. Charge points without one are skipped and the request still succeeds; assign an electricity rate to those charge points and re-apply the policy to cover them.\n"
|
|
102881
104092
|
},
|
|
102882
104093
|
"restrictions": {
|
|
102883
|
-
"description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (
|
|
104094
|
+
"description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (RFIDs must belong to the invite's partner and must either belong to the invited user or have no owner, and vehicles must belong to the invite's partner), and attached entities left off the list are detached. Listed RFIDs that have no owner are assigned to the invited user, and the invited user is added to the users of listed vehicles they are not yet a user of — when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted.\n",
|
|
102884
104095
|
"type": "object",
|
|
102885
104096
|
"properties": {
|
|
102886
104097
|
"rfids": {
|
|
@@ -102900,7 +104111,7 @@
|
|
|
102900
104111
|
"items": {
|
|
102901
104112
|
"type": "integer"
|
|
102902
104113
|
},
|
|
102903
|
-
"description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. Omitted when type is `none`."
|
|
104114
|
+
"description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invite's partner, and must either belong to the invited user or have no owner. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. A listed RFID with no owner is assigned to the invited user when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted. Omitted when type is `none`."
|
|
102904
104115
|
}
|
|
102905
104116
|
},
|
|
102906
104117
|
"required": [
|
|
@@ -102924,7 +104135,7 @@
|
|
|
102924
104135
|
"items": {
|
|
102925
104136
|
"type": "integer"
|
|
102926
104137
|
},
|
|
102927
|
-
"description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the
|
|
104138
|
+
"description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the invite's partner. Listed vehicles that are not yet attached are attached automatically, and attached vehicles left off the list are detached. The invited user is added to the users of a listed vehicle they are not yet a user of when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted. Omitted when type is `none`."
|
|
102928
104139
|
}
|
|
102929
104140
|
},
|
|
102930
104141
|
"required": [
|
|
@@ -103183,7 +104394,7 @@
|
|
|
103183
104394
|
"description": "The home-charging reimbursement policy attached to the invite. Must reference an active policy that belongs to the partner or has no partner. Omitted from the response when no policy is attached.\n\nWhen the policy resolves the electricity rate from the charge point, it is applied only to the invited user's charge points that have an electricity rate assigned. Charge points without one are skipped and the request still succeeds; assign an electricity rate to those charge points and re-apply the policy to cover them.\n"
|
|
103184
104395
|
},
|
|
103185
104396
|
"restrictions": {
|
|
103186
|
-
"description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (
|
|
104397
|
+
"description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (RFIDs must belong to the invite's partner and must either belong to the invited user or have no owner, and vehicles must belong to the invite's partner), and attached entities left off the list are detached. Listed RFIDs that have no owner are assigned to the invited user, and the invited user is added to the users of listed vehicles they are not yet a user of — when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted.\n",
|
|
103187
104398
|
"type": "object",
|
|
103188
104399
|
"properties": {
|
|
103189
104400
|
"rfids": {
|
|
@@ -103203,7 +104414,7 @@
|
|
|
103203
104414
|
"items": {
|
|
103204
104415
|
"type": "integer"
|
|
103205
104416
|
},
|
|
103206
|
-
"description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. Omitted when type is `none`."
|
|
104417
|
+
"description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invite's partner, and must either belong to the invited user or have no owner. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. A listed RFID with no owner is assigned to the invited user when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted. Omitted when type is `none`."
|
|
103207
104418
|
}
|
|
103208
104419
|
},
|
|
103209
104420
|
"required": [
|
|
@@ -103227,7 +104438,7 @@
|
|
|
103227
104438
|
"items": {
|
|
103228
104439
|
"type": "integer"
|
|
103229
104440
|
},
|
|
103230
|
-
"description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the
|
|
104441
|
+
"description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the invite's partner. Listed vehicles that are not yet attached are attached automatically, and attached vehicles left off the list are detached. The invited user is added to the users of a listed vehicle they are not yet a user of when the invite is accepted if it is still pending, or as part of the write itself when the invite is already accepted. Omitted when type is `none`."
|
|
103231
104442
|
}
|
|
103232
104443
|
},
|
|
103233
104444
|
"required": [
|
|
@@ -105368,10 +106579,11 @@
|
|
|
105368
106579
|
"format": "date-time"
|
|
105369
106580
|
},
|
|
105370
106581
|
"origin": {
|
|
106582
|
+
"description": "The origin type of the revenue record:\n- `session-cpo` - Revenue from a charging session on a partner-owned charge point, based on the partner contract.\n- `electricity-tax-reimbursement` - Tax reimbursement for electricity consumed during charging sessions, configured for monthly or quarterly periods.\n- `home-charging-reimbursement` - A home-charging reimbursement correction credited to the partner.\n- `private-evse-access-fee` - Revenue earned by a charge point owner when other partners are granted access to their private EVSEs.\n",
|
|
105371
106583
|
"type": "string",
|
|
105372
|
-
"description": "The origin type of the revenue record:\n- `session-cpo` - Revenue from a charging session on a partner-owned charge point, based on the partner contract.\n- `electricity-tax-reimbursement` - Tax reimbursement for electricity consumed during charging sessions, configured for monthly or quarterly periods.\n- `private-evse-access-fee` - Revenue earned by a charge point owner when other partners are granted access to their private EVSEs.\n",
|
|
105373
106584
|
"enum": [
|
|
105374
106585
|
"electricity-tax-reimbursement",
|
|
106586
|
+
"home-charging-reimbursement",
|
|
105375
106587
|
"private-evse-access-fee",
|
|
105376
106588
|
"session-cpo"
|
|
105377
106589
|
]
|
|
@@ -105490,6 +106702,11 @@
|
|
|
105490
106702
|
"type": "string",
|
|
105491
106703
|
"format": "date-time",
|
|
105492
106704
|
"description": "The date at which the session amount has been fully collected. Only applicable for records with session-cpo origin"
|
|
106705
|
+
},
|
|
106706
|
+
"customFields": {
|
|
106707
|
+
"description": "Current custom field values applicable to this revenue. Omitted when none apply; applicable fields without values are null.",
|
|
106708
|
+
"type": "object",
|
|
106709
|
+
"additionalProperties": true
|
|
105493
106710
|
}
|
|
105494
106711
|
},
|
|
105495
106712
|
"required": [
|
|
@@ -105556,6 +106773,16 @@
|
|
|
105556
106773
|
}
|
|
105557
106774
|
}
|
|
105558
106775
|
},
|
|
106776
|
+
"400": {
|
|
106777
|
+
"schema": {
|
|
106778
|
+
"type": "object",
|
|
106779
|
+
"properties": {
|
|
106780
|
+
"message": {
|
|
106781
|
+
"type": "string"
|
|
106782
|
+
}
|
|
106783
|
+
}
|
|
106784
|
+
}
|
|
106785
|
+
},
|
|
105559
106786
|
"401": {
|
|
105560
106787
|
"schema": {
|
|
105561
106788
|
"type": "object",
|
|
@@ -105576,6 +106803,28 @@
|
|
|
105576
106803
|
}
|
|
105577
106804
|
}
|
|
105578
106805
|
}
|
|
106806
|
+
},
|
|
106807
|
+
"422": {
|
|
106808
|
+
"schema": {
|
|
106809
|
+
"type": "object",
|
|
106810
|
+
"required": [
|
|
106811
|
+
"message"
|
|
106812
|
+
],
|
|
106813
|
+
"properties": {
|
|
106814
|
+
"message": {
|
|
106815
|
+
"type": "string"
|
|
106816
|
+
},
|
|
106817
|
+
"errors": {
|
|
106818
|
+
"type": "object",
|
|
106819
|
+
"additionalProperties": {
|
|
106820
|
+
"type": "array",
|
|
106821
|
+
"items": {
|
|
106822
|
+
"type": "string"
|
|
106823
|
+
}
|
|
106824
|
+
}
|
|
106825
|
+
}
|
|
106826
|
+
}
|
|
106827
|
+
}
|
|
105579
106828
|
}
|
|
105580
106829
|
},
|
|
105581
106830
|
"partnerSettlementReportsListing": {
|
|
@@ -110403,7 +111652,8 @@
|
|
|
110403
111652
|
},
|
|
110404
111653
|
"discount": {
|
|
110405
111654
|
"type": "number",
|
|
110406
|
-
"format": "decimal"
|
|
111655
|
+
"format": "decimal",
|
|
111656
|
+
"description": "The current discount. An active or scheduled discount change can replace this value when it starts or ends; see the partner's discount changes."
|
|
110407
111657
|
}
|
|
110408
111658
|
}
|
|
110409
111659
|
},
|
|
@@ -111664,7 +112914,8 @@
|
|
|
111664
112914
|
},
|
|
111665
112915
|
"discount": {
|
|
111666
112916
|
"type": "number",
|
|
111667
|
-
"format": "decimal"
|
|
112917
|
+
"format": "decimal",
|
|
112918
|
+
"description": "The current discount. An active or scheduled discount change can replace this value when it starts or ends; see the partner's discount changes."
|
|
111668
112919
|
}
|
|
111669
112920
|
}
|
|
111670
112921
|
},
|
|
@@ -112790,7 +114041,8 @@
|
|
|
112790
114041
|
},
|
|
112791
114042
|
"discount": {
|
|
112792
114043
|
"type": "number",
|
|
112793
|
-
"format": "decimal"
|
|
114044
|
+
"format": "decimal",
|
|
114045
|
+
"description": "The current discount. An active or scheduled discount change can replace this value when it starts or ends; see the partner's discount changes."
|
|
112794
114046
|
}
|
|
112795
114047
|
}
|
|
112796
114048
|
},
|
|
@@ -113979,7 +115231,8 @@
|
|
|
113979
115231
|
},
|
|
113980
115232
|
"discount": {
|
|
113981
115233
|
"type": "number",
|
|
113982
|
-
"format": "decimal"
|
|
115234
|
+
"format": "decimal",
|
|
115235
|
+
"description": "The current discount. An active or scheduled discount change can replace this value when it starts or ends; see the partner's discount changes."
|
|
113983
115236
|
}
|
|
113984
115237
|
}
|
|
113985
115238
|
},
|
|
@@ -114436,150 +115689,1168 @@
|
|
|
114436
115689
|
}
|
|
114437
115690
|
}
|
|
114438
115691
|
},
|
|
114439
|
-
"partnerAdminCreate": {
|
|
114440
|
-
"201": {
|
|
115692
|
+
"partnerAdminCreate": {
|
|
115693
|
+
"201": {
|
|
115694
|
+
"schema": {
|
|
115695
|
+
"type": "object",
|
|
115696
|
+
"properties": {
|
|
115697
|
+
"data": {
|
|
115698
|
+
"type": "object",
|
|
115699
|
+
"properties": {
|
|
115700
|
+
"id": {
|
|
115701
|
+
"type": "integer",
|
|
115702
|
+
"readOnly": true,
|
|
115703
|
+
"description": "Unique identifier of the partner administrator"
|
|
115704
|
+
},
|
|
115705
|
+
"name": {
|
|
115706
|
+
"type": "string",
|
|
115707
|
+
"description": "Name of the administrator"
|
|
115708
|
+
},
|
|
115709
|
+
"email": {
|
|
115710
|
+
"type": "string",
|
|
115711
|
+
"format": "email",
|
|
115712
|
+
"description": "Email address of the administrator"
|
|
115713
|
+
},
|
|
115714
|
+
"adminType": {
|
|
115715
|
+
"type": "string",
|
|
115716
|
+
"enum": [
|
|
115717
|
+
"partner",
|
|
115718
|
+
"partnerSiteManager"
|
|
115719
|
+
],
|
|
115720
|
+
"description": "Type of partner administrator:\n* `partner` - Full partner access, can manage all partner resources\n* `partnerSiteManager` - Location-restricted access, can only manage assigned locations\n"
|
|
115721
|
+
},
|
|
115722
|
+
"roleId": {
|
|
115723
|
+
"type": "integer",
|
|
115724
|
+
"description": "ID of the role assigned to this administrator"
|
|
115725
|
+
},
|
|
115726
|
+
"locale": {
|
|
115727
|
+
"type": "string",
|
|
115728
|
+
"description": "Locale code for the administrator (e.g., \"en\", \"de\"). Omitted from response when not set.",
|
|
115729
|
+
"example": "en"
|
|
115730
|
+
},
|
|
115731
|
+
"whitelistedIps": {
|
|
115732
|
+
"type": "array",
|
|
115733
|
+
"items": {
|
|
115734
|
+
"type": "string"
|
|
115735
|
+
},
|
|
115736
|
+
"description": "List of IP addresses allowed for UI access",
|
|
115737
|
+
"example": [
|
|
115738
|
+
"192.168.1.1",
|
|
115739
|
+
"10.0.0.1"
|
|
115740
|
+
]
|
|
115741
|
+
},
|
|
115742
|
+
"locationIds": {
|
|
115743
|
+
"type": "array",
|
|
115744
|
+
"items": {
|
|
115745
|
+
"type": "integer"
|
|
115746
|
+
},
|
|
115747
|
+
"description": "Location IDs the administrator can manage. Only present for `partnerSiteManager` type; omitted for `partner` type.",
|
|
115748
|
+
"example": [
|
|
115749
|
+
1,
|
|
115750
|
+
2,
|
|
115751
|
+
3
|
|
115752
|
+
]
|
|
115753
|
+
},
|
|
115754
|
+
"createdAt": {
|
|
115755
|
+
"type": "string",
|
|
115756
|
+
"format": "date-time",
|
|
115757
|
+
"readOnly": true,
|
|
115758
|
+
"description": "ISO 8601 timestamp of when the administrator was created"
|
|
115759
|
+
},
|
|
115760
|
+
"updatedAt": {
|
|
115761
|
+
"type": "string",
|
|
115762
|
+
"format": "date-time",
|
|
115763
|
+
"readOnly": true,
|
|
115764
|
+
"description": "ISO 8601 timestamp of when the administrator was last updated"
|
|
115765
|
+
}
|
|
115766
|
+
}
|
|
115767
|
+
}
|
|
115768
|
+
}
|
|
115769
|
+
}
|
|
115770
|
+
},
|
|
115771
|
+
"401": {
|
|
115772
|
+
"schema": {
|
|
115773
|
+
"type": "object",
|
|
115774
|
+
"properties": {
|
|
115775
|
+
"message": {
|
|
115776
|
+
"type": "string"
|
|
115777
|
+
}
|
|
115778
|
+
}
|
|
115779
|
+
}
|
|
115780
|
+
},
|
|
115781
|
+
"403": {
|
|
115782
|
+
"schema": {
|
|
115783
|
+
"type": "object",
|
|
115784
|
+
"properties": {
|
|
115785
|
+
"message": {
|
|
115786
|
+
"type": "string",
|
|
115787
|
+
"default": "This action is unauthorized."
|
|
115788
|
+
}
|
|
115789
|
+
}
|
|
115790
|
+
}
|
|
115791
|
+
},
|
|
115792
|
+
"404": {
|
|
115793
|
+
"schema": {
|
|
115794
|
+
"type": "object",
|
|
115795
|
+
"properties": {
|
|
115796
|
+
"message": {
|
|
115797
|
+
"type": "string"
|
|
115798
|
+
}
|
|
115799
|
+
}
|
|
115800
|
+
}
|
|
115801
|
+
},
|
|
115802
|
+
"422": {
|
|
115803
|
+
"schema": {
|
|
115804
|
+
"type": "object",
|
|
115805
|
+
"required": [
|
|
115806
|
+
"message"
|
|
115807
|
+
],
|
|
115808
|
+
"properties": {
|
|
115809
|
+
"message": {
|
|
115810
|
+
"type": "string"
|
|
115811
|
+
},
|
|
115812
|
+
"errors": {
|
|
115813
|
+
"type": "object",
|
|
115814
|
+
"additionalProperties": {
|
|
115815
|
+
"type": "array",
|
|
115816
|
+
"items": {
|
|
115817
|
+
"type": "string"
|
|
115818
|
+
}
|
|
115819
|
+
}
|
|
115820
|
+
}
|
|
115821
|
+
}
|
|
115822
|
+
}
|
|
115823
|
+
},
|
|
115824
|
+
"429": {
|
|
115825
|
+
"schema": {
|
|
115826
|
+
"type": "object",
|
|
115827
|
+
"properties": {
|
|
115828
|
+
"message": {
|
|
115829
|
+
"type": "string"
|
|
115830
|
+
}
|
|
115831
|
+
}
|
|
115832
|
+
}
|
|
115833
|
+
}
|
|
115834
|
+
},
|
|
115835
|
+
"partnerAdminDelete": {
|
|
115836
|
+
"401": {
|
|
115837
|
+
"schema": {
|
|
115838
|
+
"type": "object",
|
|
115839
|
+
"properties": {
|
|
115840
|
+
"message": {
|
|
115841
|
+
"type": "string"
|
|
115842
|
+
}
|
|
115843
|
+
}
|
|
115844
|
+
}
|
|
115845
|
+
},
|
|
115846
|
+
"403": {
|
|
115847
|
+
"schema": {
|
|
115848
|
+
"type": "object",
|
|
115849
|
+
"properties": {
|
|
115850
|
+
"message": {
|
|
115851
|
+
"type": "string",
|
|
115852
|
+
"default": "This action is unauthorized."
|
|
115853
|
+
}
|
|
115854
|
+
}
|
|
115855
|
+
}
|
|
115856
|
+
},
|
|
115857
|
+
"404": {
|
|
115858
|
+
"schema": {
|
|
115859
|
+
"type": "object",
|
|
115860
|
+
"properties": {
|
|
115861
|
+
"message": {
|
|
115862
|
+
"type": "string"
|
|
115863
|
+
}
|
|
115864
|
+
}
|
|
115865
|
+
}
|
|
115866
|
+
},
|
|
115867
|
+
"429": {
|
|
115868
|
+
"schema": {
|
|
115869
|
+
"type": "object",
|
|
115870
|
+
"properties": {
|
|
115871
|
+
"message": {
|
|
115872
|
+
"type": "string"
|
|
115873
|
+
}
|
|
115874
|
+
}
|
|
115875
|
+
}
|
|
115876
|
+
}
|
|
115877
|
+
},
|
|
115878
|
+
"partnerAdminUpdate": {
|
|
115879
|
+
"200": {
|
|
115880
|
+
"schema": {
|
|
115881
|
+
"type": "object",
|
|
115882
|
+
"properties": {
|
|
115883
|
+
"data": {
|
|
115884
|
+
"type": "object",
|
|
115885
|
+
"properties": {
|
|
115886
|
+
"id": {
|
|
115887
|
+
"type": "integer",
|
|
115888
|
+
"readOnly": true,
|
|
115889
|
+
"description": "Unique identifier of the partner administrator"
|
|
115890
|
+
},
|
|
115891
|
+
"name": {
|
|
115892
|
+
"type": "string",
|
|
115893
|
+
"description": "Name of the administrator"
|
|
115894
|
+
},
|
|
115895
|
+
"email": {
|
|
115896
|
+
"type": "string",
|
|
115897
|
+
"format": "email",
|
|
115898
|
+
"description": "Email address of the administrator"
|
|
115899
|
+
},
|
|
115900
|
+
"adminType": {
|
|
115901
|
+
"type": "string",
|
|
115902
|
+
"enum": [
|
|
115903
|
+
"partner",
|
|
115904
|
+
"partnerSiteManager"
|
|
115905
|
+
],
|
|
115906
|
+
"description": "Type of partner administrator:\n* `partner` - Full partner access, can manage all partner resources\n* `partnerSiteManager` - Location-restricted access, can only manage assigned locations\n"
|
|
115907
|
+
},
|
|
115908
|
+
"roleId": {
|
|
115909
|
+
"type": "integer",
|
|
115910
|
+
"description": "ID of the role assigned to this administrator"
|
|
115911
|
+
},
|
|
115912
|
+
"locale": {
|
|
115913
|
+
"type": "string",
|
|
115914
|
+
"description": "Locale code for the administrator (e.g., \"en\", \"de\"). Omitted from response when not set.",
|
|
115915
|
+
"example": "en"
|
|
115916
|
+
},
|
|
115917
|
+
"whitelistedIps": {
|
|
115918
|
+
"type": "array",
|
|
115919
|
+
"items": {
|
|
115920
|
+
"type": "string"
|
|
115921
|
+
},
|
|
115922
|
+
"description": "List of IP addresses allowed for UI access",
|
|
115923
|
+
"example": [
|
|
115924
|
+
"192.168.1.1",
|
|
115925
|
+
"10.0.0.1"
|
|
115926
|
+
]
|
|
115927
|
+
},
|
|
115928
|
+
"locationIds": {
|
|
115929
|
+
"type": "array",
|
|
115930
|
+
"items": {
|
|
115931
|
+
"type": "integer"
|
|
115932
|
+
},
|
|
115933
|
+
"description": "Location IDs the administrator can manage. Only present for `partnerSiteManager` type; omitted for `partner` type.",
|
|
115934
|
+
"example": [
|
|
115935
|
+
1,
|
|
115936
|
+
2,
|
|
115937
|
+
3
|
|
115938
|
+
]
|
|
115939
|
+
},
|
|
115940
|
+
"createdAt": {
|
|
115941
|
+
"type": "string",
|
|
115942
|
+
"format": "date-time",
|
|
115943
|
+
"readOnly": true,
|
|
115944
|
+
"description": "ISO 8601 timestamp of when the administrator was created"
|
|
115945
|
+
},
|
|
115946
|
+
"updatedAt": {
|
|
115947
|
+
"type": "string",
|
|
115948
|
+
"format": "date-time",
|
|
115949
|
+
"readOnly": true,
|
|
115950
|
+
"description": "ISO 8601 timestamp of when the administrator was last updated"
|
|
115951
|
+
}
|
|
115952
|
+
}
|
|
115953
|
+
}
|
|
115954
|
+
}
|
|
115955
|
+
}
|
|
115956
|
+
},
|
|
115957
|
+
"401": {
|
|
115958
|
+
"schema": {
|
|
115959
|
+
"type": "object",
|
|
115960
|
+
"properties": {
|
|
115961
|
+
"message": {
|
|
115962
|
+
"type": "string"
|
|
115963
|
+
}
|
|
115964
|
+
}
|
|
115965
|
+
}
|
|
115966
|
+
},
|
|
115967
|
+
"403": {
|
|
115968
|
+
"schema": {
|
|
115969
|
+
"type": "object",
|
|
115970
|
+
"properties": {
|
|
115971
|
+
"message": {
|
|
115972
|
+
"type": "string",
|
|
115973
|
+
"default": "This action is unauthorized."
|
|
115974
|
+
}
|
|
115975
|
+
}
|
|
115976
|
+
}
|
|
115977
|
+
},
|
|
115978
|
+
"404": {
|
|
115979
|
+
"schema": {
|
|
115980
|
+
"type": "object",
|
|
115981
|
+
"properties": {
|
|
115982
|
+
"message": {
|
|
115983
|
+
"type": "string"
|
|
115984
|
+
}
|
|
115985
|
+
}
|
|
115986
|
+
}
|
|
115987
|
+
},
|
|
115988
|
+
"422": {
|
|
115989
|
+
"schema": {
|
|
115990
|
+
"type": "object",
|
|
115991
|
+
"required": [
|
|
115992
|
+
"message"
|
|
115993
|
+
],
|
|
115994
|
+
"properties": {
|
|
115995
|
+
"message": {
|
|
115996
|
+
"type": "string"
|
|
115997
|
+
},
|
|
115998
|
+
"errors": {
|
|
115999
|
+
"type": "object",
|
|
116000
|
+
"additionalProperties": {
|
|
116001
|
+
"type": "array",
|
|
116002
|
+
"items": {
|
|
116003
|
+
"type": "string"
|
|
116004
|
+
}
|
|
116005
|
+
}
|
|
116006
|
+
}
|
|
116007
|
+
}
|
|
116008
|
+
}
|
|
116009
|
+
},
|
|
116010
|
+
"429": {
|
|
116011
|
+
"schema": {
|
|
116012
|
+
"type": "object",
|
|
116013
|
+
"properties": {
|
|
116014
|
+
"message": {
|
|
116015
|
+
"type": "string"
|
|
116016
|
+
}
|
|
116017
|
+
}
|
|
116018
|
+
}
|
|
116019
|
+
}
|
|
116020
|
+
},
|
|
116021
|
+
"partnerDiscountChangesListing": {
|
|
116022
|
+
"200": {
|
|
116023
|
+
"schema": {
|
|
116024
|
+
"type": "object",
|
|
116025
|
+
"required": [
|
|
116026
|
+
"data",
|
|
116027
|
+
"links",
|
|
116028
|
+
"meta"
|
|
116029
|
+
],
|
|
116030
|
+
"properties": {
|
|
116031
|
+
"data": {
|
|
116032
|
+
"type": "array",
|
|
116033
|
+
"items": {
|
|
116034
|
+
"type": "object",
|
|
116035
|
+
"required": [
|
|
116036
|
+
"id",
|
|
116037
|
+
"partnerId",
|
|
116038
|
+
"status",
|
|
116039
|
+
"discount",
|
|
116040
|
+
"startsAt",
|
|
116041
|
+
"createdAt",
|
|
116042
|
+
"updatedAt"
|
|
116043
|
+
],
|
|
116044
|
+
"description": "Discount schedule history. All response timestamps use UTC. Absent optional values are omitted, not returned as null. Automatic changes expose lastChangeReason instead of lastChangedByAdminId. The whole failure object is omitted for historical failed rows with incomplete required failure metadata.",
|
|
116045
|
+
"properties": {
|
|
116046
|
+
"discount": {
|
|
116047
|
+
"type": "number",
|
|
116048
|
+
"minimum": 0,
|
|
116049
|
+
"maximum": 100,
|
|
116050
|
+
"description": "Discount percentage, with at most two decimal places. Must be a JSON number, not a string.",
|
|
116051
|
+
"example": 12.5
|
|
116052
|
+
},
|
|
116053
|
+
"startsAt": {
|
|
116054
|
+
"type": "string",
|
|
116055
|
+
"format": "date-time",
|
|
116056
|
+
"description": "Start timestamp. Requests must use a valid ISO 8601 timestamp with an explicit timezone or offset and minute precision (zero seconds and zero fractional seconds). Values are converted to UTC; responses use UTC.",
|
|
116057
|
+
"example": "2027-01-01T00:00:00Z"
|
|
116058
|
+
},
|
|
116059
|
+
"endsAt": {
|
|
116060
|
+
"type": "string",
|
|
116061
|
+
"format": "date-time",
|
|
116062
|
+
"description": "End timestamp for a limited change. Requests require an explicit timezone or offset and minute precision (zero seconds and zero fractional seconds). Responses use UTC and may include seconds when ended early. Omitted for permanent changes.",
|
|
116063
|
+
"example": "2027-02-01T00:00:00Z"
|
|
116064
|
+
},
|
|
116065
|
+
"revertDiscount": {
|
|
116066
|
+
"type": "number",
|
|
116067
|
+
"minimum": 0,
|
|
116068
|
+
"maximum": 100,
|
|
116069
|
+
"description": "Discount percentage to apply when the limited change ends, with at most two decimal places. Must be a JSON number, not a string. Required when creating a limited change; omitted for permanent changes. May be omitted in incomplete historical records.",
|
|
116070
|
+
"example": 0
|
|
116071
|
+
},
|
|
116072
|
+
"note": {
|
|
116073
|
+
"type": "string",
|
|
116074
|
+
"maxLength": 16000,
|
|
116075
|
+
"description": "Optional note. Omitted in responses when empty."
|
|
116076
|
+
},
|
|
116077
|
+
"id": {
|
|
116078
|
+
"type": "integer",
|
|
116079
|
+
"description": "Discount change ID."
|
|
116080
|
+
},
|
|
116081
|
+
"partnerId": {
|
|
116082
|
+
"type": "integer",
|
|
116083
|
+
"description": "Partner ID."
|
|
116084
|
+
},
|
|
116085
|
+
"status": {
|
|
116086
|
+
"type": "string",
|
|
116087
|
+
"enum": [
|
|
116088
|
+
"scheduled",
|
|
116089
|
+
"active",
|
|
116090
|
+
"completed",
|
|
116091
|
+
"cancelled",
|
|
116092
|
+
"failed"
|
|
116093
|
+
],
|
|
116094
|
+
"description": "Discount change lifecycle state:\n* `scheduled` — Waiting for its start boundary.\n* `active` — The limited change has started and awaits its end.\n* `completed` — The change has finished, or its permanent rate has been applied.\n* `cancelled` — The change was cancelled without applying its future boundary.\n* `failed` — Applying a scheduled discount boundary failed.\n"
|
|
116095
|
+
},
|
|
116096
|
+
"createdByAdminId": {
|
|
116097
|
+
"type": "integer",
|
|
116098
|
+
"description": "Recorded creator administrator ID, including soft-deleted administrators. Omitted when unavailable."
|
|
116099
|
+
},
|
|
116100
|
+
"lastChangedByAdminId": {
|
|
116101
|
+
"type": "integer",
|
|
116102
|
+
"description": "Recorded administrator ID for the last manual change. Omitted for automatic changes or when unavailable."
|
|
116103
|
+
},
|
|
116104
|
+
"lastChangeReason": {
|
|
116105
|
+
"type": "string",
|
|
116106
|
+
"enum": [
|
|
116107
|
+
"permanent_change_applied",
|
|
116108
|
+
"scheduled_start_applied",
|
|
116109
|
+
"expired_period_skipped",
|
|
116110
|
+
"scheduled_end_applied",
|
|
116111
|
+
"billing_disabled",
|
|
116112
|
+
"partner_deleted",
|
|
116113
|
+
"application_failed"
|
|
116114
|
+
],
|
|
116115
|
+
"description": "Reason for the last automatic change. Omitted for manual changes or when unavailable.\n* `permanent_change_applied` — A permanent discount was applied.\n* `scheduled_start_applied` — A limited change's start discount was applied.\n* `expired_period_skipped` — An already expired period was skipped.\n* `scheduled_end_applied` — A limited change's revert discount was applied.\n* `billing_disabled` — Corporate billing was disabled.\n* `partner_deleted` — The partner was deleted.\n* `application_failed` — A discount boundary could not be applied.\n"
|
|
116116
|
+
},
|
|
116117
|
+
"failure": {
|
|
116118
|
+
"type": "object",
|
|
116119
|
+
"required": [
|
|
116120
|
+
"boundary",
|
|
116121
|
+
"failedAt",
|
|
116122
|
+
"dueAt",
|
|
116123
|
+
"expectedDiscount"
|
|
116124
|
+
],
|
|
116125
|
+
"properties": {
|
|
116126
|
+
"boundary": {
|
|
116127
|
+
"type": "string",
|
|
116128
|
+
"enum": [
|
|
116129
|
+
"start",
|
|
116130
|
+
"end"
|
|
116131
|
+
],
|
|
116132
|
+
"description": "Schedule boundary that failed:\n* `start` — Applying the change's discount at its start.\n* `end` — Applying the revert discount at its end.\n"
|
|
116133
|
+
},
|
|
116134
|
+
"failedAt": {
|
|
116135
|
+
"type": "string",
|
|
116136
|
+
"format": "date-time",
|
|
116137
|
+
"description": "UTC timestamp when applying the discount failed; not restricted to minute precision."
|
|
116138
|
+
},
|
|
116139
|
+
"dueAt": {
|
|
116140
|
+
"type": "string",
|
|
116141
|
+
"format": "date-time",
|
|
116142
|
+
"description": "UTC timestamp of the schedule boundary whose discount could not be applied."
|
|
116143
|
+
},
|
|
116144
|
+
"expectedDiscount": {
|
|
116145
|
+
"type": "number",
|
|
116146
|
+
"minimum": 0,
|
|
116147
|
+
"maximum": 100,
|
|
116148
|
+
"description": "Discount percentage that should have been applied, with at most two decimal places."
|
|
116149
|
+
},
|
|
116150
|
+
"resolvedAt": {
|
|
116151
|
+
"type": "string",
|
|
116152
|
+
"format": "date-time",
|
|
116153
|
+
"description": "UTC timestamp when a successful manual discount change resolved the failure warning. Omitted while unresolved."
|
|
116154
|
+
}
|
|
116155
|
+
},
|
|
116156
|
+
"description": "Recorded failure metadata. Omitted as a whole when required metadata is incomplete in historical records; no missing dates or percentages are reconstructed."
|
|
116157
|
+
},
|
|
116158
|
+
"createdAt": {
|
|
116159
|
+
"type": "string",
|
|
116160
|
+
"format": "date-time",
|
|
116161
|
+
"description": "ISO 8601 formatted date",
|
|
116162
|
+
"readOnly": true
|
|
116163
|
+
},
|
|
116164
|
+
"updatedAt": {
|
|
116165
|
+
"type": "string",
|
|
116166
|
+
"format": "date-time",
|
|
116167
|
+
"description": "ISO 8601 formatted date",
|
|
116168
|
+
"readOnly": true
|
|
116169
|
+
}
|
|
116170
|
+
}
|
|
116171
|
+
}
|
|
116172
|
+
},
|
|
116173
|
+
"links": {
|
|
116174
|
+
"type": "object",
|
|
116175
|
+
"properties": {
|
|
116176
|
+
"first": {
|
|
116177
|
+
"type": "string",
|
|
116178
|
+
"description": "The URL to fetch the first page",
|
|
116179
|
+
"nullable": true
|
|
116180
|
+
},
|
|
116181
|
+
"last": {
|
|
116182
|
+
"type": "string",
|
|
116183
|
+
"description": "The URL to fetch the last page",
|
|
116184
|
+
"nullable": true
|
|
116185
|
+
},
|
|
116186
|
+
"prev": {
|
|
116187
|
+
"type": "string",
|
|
116188
|
+
"description": "The URL to fetch the previous page",
|
|
116189
|
+
"nullable": true
|
|
116190
|
+
},
|
|
116191
|
+
"next": {
|
|
116192
|
+
"type": "string",
|
|
116193
|
+
"description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
|
|
116194
|
+
"nullable": true
|
|
116195
|
+
}
|
|
116196
|
+
}
|
|
116197
|
+
},
|
|
116198
|
+
"meta": {
|
|
116199
|
+
"type": "object",
|
|
116200
|
+
"properties": {
|
|
116201
|
+
"path": {
|
|
116202
|
+
"type": "string",
|
|
116203
|
+
"description": "The base route of the endpoint (unpaginated)"
|
|
116204
|
+
},
|
|
116205
|
+
"per_page": {
|
|
116206
|
+
"type": "integer",
|
|
116207
|
+
"description": "The max number of items in each page"
|
|
116208
|
+
},
|
|
116209
|
+
"next_cursor": {
|
|
116210
|
+
"type": "string",
|
|
116211
|
+
"description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
|
|
116212
|
+
"nullable": true
|
|
116213
|
+
},
|
|
116214
|
+
"prev_cursor": {
|
|
116215
|
+
"type": "string",
|
|
116216
|
+
"description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
|
|
116217
|
+
"nullable": true
|
|
116218
|
+
}
|
|
116219
|
+
}
|
|
116220
|
+
}
|
|
116221
|
+
}
|
|
116222
|
+
}
|
|
116223
|
+
},
|
|
116224
|
+
"401": {
|
|
116225
|
+
"schema": {
|
|
116226
|
+
"type": "object",
|
|
116227
|
+
"properties": {
|
|
116228
|
+
"message": {
|
|
116229
|
+
"type": "string"
|
|
116230
|
+
}
|
|
116231
|
+
}
|
|
116232
|
+
}
|
|
116233
|
+
},
|
|
116234
|
+
"403": {
|
|
116235
|
+
"schema": {
|
|
116236
|
+
"type": "object",
|
|
116237
|
+
"properties": {
|
|
116238
|
+
"message": {
|
|
116239
|
+
"type": "string",
|
|
116240
|
+
"default": "This action is unauthorized."
|
|
116241
|
+
}
|
|
116242
|
+
}
|
|
116243
|
+
}
|
|
116244
|
+
},
|
|
116245
|
+
"404": {
|
|
116246
|
+
"schema": {
|
|
116247
|
+
"type": "object",
|
|
116248
|
+
"properties": {
|
|
116249
|
+
"message": {
|
|
116250
|
+
"type": "string"
|
|
116251
|
+
}
|
|
116252
|
+
}
|
|
116253
|
+
}
|
|
116254
|
+
},
|
|
116255
|
+
"422": {
|
|
116256
|
+
"schema": {
|
|
116257
|
+
"type": "object",
|
|
116258
|
+
"required": [
|
|
116259
|
+
"message"
|
|
116260
|
+
],
|
|
116261
|
+
"properties": {
|
|
116262
|
+
"message": {
|
|
116263
|
+
"type": "string"
|
|
116264
|
+
},
|
|
116265
|
+
"errors": {
|
|
116266
|
+
"type": "object",
|
|
116267
|
+
"additionalProperties": {
|
|
116268
|
+
"type": "array",
|
|
116269
|
+
"items": {
|
|
116270
|
+
"type": "string"
|
|
116271
|
+
}
|
|
116272
|
+
}
|
|
116273
|
+
}
|
|
116274
|
+
}
|
|
116275
|
+
}
|
|
116276
|
+
},
|
|
116277
|
+
"429": {
|
|
116278
|
+
"schema": {
|
|
116279
|
+
"type": "object",
|
|
116280
|
+
"properties": {
|
|
116281
|
+
"message": {
|
|
116282
|
+
"type": "string"
|
|
116283
|
+
}
|
|
116284
|
+
}
|
|
116285
|
+
}
|
|
116286
|
+
}
|
|
116287
|
+
},
|
|
116288
|
+
"partnerDiscountChangeCreate": {
|
|
116289
|
+
"201": {
|
|
116290
|
+
"schema": {
|
|
116291
|
+
"type": "object",
|
|
116292
|
+
"required": [
|
|
116293
|
+
"data"
|
|
116294
|
+
],
|
|
116295
|
+
"properties": {
|
|
116296
|
+
"data": {
|
|
116297
|
+
"type": "object",
|
|
116298
|
+
"required": [
|
|
116299
|
+
"id",
|
|
116300
|
+
"partnerId",
|
|
116301
|
+
"status",
|
|
116302
|
+
"discount",
|
|
116303
|
+
"startsAt",
|
|
116304
|
+
"createdAt",
|
|
116305
|
+
"updatedAt"
|
|
116306
|
+
],
|
|
116307
|
+
"description": "Discount schedule history. All response timestamps use UTC. Absent optional values are omitted, not returned as null. Automatic changes expose lastChangeReason instead of lastChangedByAdminId. The whole failure object is omitted for historical failed rows with incomplete required failure metadata.",
|
|
116308
|
+
"properties": {
|
|
116309
|
+
"discount": {
|
|
116310
|
+
"type": "number",
|
|
116311
|
+
"minimum": 0,
|
|
116312
|
+
"maximum": 100,
|
|
116313
|
+
"description": "Discount percentage, with at most two decimal places. Must be a JSON number, not a string.",
|
|
116314
|
+
"example": 12.5
|
|
116315
|
+
},
|
|
116316
|
+
"startsAt": {
|
|
116317
|
+
"type": "string",
|
|
116318
|
+
"format": "date-time",
|
|
116319
|
+
"description": "Start timestamp. Requests must use a valid ISO 8601 timestamp with an explicit timezone or offset and minute precision (zero seconds and zero fractional seconds). Values are converted to UTC; responses use UTC.",
|
|
116320
|
+
"example": "2027-01-01T00:00:00Z"
|
|
116321
|
+
},
|
|
116322
|
+
"endsAt": {
|
|
116323
|
+
"type": "string",
|
|
116324
|
+
"format": "date-time",
|
|
116325
|
+
"description": "End timestamp for a limited change. Requests require an explicit timezone or offset and minute precision (zero seconds and zero fractional seconds). Responses use UTC and may include seconds when ended early. Omitted for permanent changes.",
|
|
116326
|
+
"example": "2027-02-01T00:00:00Z"
|
|
116327
|
+
},
|
|
116328
|
+
"revertDiscount": {
|
|
116329
|
+
"type": "number",
|
|
116330
|
+
"minimum": 0,
|
|
116331
|
+
"maximum": 100,
|
|
116332
|
+
"description": "Discount percentage to apply when the limited change ends, with at most two decimal places. Must be a JSON number, not a string. Required when creating a limited change; omitted for permanent changes. May be omitted in incomplete historical records.",
|
|
116333
|
+
"example": 0
|
|
116334
|
+
},
|
|
116335
|
+
"note": {
|
|
116336
|
+
"type": "string",
|
|
116337
|
+
"maxLength": 16000,
|
|
116338
|
+
"description": "Optional note. Omitted in responses when empty."
|
|
116339
|
+
},
|
|
116340
|
+
"id": {
|
|
116341
|
+
"type": "integer",
|
|
116342
|
+
"description": "Discount change ID."
|
|
116343
|
+
},
|
|
116344
|
+
"partnerId": {
|
|
116345
|
+
"type": "integer",
|
|
116346
|
+
"description": "Partner ID."
|
|
116347
|
+
},
|
|
116348
|
+
"status": {
|
|
116349
|
+
"type": "string",
|
|
116350
|
+
"enum": [
|
|
116351
|
+
"scheduled",
|
|
116352
|
+
"active",
|
|
116353
|
+
"completed",
|
|
116354
|
+
"cancelled",
|
|
116355
|
+
"failed"
|
|
116356
|
+
],
|
|
116357
|
+
"description": "Discount change lifecycle state:\n* `scheduled` — Waiting for its start boundary.\n* `active` — The limited change has started and awaits its end.\n* `completed` — The change has finished, or its permanent rate has been applied.\n* `cancelled` — The change was cancelled without applying its future boundary.\n* `failed` — Applying a scheduled discount boundary failed.\n"
|
|
116358
|
+
},
|
|
116359
|
+
"createdByAdminId": {
|
|
116360
|
+
"type": "integer",
|
|
116361
|
+
"description": "Recorded creator administrator ID, including soft-deleted administrators. Omitted when unavailable."
|
|
116362
|
+
},
|
|
116363
|
+
"lastChangedByAdminId": {
|
|
116364
|
+
"type": "integer",
|
|
116365
|
+
"description": "Recorded administrator ID for the last manual change. Omitted for automatic changes or when unavailable."
|
|
116366
|
+
},
|
|
116367
|
+
"lastChangeReason": {
|
|
116368
|
+
"type": "string",
|
|
116369
|
+
"enum": [
|
|
116370
|
+
"permanent_change_applied",
|
|
116371
|
+
"scheduled_start_applied",
|
|
116372
|
+
"expired_period_skipped",
|
|
116373
|
+
"scheduled_end_applied",
|
|
116374
|
+
"billing_disabled",
|
|
116375
|
+
"partner_deleted",
|
|
116376
|
+
"application_failed"
|
|
116377
|
+
],
|
|
116378
|
+
"description": "Reason for the last automatic change. Omitted for manual changes or when unavailable.\n* `permanent_change_applied` — A permanent discount was applied.\n* `scheduled_start_applied` — A limited change's start discount was applied.\n* `expired_period_skipped` — An already expired period was skipped.\n* `scheduled_end_applied` — A limited change's revert discount was applied.\n* `billing_disabled` — Corporate billing was disabled.\n* `partner_deleted` — The partner was deleted.\n* `application_failed` — A discount boundary could not be applied.\n"
|
|
116379
|
+
},
|
|
116380
|
+
"failure": {
|
|
116381
|
+
"type": "object",
|
|
116382
|
+
"required": [
|
|
116383
|
+
"boundary",
|
|
116384
|
+
"failedAt",
|
|
116385
|
+
"dueAt",
|
|
116386
|
+
"expectedDiscount"
|
|
116387
|
+
],
|
|
116388
|
+
"properties": {
|
|
116389
|
+
"boundary": {
|
|
116390
|
+
"type": "string",
|
|
116391
|
+
"enum": [
|
|
116392
|
+
"start",
|
|
116393
|
+
"end"
|
|
116394
|
+
],
|
|
116395
|
+
"description": "Schedule boundary that failed:\n* `start` — Applying the change's discount at its start.\n* `end` — Applying the revert discount at its end.\n"
|
|
116396
|
+
},
|
|
116397
|
+
"failedAt": {
|
|
116398
|
+
"type": "string",
|
|
116399
|
+
"format": "date-time",
|
|
116400
|
+
"description": "UTC timestamp when applying the discount failed; not restricted to minute precision."
|
|
116401
|
+
},
|
|
116402
|
+
"dueAt": {
|
|
116403
|
+
"type": "string",
|
|
116404
|
+
"format": "date-time",
|
|
116405
|
+
"description": "UTC timestamp of the schedule boundary whose discount could not be applied."
|
|
116406
|
+
},
|
|
116407
|
+
"expectedDiscount": {
|
|
116408
|
+
"type": "number",
|
|
116409
|
+
"minimum": 0,
|
|
116410
|
+
"maximum": 100,
|
|
116411
|
+
"description": "Discount percentage that should have been applied, with at most two decimal places."
|
|
116412
|
+
},
|
|
116413
|
+
"resolvedAt": {
|
|
116414
|
+
"type": "string",
|
|
116415
|
+
"format": "date-time",
|
|
116416
|
+
"description": "UTC timestamp when a successful manual discount change resolved the failure warning. Omitted while unresolved."
|
|
116417
|
+
}
|
|
116418
|
+
},
|
|
116419
|
+
"description": "Recorded failure metadata. Omitted as a whole when required metadata is incomplete in historical records; no missing dates or percentages are reconstructed."
|
|
116420
|
+
},
|
|
116421
|
+
"createdAt": {
|
|
116422
|
+
"type": "string",
|
|
116423
|
+
"format": "date-time",
|
|
116424
|
+
"description": "ISO 8601 formatted date",
|
|
116425
|
+
"readOnly": true
|
|
116426
|
+
},
|
|
116427
|
+
"updatedAt": {
|
|
116428
|
+
"type": "string",
|
|
116429
|
+
"format": "date-time",
|
|
116430
|
+
"description": "ISO 8601 formatted date",
|
|
116431
|
+
"readOnly": true
|
|
116432
|
+
}
|
|
116433
|
+
}
|
|
116434
|
+
}
|
|
116435
|
+
}
|
|
116436
|
+
}
|
|
116437
|
+
},
|
|
116438
|
+
"401": {
|
|
116439
|
+
"schema": {
|
|
116440
|
+
"type": "object",
|
|
116441
|
+
"properties": {
|
|
116442
|
+
"message": {
|
|
116443
|
+
"type": "string"
|
|
116444
|
+
}
|
|
116445
|
+
}
|
|
116446
|
+
}
|
|
116447
|
+
},
|
|
116448
|
+
"403": {
|
|
116449
|
+
"schema": {
|
|
116450
|
+
"type": "object",
|
|
116451
|
+
"properties": {
|
|
116452
|
+
"message": {
|
|
116453
|
+
"type": "string",
|
|
116454
|
+
"default": "This action is unauthorized."
|
|
116455
|
+
}
|
|
116456
|
+
}
|
|
116457
|
+
}
|
|
116458
|
+
},
|
|
116459
|
+
"404": {
|
|
116460
|
+
"schema": {
|
|
116461
|
+
"type": "object",
|
|
116462
|
+
"properties": {
|
|
116463
|
+
"message": {
|
|
116464
|
+
"type": "string"
|
|
116465
|
+
}
|
|
116466
|
+
}
|
|
116467
|
+
}
|
|
116468
|
+
},
|
|
116469
|
+
"409": {
|
|
116470
|
+
"schema": {
|
|
116471
|
+
"type": "object",
|
|
116472
|
+
"properties": {
|
|
116473
|
+
"message": {
|
|
116474
|
+
"type": "string"
|
|
116475
|
+
}
|
|
116476
|
+
}
|
|
116477
|
+
}
|
|
116478
|
+
},
|
|
116479
|
+
"422": {
|
|
116480
|
+
"schema": {
|
|
116481
|
+
"type": "object",
|
|
116482
|
+
"required": [
|
|
116483
|
+
"message"
|
|
116484
|
+
],
|
|
116485
|
+
"properties": {
|
|
116486
|
+
"message": {
|
|
116487
|
+
"type": "string"
|
|
116488
|
+
},
|
|
116489
|
+
"errors": {
|
|
116490
|
+
"type": "object",
|
|
116491
|
+
"additionalProperties": {
|
|
116492
|
+
"type": "array",
|
|
116493
|
+
"items": {
|
|
116494
|
+
"type": "string"
|
|
116495
|
+
}
|
|
116496
|
+
}
|
|
116497
|
+
}
|
|
116498
|
+
}
|
|
116499
|
+
}
|
|
116500
|
+
},
|
|
116501
|
+
"429": {
|
|
116502
|
+
"schema": {
|
|
116503
|
+
"type": "object",
|
|
116504
|
+
"properties": {
|
|
116505
|
+
"message": {
|
|
116506
|
+
"type": "string"
|
|
116507
|
+
}
|
|
116508
|
+
}
|
|
116509
|
+
}
|
|
116510
|
+
}
|
|
116511
|
+
},
|
|
116512
|
+
"partnerDiscountChangeRead": {
|
|
116513
|
+
"200": {
|
|
116514
|
+
"schema": {
|
|
116515
|
+
"type": "object",
|
|
116516
|
+
"required": [
|
|
116517
|
+
"data"
|
|
116518
|
+
],
|
|
116519
|
+
"properties": {
|
|
116520
|
+
"data": {
|
|
116521
|
+
"type": "object",
|
|
116522
|
+
"required": [
|
|
116523
|
+
"id",
|
|
116524
|
+
"partnerId",
|
|
116525
|
+
"status",
|
|
116526
|
+
"discount",
|
|
116527
|
+
"startsAt",
|
|
116528
|
+
"createdAt",
|
|
116529
|
+
"updatedAt"
|
|
116530
|
+
],
|
|
116531
|
+
"description": "Discount schedule history. All response timestamps use UTC. Absent optional values are omitted, not returned as null. Automatic changes expose lastChangeReason instead of lastChangedByAdminId. The whole failure object is omitted for historical failed rows with incomplete required failure metadata.",
|
|
116532
|
+
"properties": {
|
|
116533
|
+
"discount": {
|
|
116534
|
+
"type": "number",
|
|
116535
|
+
"minimum": 0,
|
|
116536
|
+
"maximum": 100,
|
|
116537
|
+
"description": "Discount percentage, with at most two decimal places. Must be a JSON number, not a string.",
|
|
116538
|
+
"example": 12.5
|
|
116539
|
+
},
|
|
116540
|
+
"startsAt": {
|
|
116541
|
+
"type": "string",
|
|
116542
|
+
"format": "date-time",
|
|
116543
|
+
"description": "Start timestamp. Requests must use a valid ISO 8601 timestamp with an explicit timezone or offset and minute precision (zero seconds and zero fractional seconds). Values are converted to UTC; responses use UTC.",
|
|
116544
|
+
"example": "2027-01-01T00:00:00Z"
|
|
116545
|
+
},
|
|
116546
|
+
"endsAt": {
|
|
116547
|
+
"type": "string",
|
|
116548
|
+
"format": "date-time",
|
|
116549
|
+
"description": "End timestamp for a limited change. Requests require an explicit timezone or offset and minute precision (zero seconds and zero fractional seconds). Responses use UTC and may include seconds when ended early. Omitted for permanent changes.",
|
|
116550
|
+
"example": "2027-02-01T00:00:00Z"
|
|
116551
|
+
},
|
|
116552
|
+
"revertDiscount": {
|
|
116553
|
+
"type": "number",
|
|
116554
|
+
"minimum": 0,
|
|
116555
|
+
"maximum": 100,
|
|
116556
|
+
"description": "Discount percentage to apply when the limited change ends, with at most two decimal places. Must be a JSON number, not a string. Required when creating a limited change; omitted for permanent changes. May be omitted in incomplete historical records.",
|
|
116557
|
+
"example": 0
|
|
116558
|
+
},
|
|
116559
|
+
"note": {
|
|
116560
|
+
"type": "string",
|
|
116561
|
+
"maxLength": 16000,
|
|
116562
|
+
"description": "Optional note. Omitted in responses when empty."
|
|
116563
|
+
},
|
|
116564
|
+
"id": {
|
|
116565
|
+
"type": "integer",
|
|
116566
|
+
"description": "Discount change ID."
|
|
116567
|
+
},
|
|
116568
|
+
"partnerId": {
|
|
116569
|
+
"type": "integer",
|
|
116570
|
+
"description": "Partner ID."
|
|
116571
|
+
},
|
|
116572
|
+
"status": {
|
|
116573
|
+
"type": "string",
|
|
116574
|
+
"enum": [
|
|
116575
|
+
"scheduled",
|
|
116576
|
+
"active",
|
|
116577
|
+
"completed",
|
|
116578
|
+
"cancelled",
|
|
116579
|
+
"failed"
|
|
116580
|
+
],
|
|
116581
|
+
"description": "Discount change lifecycle state:\n* `scheduled` — Waiting for its start boundary.\n* `active` — The limited change has started and awaits its end.\n* `completed` — The change has finished, or its permanent rate has been applied.\n* `cancelled` — The change was cancelled without applying its future boundary.\n* `failed` — Applying a scheduled discount boundary failed.\n"
|
|
116582
|
+
},
|
|
116583
|
+
"createdByAdminId": {
|
|
116584
|
+
"type": "integer",
|
|
116585
|
+
"description": "Recorded creator administrator ID, including soft-deleted administrators. Omitted when unavailable."
|
|
116586
|
+
},
|
|
116587
|
+
"lastChangedByAdminId": {
|
|
116588
|
+
"type": "integer",
|
|
116589
|
+
"description": "Recorded administrator ID for the last manual change. Omitted for automatic changes or when unavailable."
|
|
116590
|
+
},
|
|
116591
|
+
"lastChangeReason": {
|
|
116592
|
+
"type": "string",
|
|
116593
|
+
"enum": [
|
|
116594
|
+
"permanent_change_applied",
|
|
116595
|
+
"scheduled_start_applied",
|
|
116596
|
+
"expired_period_skipped",
|
|
116597
|
+
"scheduled_end_applied",
|
|
116598
|
+
"billing_disabled",
|
|
116599
|
+
"partner_deleted",
|
|
116600
|
+
"application_failed"
|
|
116601
|
+
],
|
|
116602
|
+
"description": "Reason for the last automatic change. Omitted for manual changes or when unavailable.\n* `permanent_change_applied` — A permanent discount was applied.\n* `scheduled_start_applied` — A limited change's start discount was applied.\n* `expired_period_skipped` — An already expired period was skipped.\n* `scheduled_end_applied` — A limited change's revert discount was applied.\n* `billing_disabled` — Corporate billing was disabled.\n* `partner_deleted` — The partner was deleted.\n* `application_failed` — A discount boundary could not be applied.\n"
|
|
116603
|
+
},
|
|
116604
|
+
"failure": {
|
|
116605
|
+
"type": "object",
|
|
116606
|
+
"required": [
|
|
116607
|
+
"boundary",
|
|
116608
|
+
"failedAt",
|
|
116609
|
+
"dueAt",
|
|
116610
|
+
"expectedDiscount"
|
|
116611
|
+
],
|
|
116612
|
+
"properties": {
|
|
116613
|
+
"boundary": {
|
|
116614
|
+
"type": "string",
|
|
116615
|
+
"enum": [
|
|
116616
|
+
"start",
|
|
116617
|
+
"end"
|
|
116618
|
+
],
|
|
116619
|
+
"description": "Schedule boundary that failed:\n* `start` — Applying the change's discount at its start.\n* `end` — Applying the revert discount at its end.\n"
|
|
116620
|
+
},
|
|
116621
|
+
"failedAt": {
|
|
116622
|
+
"type": "string",
|
|
116623
|
+
"format": "date-time",
|
|
116624
|
+
"description": "UTC timestamp when applying the discount failed; not restricted to minute precision."
|
|
116625
|
+
},
|
|
116626
|
+
"dueAt": {
|
|
116627
|
+
"type": "string",
|
|
116628
|
+
"format": "date-time",
|
|
116629
|
+
"description": "UTC timestamp of the schedule boundary whose discount could not be applied."
|
|
116630
|
+
},
|
|
116631
|
+
"expectedDiscount": {
|
|
116632
|
+
"type": "number",
|
|
116633
|
+
"minimum": 0,
|
|
116634
|
+
"maximum": 100,
|
|
116635
|
+
"description": "Discount percentage that should have been applied, with at most two decimal places."
|
|
116636
|
+
},
|
|
116637
|
+
"resolvedAt": {
|
|
116638
|
+
"type": "string",
|
|
116639
|
+
"format": "date-time",
|
|
116640
|
+
"description": "UTC timestamp when a successful manual discount change resolved the failure warning. Omitted while unresolved."
|
|
116641
|
+
}
|
|
116642
|
+
},
|
|
116643
|
+
"description": "Recorded failure metadata. Omitted as a whole when required metadata is incomplete in historical records; no missing dates or percentages are reconstructed."
|
|
116644
|
+
},
|
|
116645
|
+
"createdAt": {
|
|
116646
|
+
"type": "string",
|
|
116647
|
+
"format": "date-time",
|
|
116648
|
+
"description": "ISO 8601 formatted date",
|
|
116649
|
+
"readOnly": true
|
|
116650
|
+
},
|
|
116651
|
+
"updatedAt": {
|
|
116652
|
+
"type": "string",
|
|
116653
|
+
"format": "date-time",
|
|
116654
|
+
"description": "ISO 8601 formatted date",
|
|
116655
|
+
"readOnly": true
|
|
116656
|
+
}
|
|
116657
|
+
}
|
|
116658
|
+
}
|
|
116659
|
+
}
|
|
116660
|
+
}
|
|
116661
|
+
},
|
|
116662
|
+
"401": {
|
|
116663
|
+
"schema": {
|
|
116664
|
+
"type": "object",
|
|
116665
|
+
"properties": {
|
|
116666
|
+
"message": {
|
|
116667
|
+
"type": "string"
|
|
116668
|
+
}
|
|
116669
|
+
}
|
|
116670
|
+
}
|
|
116671
|
+
},
|
|
116672
|
+
"403": {
|
|
116673
|
+
"schema": {
|
|
116674
|
+
"type": "object",
|
|
116675
|
+
"properties": {
|
|
116676
|
+
"message": {
|
|
116677
|
+
"type": "string",
|
|
116678
|
+
"default": "This action is unauthorized."
|
|
116679
|
+
}
|
|
116680
|
+
}
|
|
116681
|
+
}
|
|
116682
|
+
},
|
|
116683
|
+
"404": {
|
|
116684
|
+
"schema": {
|
|
116685
|
+
"type": "object",
|
|
116686
|
+
"properties": {
|
|
116687
|
+
"message": {
|
|
116688
|
+
"type": "string"
|
|
116689
|
+
}
|
|
116690
|
+
}
|
|
116691
|
+
}
|
|
116692
|
+
},
|
|
116693
|
+
"429": {
|
|
116694
|
+
"schema": {
|
|
116695
|
+
"type": "object",
|
|
116696
|
+
"properties": {
|
|
116697
|
+
"message": {
|
|
116698
|
+
"type": "string"
|
|
116699
|
+
}
|
|
116700
|
+
}
|
|
116701
|
+
}
|
|
116702
|
+
}
|
|
116703
|
+
},
|
|
116704
|
+
"partnerDiscountChangeUpdate": {
|
|
116705
|
+
"200": {
|
|
114441
116706
|
"schema": {
|
|
114442
116707
|
"type": "object",
|
|
116708
|
+
"required": [
|
|
116709
|
+
"data"
|
|
116710
|
+
],
|
|
114443
116711
|
"properties": {
|
|
114444
116712
|
"data": {
|
|
114445
116713
|
"type": "object",
|
|
116714
|
+
"required": [
|
|
116715
|
+
"id",
|
|
116716
|
+
"partnerId",
|
|
116717
|
+
"status",
|
|
116718
|
+
"discount",
|
|
116719
|
+
"startsAt",
|
|
116720
|
+
"createdAt",
|
|
116721
|
+
"updatedAt"
|
|
116722
|
+
],
|
|
116723
|
+
"description": "Discount schedule history. All response timestamps use UTC. Absent optional values are omitted, not returned as null. Automatic changes expose lastChangeReason instead of lastChangedByAdminId. The whole failure object is omitted for historical failed rows with incomplete required failure metadata.",
|
|
114446
116724
|
"properties": {
|
|
114447
|
-
"
|
|
114448
|
-
"type": "
|
|
114449
|
-
"
|
|
114450
|
-
"
|
|
116725
|
+
"discount": {
|
|
116726
|
+
"type": "number",
|
|
116727
|
+
"minimum": 0,
|
|
116728
|
+
"maximum": 100,
|
|
116729
|
+
"description": "Discount percentage, with at most two decimal places. Must be a JSON number, not a string.",
|
|
116730
|
+
"example": 12.5
|
|
114451
116731
|
},
|
|
114452
|
-
"
|
|
116732
|
+
"startsAt": {
|
|
114453
116733
|
"type": "string",
|
|
114454
|
-
"
|
|
116734
|
+
"format": "date-time",
|
|
116735
|
+
"description": "Start timestamp. Requests must use a valid ISO 8601 timestamp with an explicit timezone or offset and minute precision (zero seconds and zero fractional seconds). Values are converted to UTC; responses use UTC.",
|
|
116736
|
+
"example": "2027-01-01T00:00:00Z"
|
|
114455
116737
|
},
|
|
114456
|
-
"
|
|
116738
|
+
"endsAt": {
|
|
114457
116739
|
"type": "string",
|
|
114458
|
-
"format": "
|
|
114459
|
-
"description": "
|
|
116740
|
+
"format": "date-time",
|
|
116741
|
+
"description": "End timestamp for a limited change. Requests require an explicit timezone or offset and minute precision (zero seconds and zero fractional seconds). Responses use UTC and may include seconds when ended early. Omitted for permanent changes.",
|
|
116742
|
+
"example": "2027-02-01T00:00:00Z"
|
|
114460
116743
|
},
|
|
114461
|
-
"
|
|
116744
|
+
"revertDiscount": {
|
|
116745
|
+
"type": "number",
|
|
116746
|
+
"minimum": 0,
|
|
116747
|
+
"maximum": 100,
|
|
116748
|
+
"description": "Discount percentage to apply when the limited change ends, with at most two decimal places. Must be a JSON number, not a string. Required when creating a limited change; omitted for permanent changes. May be omitted in incomplete historical records.",
|
|
116749
|
+
"example": 0
|
|
116750
|
+
},
|
|
116751
|
+
"note": {
|
|
116752
|
+
"type": "string",
|
|
116753
|
+
"maxLength": 16000,
|
|
116754
|
+
"description": "Optional note. Omitted in responses when empty."
|
|
116755
|
+
},
|
|
116756
|
+
"id": {
|
|
116757
|
+
"type": "integer",
|
|
116758
|
+
"description": "Discount change ID."
|
|
116759
|
+
},
|
|
116760
|
+
"partnerId": {
|
|
116761
|
+
"type": "integer",
|
|
116762
|
+
"description": "Partner ID."
|
|
116763
|
+
},
|
|
116764
|
+
"status": {
|
|
114462
116765
|
"type": "string",
|
|
114463
116766
|
"enum": [
|
|
114464
|
-
"
|
|
114465
|
-
"
|
|
116767
|
+
"scheduled",
|
|
116768
|
+
"active",
|
|
116769
|
+
"completed",
|
|
116770
|
+
"cancelled",
|
|
116771
|
+
"failed"
|
|
114466
116772
|
],
|
|
114467
|
-
"description": "
|
|
116773
|
+
"description": "Discount change lifecycle state:\n* `scheduled` — Waiting for its start boundary.\n* `active` — The limited change has started and awaits its end.\n* `completed` — The change has finished, or its permanent rate has been applied.\n* `cancelled` — The change was cancelled without applying its future boundary.\n* `failed` — Applying a scheduled discount boundary failed.\n"
|
|
114468
116774
|
},
|
|
114469
|
-
"
|
|
116775
|
+
"createdByAdminId": {
|
|
114470
116776
|
"type": "integer",
|
|
114471
|
-
"description": "ID
|
|
116777
|
+
"description": "Recorded creator administrator ID, including soft-deleted administrators. Omitted when unavailable."
|
|
114472
116778
|
},
|
|
114473
|
-
"
|
|
114474
|
-
"type": "
|
|
114475
|
-
"description": "
|
|
114476
|
-
"example": "en"
|
|
116779
|
+
"lastChangedByAdminId": {
|
|
116780
|
+
"type": "integer",
|
|
116781
|
+
"description": "Recorded administrator ID for the last manual change. Omitted for automatic changes or when unavailable."
|
|
114477
116782
|
},
|
|
114478
|
-
"
|
|
114479
|
-
"type": "
|
|
114480
|
-
"
|
|
114481
|
-
"
|
|
114482
|
-
|
|
114483
|
-
|
|
114484
|
-
|
|
114485
|
-
"
|
|
114486
|
-
"
|
|
114487
|
-
|
|
116783
|
+
"lastChangeReason": {
|
|
116784
|
+
"type": "string",
|
|
116785
|
+
"enum": [
|
|
116786
|
+
"permanent_change_applied",
|
|
116787
|
+
"scheduled_start_applied",
|
|
116788
|
+
"expired_period_skipped",
|
|
116789
|
+
"scheduled_end_applied",
|
|
116790
|
+
"billing_disabled",
|
|
116791
|
+
"partner_deleted",
|
|
116792
|
+
"application_failed"
|
|
116793
|
+
],
|
|
116794
|
+
"description": "Reason for the last automatic change. Omitted for manual changes or when unavailable.\n* `permanent_change_applied` — A permanent discount was applied.\n* `scheduled_start_applied` — A limited change's start discount was applied.\n* `expired_period_skipped` — An already expired period was skipped.\n* `scheduled_end_applied` — A limited change's revert discount was applied.\n* `billing_disabled` — Corporate billing was disabled.\n* `partner_deleted` — The partner was deleted.\n* `application_failed` — A discount boundary could not be applied.\n"
|
|
114488
116795
|
},
|
|
114489
|
-
"
|
|
114490
|
-
"type": "
|
|
114491
|
-
"
|
|
114492
|
-
"
|
|
116796
|
+
"failure": {
|
|
116797
|
+
"type": "object",
|
|
116798
|
+
"required": [
|
|
116799
|
+
"boundary",
|
|
116800
|
+
"failedAt",
|
|
116801
|
+
"dueAt",
|
|
116802
|
+
"expectedDiscount"
|
|
116803
|
+
],
|
|
116804
|
+
"properties": {
|
|
116805
|
+
"boundary": {
|
|
116806
|
+
"type": "string",
|
|
116807
|
+
"enum": [
|
|
116808
|
+
"start",
|
|
116809
|
+
"end"
|
|
116810
|
+
],
|
|
116811
|
+
"description": "Schedule boundary that failed:\n* `start` — Applying the change's discount at its start.\n* `end` — Applying the revert discount at its end.\n"
|
|
116812
|
+
},
|
|
116813
|
+
"failedAt": {
|
|
116814
|
+
"type": "string",
|
|
116815
|
+
"format": "date-time",
|
|
116816
|
+
"description": "UTC timestamp when applying the discount failed; not restricted to minute precision."
|
|
116817
|
+
},
|
|
116818
|
+
"dueAt": {
|
|
116819
|
+
"type": "string",
|
|
116820
|
+
"format": "date-time",
|
|
116821
|
+
"description": "UTC timestamp of the schedule boundary whose discount could not be applied."
|
|
116822
|
+
},
|
|
116823
|
+
"expectedDiscount": {
|
|
116824
|
+
"type": "number",
|
|
116825
|
+
"minimum": 0,
|
|
116826
|
+
"maximum": 100,
|
|
116827
|
+
"description": "Discount percentage that should have been applied, with at most two decimal places."
|
|
116828
|
+
},
|
|
116829
|
+
"resolvedAt": {
|
|
116830
|
+
"type": "string",
|
|
116831
|
+
"format": "date-time",
|
|
116832
|
+
"description": "UTC timestamp when a successful manual discount change resolved the failure warning. Omitted while unresolved."
|
|
116833
|
+
}
|
|
114493
116834
|
},
|
|
114494
|
-
"description": "
|
|
114495
|
-
"example": [
|
|
114496
|
-
1,
|
|
114497
|
-
2,
|
|
114498
|
-
3
|
|
114499
|
-
]
|
|
116835
|
+
"description": "Recorded failure metadata. Omitted as a whole when required metadata is incomplete in historical records; no missing dates or percentages are reconstructed."
|
|
114500
116836
|
},
|
|
114501
116837
|
"createdAt": {
|
|
114502
116838
|
"type": "string",
|
|
114503
116839
|
"format": "date-time",
|
|
114504
|
-
"
|
|
114505
|
-
"
|
|
116840
|
+
"description": "ISO 8601 formatted date",
|
|
116841
|
+
"readOnly": true
|
|
114506
116842
|
},
|
|
114507
116843
|
"updatedAt": {
|
|
114508
116844
|
"type": "string",
|
|
114509
116845
|
"format": "date-time",
|
|
114510
|
-
"
|
|
114511
|
-
"
|
|
114512
|
-
}
|
|
114513
|
-
}
|
|
114514
|
-
}
|
|
114515
|
-
}
|
|
114516
|
-
}
|
|
114517
|
-
},
|
|
114518
|
-
"401": {
|
|
114519
|
-
"schema": {
|
|
114520
|
-
"type": "object",
|
|
114521
|
-
"properties": {
|
|
114522
|
-
"message": {
|
|
114523
|
-
"type": "string"
|
|
114524
|
-
}
|
|
114525
|
-
}
|
|
114526
|
-
}
|
|
114527
|
-
},
|
|
114528
|
-
"403": {
|
|
114529
|
-
"schema": {
|
|
114530
|
-
"type": "object",
|
|
114531
|
-
"properties": {
|
|
114532
|
-
"message": {
|
|
114533
|
-
"type": "string",
|
|
114534
|
-
"default": "This action is unauthorized."
|
|
114535
|
-
}
|
|
114536
|
-
}
|
|
114537
|
-
}
|
|
114538
|
-
},
|
|
114539
|
-
"404": {
|
|
114540
|
-
"schema": {
|
|
114541
|
-
"type": "object",
|
|
114542
|
-
"properties": {
|
|
114543
|
-
"message": {
|
|
114544
|
-
"type": "string"
|
|
114545
|
-
}
|
|
114546
|
-
}
|
|
114547
|
-
}
|
|
114548
|
-
},
|
|
114549
|
-
"422": {
|
|
114550
|
-
"schema": {
|
|
114551
|
-
"type": "object",
|
|
114552
|
-
"required": [
|
|
114553
|
-
"message"
|
|
114554
|
-
],
|
|
114555
|
-
"properties": {
|
|
114556
|
-
"message": {
|
|
114557
|
-
"type": "string"
|
|
114558
|
-
},
|
|
114559
|
-
"errors": {
|
|
114560
|
-
"type": "object",
|
|
114561
|
-
"additionalProperties": {
|
|
114562
|
-
"type": "array",
|
|
114563
|
-
"items": {
|
|
114564
|
-
"type": "string"
|
|
116846
|
+
"description": "ISO 8601 formatted date",
|
|
116847
|
+
"readOnly": true
|
|
114565
116848
|
}
|
|
114566
116849
|
}
|
|
114567
116850
|
}
|
|
114568
116851
|
}
|
|
114569
116852
|
}
|
|
114570
116853
|
},
|
|
114571
|
-
"429": {
|
|
114572
|
-
"schema": {
|
|
114573
|
-
"type": "object",
|
|
114574
|
-
"properties": {
|
|
114575
|
-
"message": {
|
|
114576
|
-
"type": "string"
|
|
114577
|
-
}
|
|
114578
|
-
}
|
|
114579
|
-
}
|
|
114580
|
-
}
|
|
114581
|
-
},
|
|
114582
|
-
"partnerAdminDelete": {
|
|
114583
116854
|
"401": {
|
|
114584
116855
|
"schema": {
|
|
114585
116856
|
"type": "object",
|
|
@@ -114611,118 +116882,7 @@
|
|
|
114611
116882
|
}
|
|
114612
116883
|
}
|
|
114613
116884
|
},
|
|
114614
|
-
"
|
|
114615
|
-
"schema": {
|
|
114616
|
-
"type": "object",
|
|
114617
|
-
"properties": {
|
|
114618
|
-
"message": {
|
|
114619
|
-
"type": "string"
|
|
114620
|
-
}
|
|
114621
|
-
}
|
|
114622
|
-
}
|
|
114623
|
-
}
|
|
114624
|
-
},
|
|
114625
|
-
"partnerAdminUpdate": {
|
|
114626
|
-
"200": {
|
|
114627
|
-
"schema": {
|
|
114628
|
-
"type": "object",
|
|
114629
|
-
"properties": {
|
|
114630
|
-
"data": {
|
|
114631
|
-
"type": "object",
|
|
114632
|
-
"properties": {
|
|
114633
|
-
"id": {
|
|
114634
|
-
"type": "integer",
|
|
114635
|
-
"readOnly": true,
|
|
114636
|
-
"description": "Unique identifier of the partner administrator"
|
|
114637
|
-
},
|
|
114638
|
-
"name": {
|
|
114639
|
-
"type": "string",
|
|
114640
|
-
"description": "Name of the administrator"
|
|
114641
|
-
},
|
|
114642
|
-
"email": {
|
|
114643
|
-
"type": "string",
|
|
114644
|
-
"format": "email",
|
|
114645
|
-
"description": "Email address of the administrator"
|
|
114646
|
-
},
|
|
114647
|
-
"adminType": {
|
|
114648
|
-
"type": "string",
|
|
114649
|
-
"enum": [
|
|
114650
|
-
"partner",
|
|
114651
|
-
"partnerSiteManager"
|
|
114652
|
-
],
|
|
114653
|
-
"description": "Type of partner administrator:\n* `partner` - Full partner access, can manage all partner resources\n* `partnerSiteManager` - Location-restricted access, can only manage assigned locations\n"
|
|
114654
|
-
},
|
|
114655
|
-
"roleId": {
|
|
114656
|
-
"type": "integer",
|
|
114657
|
-
"description": "ID of the role assigned to this administrator"
|
|
114658
|
-
},
|
|
114659
|
-
"locale": {
|
|
114660
|
-
"type": "string",
|
|
114661
|
-
"description": "Locale code for the administrator (e.g., \"en\", \"de\"). Omitted from response when not set.",
|
|
114662
|
-
"example": "en"
|
|
114663
|
-
},
|
|
114664
|
-
"whitelistedIps": {
|
|
114665
|
-
"type": "array",
|
|
114666
|
-
"items": {
|
|
114667
|
-
"type": "string"
|
|
114668
|
-
},
|
|
114669
|
-
"description": "List of IP addresses allowed for UI access",
|
|
114670
|
-
"example": [
|
|
114671
|
-
"192.168.1.1",
|
|
114672
|
-
"10.0.0.1"
|
|
114673
|
-
]
|
|
114674
|
-
},
|
|
114675
|
-
"locationIds": {
|
|
114676
|
-
"type": "array",
|
|
114677
|
-
"items": {
|
|
114678
|
-
"type": "integer"
|
|
114679
|
-
},
|
|
114680
|
-
"description": "Location IDs the administrator can manage. Only present for `partnerSiteManager` type; omitted for `partner` type.",
|
|
114681
|
-
"example": [
|
|
114682
|
-
1,
|
|
114683
|
-
2,
|
|
114684
|
-
3
|
|
114685
|
-
]
|
|
114686
|
-
},
|
|
114687
|
-
"createdAt": {
|
|
114688
|
-
"type": "string",
|
|
114689
|
-
"format": "date-time",
|
|
114690
|
-
"readOnly": true,
|
|
114691
|
-
"description": "ISO 8601 timestamp of when the administrator was created"
|
|
114692
|
-
},
|
|
114693
|
-
"updatedAt": {
|
|
114694
|
-
"type": "string",
|
|
114695
|
-
"format": "date-time",
|
|
114696
|
-
"readOnly": true,
|
|
114697
|
-
"description": "ISO 8601 timestamp of when the administrator was last updated"
|
|
114698
|
-
}
|
|
114699
|
-
}
|
|
114700
|
-
}
|
|
114701
|
-
}
|
|
114702
|
-
}
|
|
114703
|
-
},
|
|
114704
|
-
"401": {
|
|
114705
|
-
"schema": {
|
|
114706
|
-
"type": "object",
|
|
114707
|
-
"properties": {
|
|
114708
|
-
"message": {
|
|
114709
|
-
"type": "string"
|
|
114710
|
-
}
|
|
114711
|
-
}
|
|
114712
|
-
}
|
|
114713
|
-
},
|
|
114714
|
-
"403": {
|
|
114715
|
-
"schema": {
|
|
114716
|
-
"type": "object",
|
|
114717
|
-
"properties": {
|
|
114718
|
-
"message": {
|
|
114719
|
-
"type": "string",
|
|
114720
|
-
"default": "This action is unauthorized."
|
|
114721
|
-
}
|
|
114722
|
-
}
|
|
114723
|
-
}
|
|
114724
|
-
},
|
|
114725
|
-
"404": {
|
|
116885
|
+
"409": {
|
|
114726
116886
|
"schema": {
|
|
114727
116887
|
"type": "object",
|
|
114728
116888
|
"properties": {
|
|
@@ -131695,6 +133855,15 @@
|
|
|
131695
133855
|
"type": "integer",
|
|
131696
133856
|
"description": "Operator the report belongs to, as exposed by the operators resource."
|
|
131697
133857
|
},
|
|
133858
|
+
"type": {
|
|
133859
|
+
"description": "The kind of aggregate a reimbursement report represents:\n- **user**: The report aggregates the records owed to a single beneficiary user.\n- **partner**: The report aggregates the records owed by a single payer partner contract.\n",
|
|
133860
|
+
"type": "string",
|
|
133861
|
+
"enum": [
|
|
133862
|
+
"user",
|
|
133863
|
+
"partner"
|
|
133864
|
+
],
|
|
133865
|
+
"example": "user"
|
|
133866
|
+
},
|
|
131698
133867
|
"beneficiary": {
|
|
131699
133868
|
"description": "Party the reimbursement is owed to.\n",
|
|
131700
133869
|
"type": "object",
|
|
@@ -131962,6 +134131,7 @@
|
|
|
131962
134131
|
"required": [
|
|
131963
134132
|
"id",
|
|
131964
134133
|
"operatorId",
|
|
134134
|
+
"type",
|
|
131965
134135
|
"totalEnergy",
|
|
131966
134136
|
"totalAmount",
|
|
131967
134137
|
"periodStartsOn",
|
|
@@ -132114,6 +134284,15 @@
|
|
|
132114
134284
|
"type": "integer",
|
|
132115
134285
|
"description": "Operator the report belongs to, as exposed by the operators resource."
|
|
132116
134286
|
},
|
|
134287
|
+
"type": {
|
|
134288
|
+
"description": "The kind of aggregate a reimbursement report represents:\n- **user**: The report aggregates the records owed to a single beneficiary user.\n- **partner**: The report aggregates the records owed by a single payer partner contract.\n",
|
|
134289
|
+
"type": "string",
|
|
134290
|
+
"enum": [
|
|
134291
|
+
"user",
|
|
134292
|
+
"partner"
|
|
134293
|
+
],
|
|
134294
|
+
"example": "user"
|
|
134295
|
+
},
|
|
132117
134296
|
"beneficiary": {
|
|
132118
134297
|
"description": "Party the reimbursement is owed to.\n",
|
|
132119
134298
|
"type": "object",
|
|
@@ -132381,6 +134560,7 @@
|
|
|
132381
134560
|
"required": [
|
|
132382
134561
|
"id",
|
|
132383
134562
|
"operatorId",
|
|
134563
|
+
"type",
|
|
132384
134564
|
"totalEnergy",
|
|
132385
134565
|
"totalAmount",
|
|
132386
134566
|
"periodStartsOn",
|
|
@@ -137821,6 +140001,10 @@
|
|
|
137821
140001
|
"chargePointId": {
|
|
137822
140002
|
"type": "integer"
|
|
137823
140003
|
},
|
|
140004
|
+
"locationId": {
|
|
140005
|
+
"type": "integer",
|
|
140006
|
+
"description": "The ID of the charge point's current location when a session list, session detail or session update webhook payload is built, not a historical session snapshot. Charge point or EVSE moves change the ID in later payloads. A soft-deleted charge point, zone or location still provides its location ID for grouping, although retrieving a deleted location through the location endpoint returns 404. Omitted when the current asset graph has no location."
|
|
140007
|
+
},
|
|
137824
140008
|
"evseId": {
|
|
137825
140009
|
"type": "integer"
|
|
137826
140010
|
},
|
|
@@ -139110,6 +141294,10 @@
|
|
|
139110
141294
|
"chargePointId": {
|
|
139111
141295
|
"type": "integer"
|
|
139112
141296
|
},
|
|
141297
|
+
"locationId": {
|
|
141298
|
+
"type": "integer",
|
|
141299
|
+
"description": "The ID of the charge point's current location when a session list, session detail or session update webhook payload is built, not a historical session snapshot. Charge point or EVSE moves change the ID in later payloads. A soft-deleted charge point, zone or location still provides its location ID for grouping, although retrieving a deleted location through the location endpoint returns 404. Omitted when the current asset graph has no location."
|
|
141300
|
+
},
|
|
139113
141301
|
"evseId": {
|
|
139114
141302
|
"type": "integer"
|
|
139115
141303
|
},
|
|
@@ -162715,6 +164903,7 @@
|
|
|
162715
164903
|
"400",
|
|
162716
164904
|
"380",
|
|
162717
164905
|
"480",
|
|
164906
|
+
"600",
|
|
162718
164907
|
"230"
|
|
162719
164908
|
]
|
|
162720
164909
|
},
|