@ampeco/public-api-mcp 3.253.1 → 3.254.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/build-stats.json +9 -9
- package/dist/generated/endpoints.json +404 -42
- package/dist/generated/response-schemas.json +1502 -223
- package/dist/generated/schemas.d.ts +67 -19
- package/dist/generated/schemas.d.ts.map +1 -1
- package/dist/generated/schemas.js +32 -6
- package/dist/generated/schemas.js.map +1 -1
- package/dist/generated/schemas.ts +38 -6
- package/package.json +1 -1
|
@@ -3987,7 +3987,7 @@
|
|
|
3987
3987
|
"method": "POST",
|
|
3988
3988
|
"operationId": "partnerSettlementReportSetCustomFields",
|
|
3989
3989
|
"summary": "Partner settlement report / set custom fields",
|
|
3990
|
-
"description": "⚠️ Experimental endpoint — not yet a stable contract. This action 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. Set the applicable live custom field values of a partner settlement report without changing the historical report, its generated documents, party and settings snapshots, or derived partner invoices. This action requires permission to view the partner settlement report and the `PartnerSettlementReports.update-custom-fields` permission.
|
|
3990
|
+
"description": "⚠️ Experimental endpoint — not yet a stable contract. This action 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. Set the applicable live custom field values of a partner settlement report without changing the historical report, its generated documents, party and settings snapshots, or derived partner invoices. This action requires permission to view the partner settlement report and the `PartnerSettlementReports.update-custom-fields` permission. Send a JSON object containing the required `customFields` object. Omitted identifiers remain unchanged, while `null` clears the corresponding value. When custom fields are enabled for partner settlement reports, an empty object succeeds as a no-op. Invalid or unavailable identifiers, invalid values, and disabled custom fields return `422` validation errors, and no submitted values are changed. A `404` response means the partner settlement report was not found. The response is the current default read representation after applying the values; `customFields` remains live metadata and is not a point-in-time representation of the historical settlement report.",
|
|
3991
3991
|
"tags": [
|
|
3992
3992
|
"action / partner settlement report"
|
|
3993
3993
|
],
|
|
@@ -4089,7 +4089,7 @@
|
|
|
4089
4089
|
"method": "POST",
|
|
4090
4090
|
"operationId": "partnerSetCustomFieldsV1_0",
|
|
4091
4091
|
"summary": "Partner / set custom fields",
|
|
4092
|
-
"description": "⚠️ Experimental endpoint — not yet a stable contract. This action 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. Set the applicable custom field values of a partner without changing any other partner properties. This action requires permission to view the partner and the `Partners.update-custom-fields` permission. Send a JSON object containing
|
|
4092
|
+
"description": "⚠️ Experimental endpoint — not yet a stable contract. This action 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. Set the applicable custom field values of a partner without changing any other partner properties. This action requires permission to view the partner and the `Partners.update-custom-fields` permission. Send a JSON object containing the required `customFields` object. Omitted identifiers remain unchanged, while `null` clears the corresponding value. When custom fields are enabled for partners, an empty object succeeds as a no-op. Invalid or unavailable identifiers, invalid values, and disabled custom fields return `422` validation errors, and no submitted values are changed. A `404` response means the partner was not found.",
|
|
4093
4093
|
"tags": [
|
|
4094
4094
|
"action / partner"
|
|
4095
4095
|
],
|
|
@@ -4140,7 +4140,7 @@
|
|
|
4140
4140
|
"method": "POST",
|
|
4141
4141
|
"operationId": "paymentTerminalSetCustomFields",
|
|
4142
4142
|
"summary": "Payment terminal / set custom fields",
|
|
4143
|
-
"description": "⚠️ Experimental endpoint — not yet a stable contract. This action 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. Set the applicable custom field values of a payment terminal without changing any other payment terminal properties. This action requires permission to view the payment terminal and the `PaymentTerminals.update-custom-fields` permission.
|
|
4143
|
+
"description": "⚠️ Experimental endpoint — not yet a stable contract. This action 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. Set the applicable custom field values of a payment terminal without changing any other payment terminal properties. This action requires permission to view the payment terminal and the `PaymentTerminals.update-custom-fields` permission. Send a JSON object containing the required `customFields` object. Omitted identifiers remain unchanged, while `null` clears the corresponding value. When custom fields are enabled for payment terminals, an empty object succeeds as a no-op. Invalid or unavailable identifiers, invalid values, and disabled custom fields return `422` validation errors, and no submitted values are changed. A `404` response means the payment terminal was not found.",
|
|
4144
4144
|
"tags": [
|
|
4145
4145
|
"action / payment terminal"
|
|
4146
4146
|
],
|
|
@@ -4274,8 +4274,8 @@
|
|
|
4274
4274
|
}
|
|
4275
4275
|
},
|
|
4276
4276
|
"responses": {
|
|
4277
|
-
"
|
|
4278
|
-
"description": "Credit record
|
|
4277
|
+
"202": {
|
|
4278
|
+
"description": "Credit record issued"
|
|
4279
4279
|
},
|
|
4280
4280
|
"401": {
|
|
4281
4281
|
"description": "Access token is missing or invalid"
|
|
@@ -4297,6 +4297,57 @@
|
|
|
4297
4297
|
}
|
|
4298
4298
|
}
|
|
4299
4299
|
},
|
|
4300
|
+
{
|
|
4301
|
+
"path": "/public-api/actions/reimbursement-record/v1.0/{reimbursementRecord}/set-custom-fields",
|
|
4302
|
+
"method": "POST",
|
|
4303
|
+
"operationId": "reimbursementRecordSetCustomFieldsV1_0",
|
|
4304
|
+
"summary": "Reimbursement record / set custom fields",
|
|
4305
|
+
"description": "⚠️ Experimental endpoint — not yet a stable contract. This action 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. Set the applicable live custom field values of a reimbursement record without changing its immutable financial, policy, tag, calculation, or timestamp data. This action requires permission to view the reimbursement record and the `ReimbursementRecords.update-custom-fields` permission. Send a JSON object containing the required `customFields` object. Omitted identifiers remain unchanged, while `null` clears the corresponding value. When custom fields are enabled for reimbursement records, an empty object succeeds as a no-op. Invalid or unavailable identifiers, invalid values, and disabled custom fields return `422` validation errors, and no submitted values are changed. A `404` response means the reimbursement record was not found.",
|
|
4306
|
+
"tags": [
|
|
4307
|
+
"action / reimbursement record"
|
|
4308
|
+
],
|
|
4309
|
+
"requestBody": {
|
|
4310
|
+
"required": true,
|
|
4311
|
+
"content": {
|
|
4312
|
+
"application/json": {
|
|
4313
|
+
"schema": {
|
|
4314
|
+
"type": "object",
|
|
4315
|
+
"properties": {
|
|
4316
|
+
"customFields": {
|
|
4317
|
+
"type": "object",
|
|
4318
|
+
"additionalProperties": true,
|
|
4319
|
+
"description": "Custom field values keyed by their administrator-defined identifiers. The accepted type for each identifier is defined by the tenant's custom field configuration. Boolean values are JSON booleans; text and long text values are strings; email values are email-formatted strings; URL values are HTTP or HTTPS URL strings; number values use canonical base-10 decimal strings from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; date values are ISO 8601 `YYYY-MM-DD` strings; date-time values are ISO 8601 timestamps with a UTC offset; and JSON values may use any JSON-serializable value. Decimal strings are the precision-safe number request representation. JSON numeric inputs remain accepted for compatibility, but their precision may depend on the client's number handling."
|
|
4320
|
+
}
|
|
4321
|
+
},
|
|
4322
|
+
"required": [
|
|
4323
|
+
"customFields"
|
|
4324
|
+
],
|
|
4325
|
+
"additionalProperties": false
|
|
4326
|
+
}
|
|
4327
|
+
}
|
|
4328
|
+
}
|
|
4329
|
+
},
|
|
4330
|
+
"responses": {
|
|
4331
|
+
"202": {
|
|
4332
|
+
"description": "Accepted - the response body contains the reimbursement record's read representation after applying the submitted values"
|
|
4333
|
+
},
|
|
4334
|
+
"401": {
|
|
4335
|
+
"description": "Access token is missing or invalid"
|
|
4336
|
+
},
|
|
4337
|
+
"403": {
|
|
4338
|
+
"description": "You do not have permission to perform the action"
|
|
4339
|
+
},
|
|
4340
|
+
"404": {
|
|
4341
|
+
"description": "The record is not found"
|
|
4342
|
+
},
|
|
4343
|
+
"422": {
|
|
4344
|
+
"description": "The payload you provided is invalid"
|
|
4345
|
+
},
|
|
4346
|
+
"429": {
|
|
4347
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
4348
|
+
}
|
|
4349
|
+
}
|
|
4350
|
+
},
|
|
4300
4351
|
{
|
|
4301
4352
|
"path": "/public-api/actions/reimbursement-report/v1.0/{reimbursementReport}/regenerate",
|
|
4302
4353
|
"method": "POST",
|
|
@@ -4324,6 +4375,57 @@
|
|
|
4324
4375
|
}
|
|
4325
4376
|
}
|
|
4326
4377
|
},
|
|
4378
|
+
{
|
|
4379
|
+
"path": "/public-api/actions/reimbursement-report/v1.0/{reimbursementReport}/set-custom-fields",
|
|
4380
|
+
"method": "POST",
|
|
4381
|
+
"operationId": "reimbursementReportSetCustomFieldsV1_0",
|
|
4382
|
+
"summary": "Reimbursement report / set custom fields",
|
|
4383
|
+
"description": "⚠️ Experimental endpoint — not yet a stable contract. This action 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. Set the applicable live custom field values of a reimbursement report without changing the report, its constituent reimbursement records, timestamps or generated output. This action requires permission to view the reimbursement report and the `ReimbursementReports.update-custom-fields` permission. The `customFields` object accepts Boolean, Text, Long text, Email, URL, Number, Date, Date-time and JSON values according to each administrator-defined field. It may be empty. Omitted identifiers remain unchanged, while an explicit `null` clears the corresponding value. Every submitted identifier is validated against the report's current operator owner, the current custom field configuration and the acting administrator's access. Unknown, inapplicable or currently disabled identifiers return a `422` error keyed as `customFields.<identifier>`, and no submitted values are changed. This write action does not accept query parameters or includes. The response is the current default read representation after applying the values, including the report's prepared monetary aggregates; `customFields` remains live metadata and is not a point-in-time snapshot.",
|
|
4384
|
+
"tags": [
|
|
4385
|
+
"action / reimbursement report"
|
|
4386
|
+
],
|
|
4387
|
+
"requestBody": {
|
|
4388
|
+
"required": true,
|
|
4389
|
+
"content": {
|
|
4390
|
+
"application/json": {
|
|
4391
|
+
"schema": {
|
|
4392
|
+
"type": "object",
|
|
4393
|
+
"properties": {
|
|
4394
|
+
"customFields": {
|
|
4395
|
+
"type": "object",
|
|
4396
|
+
"additionalProperties": true,
|
|
4397
|
+
"description": "Custom field values keyed by their administrator-defined identifiers. The accepted type for each identifier is defined by the tenant's custom field configuration. Boolean values are JSON booleans; text and long text values are strings; email values are email-formatted strings; URL values are HTTP or HTTPS URL strings; number values use canonical base-10 decimal strings from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; date values are ISO 8601 `YYYY-MM-DD` strings; date-time values are ISO 8601 timestamps with a UTC offset; and JSON values may use any JSON-serializable value. Decimal strings are the precision-safe number request representation. JSON numeric inputs remain accepted for compatibility, but their precision may depend on the client's number handling."
|
|
4398
|
+
}
|
|
4399
|
+
},
|
|
4400
|
+
"required": [
|
|
4401
|
+
"customFields"
|
|
4402
|
+
],
|
|
4403
|
+
"additionalProperties": false
|
|
4404
|
+
}
|
|
4405
|
+
}
|
|
4406
|
+
}
|
|
4407
|
+
},
|
|
4408
|
+
"responses": {
|
|
4409
|
+
"202": {
|
|
4410
|
+
"description": "Accepted - the response body contains the reimbursement report's default current read representation after applying the submitted values"
|
|
4411
|
+
},
|
|
4412
|
+
"401": {
|
|
4413
|
+
"description": "Access token is missing or invalid"
|
|
4414
|
+
},
|
|
4415
|
+
"403": {
|
|
4416
|
+
"description": "You do not have permission to perform the action"
|
|
4417
|
+
},
|
|
4418
|
+
"404": {
|
|
4419
|
+
"description": "The record is not found"
|
|
4420
|
+
},
|
|
4421
|
+
"422": {
|
|
4422
|
+
"description": "The payload you provided is invalid"
|
|
4423
|
+
},
|
|
4424
|
+
"429": {
|
|
4425
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
4426
|
+
}
|
|
4427
|
+
}
|
|
4428
|
+
},
|
|
4327
4429
|
{
|
|
4328
4430
|
"path": "/public-api/actions/reservation/v1.0/{reservation}/cancel",
|
|
4329
4431
|
"method": "POST",
|
|
@@ -4946,7 +5048,7 @@
|
|
|
4946
5048
|
"method": "POST",
|
|
4947
5049
|
"operationId": "sessionChangeTariff",
|
|
4948
5050
|
"summary": "Session / Change tariff",
|
|
4949
|
-
"description": "Change the tariff for a session and trigger recalculation of charging periods. This action supports loyalty program integrations where discounts need to be applied mid-session. The tariff change is only available when: - Billing status is NOT \"Completed\" - For running sessions: duration is under 3 hours - For roaming sessions (the platform as eMSP): session must be finished and have a CDR received - No recalculation is already in progress - For local charge point sessions: a StartTransaction message must exist - The selected tariff already has usable concrete pricing",
|
|
5051
|
+
"description": "Change the tariff for a session and trigger recalculation of charging periods. This action supports loyalty program integrations where discounts need to be applied mid-session. The tariff change is only available when: - Billing status is NOT \"Completed\" - For running sessions: duration is under 3 hours - For roaming sessions (the platform as eMSP): session must be finished and have a CDR received - No recalculation is already in progress - For local charge point sessions: a StartTransaction message must exist - The session's billing is not owned by an upstream roaming partner (broker sessions with upstream-sourced CDRs) - The selected tariff already has usable concrete pricing",
|
|
4950
5052
|
"tags": [
|
|
4951
5053
|
"action / session"
|
|
4952
5054
|
],
|
|
@@ -4960,6 +5062,11 @@
|
|
|
4960
5062
|
"tariffId": {
|
|
4961
5063
|
"type": "integer",
|
|
4962
5064
|
"description": "The ID of the tariff to apply to the session. The tariff must already have usable concrete pricing; unresolved markup or discount tariff definitions cannot be assigned directly and produce a tariffId validation error (422)."
|
|
5065
|
+
},
|
|
5066
|
+
"reason": {
|
|
5067
|
+
"type": "string",
|
|
5068
|
+
"maxLength": 1000,
|
|
5069
|
+
"description": "Optionally, add a reason (e.g., wrong tariff applied at session start, billing dispute)."
|
|
4963
5070
|
}
|
|
4964
5071
|
},
|
|
4965
5072
|
"required": [
|
|
@@ -4983,11 +5090,180 @@
|
|
|
4983
5090
|
"description": "The record is not found"
|
|
4984
5091
|
},
|
|
4985
5092
|
"409": {
|
|
4986
|
-
"description": "Conflict - The request cannot be completed due to a conflict with the current state of the resource. Possible errors: * Billing is already completed for this session * Session duration exceeds 3 hours (running sessions only) * Roaming session without a CDR * Recalculation already in progress * StartTransaction message missing (local CP sessions)"
|
|
5093
|
+
"description": "Conflict - The request cannot be completed due to a conflict with the current state of the resource. Possible errors: * Billing is already completed for this session * Session duration exceeds 3 hours (running sessions only) * Roaming session without a CDR * Recalculation already in progress * StartTransaction message missing (local CP sessions) * Billing is owned by the upstream roaming partner (broker sessions with upstream-sourced CDRs)"
|
|
5094
|
+
},
|
|
5095
|
+
"422": {
|
|
5096
|
+
"description": "The payload you provided is invalid"
|
|
5097
|
+
},
|
|
5098
|
+
"429": {
|
|
5099
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
5100
|
+
}
|
|
5101
|
+
}
|
|
5102
|
+
},
|
|
5103
|
+
{
|
|
5104
|
+
"path": "/public-api/actions/session/v1.0/{session}/expedite-billing",
|
|
5105
|
+
"method": "POST",
|
|
5106
|
+
"operationId": "sessionExpediteBilling",
|
|
5107
|
+
"summary": "Session / Expedite billing",
|
|
5108
|
+
"description": "Run the billing validation for a finished session that is still awaiting it, instead of waiting for the platform to process it. The action runs as the token owner, who is recorded on the session edit log and on the action audit record. Requires the `Sessions.resume-billing` permission - a token whose admin does not hold it is rejected with 403, and so is a request for a session that belongs to another operator. An unknown session ID is rejected with 404. Preconditions, with the response code each failure produces: * `status` is `finished` and `billingStatus` is `pending` - otherwise 409 * Idle fees are no longer accruing: the connector is disengaged, or the platform settings do not defer billing until the connector is disengaged - otherwise 409 * Billing for the session is not owned by the upstream roaming partner - otherwise 409 * No recalculation is running for the session and the session is not locked for billing processing - otherwise 423 * `reason` is at most 1000 characters - otherwise 422 The validation decides the resulting billing status: | Validation outcome | Resulting billing status | | --- | --- | | Every validation rule passes | `completed` | | A validation rule fails and is configured to suspend billing | `suspended` | | A validation rule fails but is not configured to suspend billing | `completed` | | The session extends an earlier one while the platform settings do not bill extending sessions, or it is a free session on a personal charge point | `completed`, without running the validation rules |",
|
|
5109
|
+
"tags": [
|
|
5110
|
+
"action / session"
|
|
5111
|
+
],
|
|
5112
|
+
"requestBody": {
|
|
5113
|
+
"content": {
|
|
5114
|
+
"application/json": {
|
|
5115
|
+
"schema": {
|
|
5116
|
+
"type": "object",
|
|
5117
|
+
"properties": {
|
|
5118
|
+
"reason": {
|
|
5119
|
+
"type": "string",
|
|
5120
|
+
"maxLength": 1000,
|
|
5121
|
+
"description": "Reason for expediting billing, recorded on the session edit log."
|
|
5122
|
+
}
|
|
5123
|
+
}
|
|
5124
|
+
}
|
|
5125
|
+
}
|
|
5126
|
+
}
|
|
5127
|
+
},
|
|
5128
|
+
"responses": {
|
|
5129
|
+
"202": {
|
|
5130
|
+
"description": "Action accepted. The billing validation has been run and the billing status updated accordingly."
|
|
5131
|
+
},
|
|
5132
|
+
"401": {
|
|
5133
|
+
"description": "Access token is missing or invalid"
|
|
5134
|
+
},
|
|
5135
|
+
"403": {
|
|
5136
|
+
"description": "You do not have permission to perform the action"
|
|
5137
|
+
},
|
|
5138
|
+
"404": {
|
|
5139
|
+
"description": "The record is not found"
|
|
5140
|
+
},
|
|
5141
|
+
"409": {
|
|
5142
|
+
"description": "Conflict - The request cannot be completed due to a conflict with the current state of the session. Possible errors: * The session `status` is not `finished`, or `billingStatus` is not `pending` * Idle fees are still accruing because the connector is still engaged * Billing for this session is owned by the upstream roaming partner"
|
|
4987
5143
|
},
|
|
4988
5144
|
"422": {
|
|
4989
5145
|
"description": "The payload you provided is invalid"
|
|
4990
5146
|
},
|
|
5147
|
+
"423": {
|
|
5148
|
+
"description": "Locked - The session is temporarily locked because billing is being processed for it, or because a recalculation is already running. Retry later."
|
|
5149
|
+
},
|
|
5150
|
+
"429": {
|
|
5151
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
5152
|
+
}
|
|
5153
|
+
}
|
|
5154
|
+
},
|
|
5155
|
+
{
|
|
5156
|
+
"path": "/public-api/actions/session/v1.0/{session}/recalculate",
|
|
5157
|
+
"method": "POST",
|
|
5158
|
+
"operationId": "sessionRecalculate",
|
|
5159
|
+
"summary": "Session / Recalculate",
|
|
5160
|
+
"description": "Recalculate a session from its meter values: the existing charging periods are removed and rebuilt, the session metrics are recomputed, the validation rules are re-run and the billing status is updated from the result. The action runs as the token owner, who is recorded on the session edit log and on the action audit record. Requires the `Sessions.resume-billing` permission - a token whose admin does not hold it is rejected with 403, and so is a request for a session that belongs to another operator. An unknown session ID is rejected with 404. Preconditions, with the response code each failure produces: * `billingStatus` is not `completed` - otherwise 409 * Billing for the session is not owned by the upstream roaming partner - otherwise 409 * `status` is `finished`, or `pending` or `active` for a session that is already underway at the charge point - otherwise 409. Not every `pending` or `active` session qualifies: `pending` also covers a session that has not been sent to the charge point yet, and `active` also covers a session that has stopped and is waiting for the cable to be unlocked - both are rejected. * The StartTransaction message is still present in the session's communication logs - otherwise 409 * No recalculation is running for the session and the session is not locked for billing processing - otherwise 423 * `reason` is at most 1000 characters - otherwise 422 **202 means accepted, not recalculated.** The recalculation is queued and runs asynchronously, so a successful response only states that the preconditions held and the work was scheduled; the recalculation itself can still fail afterwards, in which case the session is restored to its previous state. Two outcome channels report the final result: subscribe to the `SessionUpdateNotification` callback, or poll the session resource. `billingStatus` passes through `pending` while the session is being recalculated before settling on its final value; for a session that is still underway it stays `pending` and the validation rules are not run until the session stops. Three risks are inherent to the recalculation and are not prevented by the platform: * The recalculation replays the session's communication logs. Those logs are rotated, so a session old enough to have lost them can no longer be recalculated even though every other precondition holds. * The recalculation prices the session against the tariff captured when the session started, not the tariff in effect now. Editing or deleting the tariff after the session ran does not change the recalculated amounts. * Two callers can each receive 202 for the same session. Only one recalculation takes effect; the other is skipped when it runs - because another recalculation holds the per-session lock or billing has already completed - and is recorded as a failed action audit record.",
|
|
5161
|
+
"tags": [
|
|
5162
|
+
"action / session"
|
|
5163
|
+
],
|
|
5164
|
+
"requestBody": {
|
|
5165
|
+
"content": {
|
|
5166
|
+
"application/json": {
|
|
5167
|
+
"schema": {
|
|
5168
|
+
"type": "object",
|
|
5169
|
+
"properties": {
|
|
5170
|
+
"reason": {
|
|
5171
|
+
"type": "string",
|
|
5172
|
+
"maxLength": 1000,
|
|
5173
|
+
"description": "Reason for recalculating the session, recorded on the session edit log."
|
|
5174
|
+
}
|
|
5175
|
+
}
|
|
5176
|
+
}
|
|
5177
|
+
}
|
|
5178
|
+
}
|
|
5179
|
+
},
|
|
5180
|
+
"responses": {
|
|
5181
|
+
"202": {
|
|
5182
|
+
"description": "Action accepted. The session has been queued for recalculation."
|
|
5183
|
+
},
|
|
5184
|
+
"401": {
|
|
5185
|
+
"description": "Access token is missing or invalid"
|
|
5186
|
+
},
|
|
5187
|
+
"403": {
|
|
5188
|
+
"description": "You do not have permission to perform the action"
|
|
5189
|
+
},
|
|
5190
|
+
"404": {
|
|
5191
|
+
"description": "The record is not found"
|
|
5192
|
+
},
|
|
5193
|
+
"409": {
|
|
5194
|
+
"description": "Conflict - The request cannot be completed due to a conflict with the current state of the session. Possible errors: * `billingStatus` is already `completed` * Billing for this session is owned by the upstream roaming partner * The session `status` does not allow recalculation: it is neither `finished`, nor `pending` or `active` for a session that is already underway at the charge point * The required StartTransaction message was not found in the communication logs"
|
|
5195
|
+
},
|
|
5196
|
+
"422": {
|
|
5197
|
+
"description": "The payload you provided is invalid"
|
|
5198
|
+
},
|
|
5199
|
+
"423": {
|
|
5200
|
+
"description": "Locked - The session is temporarily locked because billing is being processed for it, or because a recalculation is already running. Retry later."
|
|
5201
|
+
},
|
|
5202
|
+
"429": {
|
|
5203
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
5204
|
+
}
|
|
5205
|
+
}
|
|
5206
|
+
},
|
|
5207
|
+
{
|
|
5208
|
+
"path": "/public-api/actions/session/v1.0/{session}/resume-billing",
|
|
5209
|
+
"method": "POST",
|
|
5210
|
+
"operationId": "sessionResumeBilling",
|
|
5211
|
+
"summary": "Session / Resume billing",
|
|
5212
|
+
"description": "Resume billing for a session whose billing was suspended by a failed validation rule, completing it either with the session amounts as they are or as a free session. The action runs as the token owner, who is recorded on the session edit log and on the action audit record. Requires the `Sessions.resume-billing` permission - a token whose admin does not hold it is rejected with 403, and so is a request for a session that belongs to another operator. An unknown session ID is rejected with 404. Preconditions, with the response code each failure produces: * `billingStatus` is `suspended` - otherwise 409 * The session is no longer underway at the charge point - otherwise 409. Not every `pending` or `active` session is rejected: a `pending` session that has not been sent to the charge point yet, and an `active` session that has stopped and is waiting for the cable to be unlocked, are not underway and are accepted. * Billing for the session is not owned by the upstream roaming partner - otherwise 409 * For `free_session`: the session has no order yet, unless the platform settings allow marking a session that already has an order as free - otherwise 409 * No recalculation is running for the session and the session is not locked for billing processing - otherwise 423 * `type` holds one of the documented values and `reason` is at most 1000 characters - otherwise 422 The validation rules are not re-run, so both `type` values end with `billingStatus` set to `completed`: `bill_as_is` keeps the session amounts and charging periods as they are, and `free_session` zeroes the amount charged to the driver first. This action cannot leave the session `suspended`. When billing cannot be completed after every precondition has passed, the session is left untouched and the action answers 409.",
|
|
5213
|
+
"tags": [
|
|
5214
|
+
"action / session"
|
|
5215
|
+
],
|
|
5216
|
+
"requestBody": {
|
|
5217
|
+
"required": true,
|
|
5218
|
+
"content": {
|
|
5219
|
+
"application/json": {
|
|
5220
|
+
"schema": {
|
|
5221
|
+
"type": "object",
|
|
5222
|
+
"properties": {
|
|
5223
|
+
"type": {
|
|
5224
|
+
"type": "string",
|
|
5225
|
+
"enum": [
|
|
5226
|
+
"bill_as_is",
|
|
5227
|
+
"free_session"
|
|
5228
|
+
],
|
|
5229
|
+
"example": "bill_as_is",
|
|
5230
|
+
"description": "How billing is resumed for a session whose billing is suspended: - **bill_as_is**: Complete billing with the session amounts exactly as they are, leaving the charging periods untouched - **free_session**: Mark the session as free, which zeroes the amount charged to the driver, and then complete billing. This is irreversible - the amount the driver would have been charged is kept only as the session's previous total amount for audit purposes and cannot be restored by another action"
|
|
5231
|
+
},
|
|
5232
|
+
"reason": {
|
|
5233
|
+
"type": "string",
|
|
5234
|
+
"maxLength": 1000,
|
|
5235
|
+
"description": "Reason for resuming billing, recorded on the session edit log."
|
|
5236
|
+
}
|
|
5237
|
+
},
|
|
5238
|
+
"required": [
|
|
5239
|
+
"type"
|
|
5240
|
+
]
|
|
5241
|
+
}
|
|
5242
|
+
}
|
|
5243
|
+
}
|
|
5244
|
+
},
|
|
5245
|
+
"responses": {
|
|
5246
|
+
"202": {
|
|
5247
|
+
"description": "Action accepted. Billing for the session has been resumed."
|
|
5248
|
+
},
|
|
5249
|
+
"401": {
|
|
5250
|
+
"description": "Access token is missing or invalid"
|
|
5251
|
+
},
|
|
5252
|
+
"403": {
|
|
5253
|
+
"description": "You do not have permission to perform the action"
|
|
5254
|
+
},
|
|
5255
|
+
"404": {
|
|
5256
|
+
"description": "The record is not found"
|
|
5257
|
+
},
|
|
5258
|
+
"409": {
|
|
5259
|
+
"description": "Conflict - The request cannot be completed due to a conflict with the current state of the session. Possible errors: * `billingStatus` is not `suspended` * The session is still underway at the charge point * Billing for this session is owned by the upstream roaming partner * The session already has an order and cannot be marked as free * Billing could not be resumed"
|
|
5260
|
+
},
|
|
5261
|
+
"422": {
|
|
5262
|
+
"description": "The payload you provided is invalid"
|
|
5263
|
+
},
|
|
5264
|
+
"423": {
|
|
5265
|
+
"description": "Locked - The session is temporarily locked because billing is being processed for it, or because a recalculation is already running. Retry later."
|
|
5266
|
+
},
|
|
4991
5267
|
"429": {
|
|
4992
5268
|
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
4993
5269
|
}
|
|
@@ -5046,7 +5322,7 @@
|
|
|
5046
5322
|
"method": "POST",
|
|
5047
5323
|
"operationId": "sessionSetCustomFields",
|
|
5048
5324
|
"summary": "Session / set custom fields",
|
|
5049
|
-
"description": "⚠️ Experimental endpoint — not yet a stable contract. This action 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. Set the applicable custom field values of a session without changing any other session properties. This action requires permission to view the session and the `Sessions.update-custom-fields` permission.
|
|
5325
|
+
"description": "⚠️ Experimental endpoint — not yet a stable contract. This action 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. Set the applicable custom field values of a session without changing any other session properties. This action requires permission to view the session and the `Sessions.update-custom-fields` permission. Send a JSON object containing the required `customFields` object. Omitted identifiers remain unchanged, while `null` clears the corresponding value. When custom fields are enabled for sessions, an empty object succeeds as a no-op. Invalid or unavailable identifiers, invalid values, and disabled custom fields return `422` validation errors, and no submitted values are changed. A `404` response means the session was not found.",
|
|
5050
5326
|
"tags": [
|
|
5051
5327
|
"action / session"
|
|
5052
5328
|
],
|
|
@@ -6171,7 +6447,7 @@
|
|
|
6171
6447
|
"method": "POST",
|
|
6172
6448
|
"operationId": "userCancelSubscription",
|
|
6173
6449
|
"summary": "User / Cancel subscription",
|
|
6174
|
-
"description": "
|
|
6450
|
+
"description": "Cancels renewal of the user's subscription. The subscription and its benefits remain active until the current billing period ends. Use the terminate subscription action when benefits must end immediately.",
|
|
6175
6451
|
"tags": [
|
|
6176
6452
|
"action / user"
|
|
6177
6453
|
],
|
|
@@ -6457,6 +6733,59 @@
|
|
|
6457
6733
|
}
|
|
6458
6734
|
}
|
|
6459
6735
|
},
|
|
6736
|
+
{
|
|
6737
|
+
"path": "/public-api/actions/users/v1.0/{user}/terminate-subscription",
|
|
6738
|
+
"method": "POST",
|
|
6739
|
+
"operationId": "userTerminateSubscription",
|
|
6740
|
+
"summary": "User / Terminate subscription",
|
|
6741
|
+
"description": "Permanently terminates the user's current subscription. This action is irreversible and any outstanding collection is processed asynchronously.",
|
|
6742
|
+
"tags": [
|
|
6743
|
+
"action / user"
|
|
6744
|
+
],
|
|
6745
|
+
"requestBody": {
|
|
6746
|
+
"required": true,
|
|
6747
|
+
"content": {
|
|
6748
|
+
"application/json": {
|
|
6749
|
+
"schema": {
|
|
6750
|
+
"type": "object",
|
|
6751
|
+
"properties": {
|
|
6752
|
+
"reason": {
|
|
6753
|
+
"type": "string",
|
|
6754
|
+
"maxLength": 255,
|
|
6755
|
+
"description": "The reason for the termination."
|
|
6756
|
+
}
|
|
6757
|
+
},
|
|
6758
|
+
"required": [
|
|
6759
|
+
"reason"
|
|
6760
|
+
]
|
|
6761
|
+
}
|
|
6762
|
+
}
|
|
6763
|
+
}
|
|
6764
|
+
},
|
|
6765
|
+
"responses": {
|
|
6766
|
+
"202": {
|
|
6767
|
+
"description": "Action accepted"
|
|
6768
|
+
},
|
|
6769
|
+
"401": {
|
|
6770
|
+
"description": "Access token is missing or invalid"
|
|
6771
|
+
},
|
|
6772
|
+
"403": {
|
|
6773
|
+
"description": "You do not have permission to perform the action"
|
|
6774
|
+
},
|
|
6775
|
+
"404": {
|
|
6776
|
+
"description": "The record is not found"
|
|
6777
|
+
},
|
|
6778
|
+
"409": {
|
|
6779
|
+
"description": "The subscription cannot be terminated in its current state"
|
|
6780
|
+
},
|
|
6781
|
+
"422": {
|
|
6782
|
+
"description": "The payload you provided is invalid"
|
|
6783
|
+
},
|
|
6784
|
+
"429": {
|
|
6785
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
6786
|
+
}
|
|
6787
|
+
}
|
|
6788
|
+
},
|
|
6460
6789
|
{
|
|
6461
6790
|
"path": "/public-api/actions/users/v2.0/{user}/export-all-private-data",
|
|
6462
6791
|
"method": "GET",
|
|
@@ -8471,11 +8800,15 @@
|
|
|
8471
8800
|
"chaoji",
|
|
8472
8801
|
"nema-6-30",
|
|
8473
8802
|
"nema-6-50",
|
|
8803
|
+
"nema-10-30",
|
|
8804
|
+
"nema-10-50",
|
|
8805
|
+
"nema-14-30",
|
|
8806
|
+
"nema-14-50",
|
|
8474
8807
|
"mcs",
|
|
8475
8808
|
"unknown"
|
|
8476
8809
|
],
|
|
8477
8810
|
"nullable": true,
|
|
8478
|
-
"description": "Type of connector available on the EVSE: - **type1**: Type 1 connector (SAE J1772 AC) - **type2**: Type 2 connector (IEC 62196-2 AC) - **type3**: Type 3 connector (IEC 62196-2 AC) - **chademo**: CHAdeMO DC fast charging - **ccs1**: Combined Charging System 1 (CCS1/Combo 1) - **ccs2**: Combined Charging System 2 (CCS2/Combo 2) - **schuko**: Standard European household socket - **nacs**: North American Charging Standard (Tesla) - **cee16**: CEE 16A industrial connector - **cee32**: CEE 32A industrial connector - **j1772**: SAE J1772 connector - **inductive**: Inductive/wireless charging - **nema-5-20**: Domestic M NEMA 5-20 Socket - **type-e-french**: French Type E socket - **type-g-british**: British Type G socket - **type-j-swiss**: Swiss Type J socket - **avcon**: AVCON connector (Australian standard) - **gb-t-ac**: GB/T AC connector (Chinese standard) - **gb-t-dc**: GB/T DC connector (Chinese standard) - **chaoji**: ChaoJi (CHAdeMO 3.0) - **nema-6-30**: NEMA 6-30 - **nema-6-50**: NEMA 6-50 - **mcs**: Megawatt Charging System (MCS) - **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows."
|
|
8811
|
+
"description": "Type of connector available on the EVSE: - **type1**: Type 1 connector (SAE J1772 AC) - **type2**: Type 2 connector (IEC 62196-2 AC) - **type3**: Type 3 connector (IEC 62196-2 AC) - **chademo**: CHAdeMO DC fast charging - **ccs1**: Combined Charging System 1 (CCS1/Combo 1) - **ccs2**: Combined Charging System 2 (CCS2/Combo 2) - **schuko**: Standard European household socket - **nacs**: North American Charging Standard (Tesla) - **cee16**: CEE 16A industrial connector - **cee32**: CEE 32A industrial connector - **j1772**: SAE J1772 connector - **inductive**: Inductive/wireless charging - **nema-5-20**: Domestic M NEMA 5-20 Socket - **type-e-french**: French Type E socket - **type-g-british**: British Type G socket - **type-j-swiss**: Swiss Type J socket - **avcon**: AVCON connector (Australian standard) - **gb-t-ac**: GB/T AC connector (Chinese standard) - **gb-t-dc**: GB/T DC connector (Chinese standard) - **chaoji**: ChaoJi (CHAdeMO 3.0) - **nema-6-30**: NEMA 6-30 - **nema-6-50**: NEMA 6-50 - **nema-10-30**: NEMA 10-30 - **nema-10-50**: NEMA 10-50 - **nema-14-30**: NEMA 14-30 - **nema-14-50**: NEMA 14-50 - **mcs**: Megawatt Charging System (MCS) - **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows."
|
|
8479
8812
|
}
|
|
8480
8813
|
},
|
|
8481
8814
|
"description": "Criteria for automatic EVSE selection based on technical requirements. Ignored when evseId is explicitly provided. Response behavior: Only present when EVSE criteria were specified in the request. Omitted when evseId was provided or no criteria were specified."
|
|
@@ -12561,10 +12894,14 @@
|
|
|
12561
12894
|
"chaoji",
|
|
12562
12895
|
"nema-6-30",
|
|
12563
12896
|
"nema-6-50",
|
|
12897
|
+
"nema-10-30",
|
|
12898
|
+
"nema-10-50",
|
|
12899
|
+
"nema-14-30",
|
|
12900
|
+
"nema-14-50",
|
|
12564
12901
|
"mcs",
|
|
12565
12902
|
"unknown"
|
|
12566
12903
|
],
|
|
12567
|
-
"description": "Type of connector available on the EVSE: - **type1**: Type 1 connector (SAE J1772 AC) - **type2**: Type 2 connector (IEC 62196-2 AC) - **type3**: Type 3 connector (IEC 62196-2 AC) - **chademo**: CHAdeMO DC fast charging - **ccs1**: Combined Charging System 1 (CCS1/Combo 1) - **ccs2**: Combined Charging System 2 (CCS2/Combo 2) - **schuko**: Standard European household socket - **nacs**: North American Charging Standard (Tesla) - **cee16**: CEE 16A industrial connector - **cee32**: CEE 32A industrial connector - **j1772**: SAE J1772 connector - **inductive**: Inductive/wireless charging - **nema-5-20**: Domestic M NEMA 5-20 Socket - **type-e-french**: French Type E socket - **type-g-british**: British Type G socket - **type-j-swiss**: Swiss Type J socket - **avcon**: AVCON connector (Australian standard) - **gb-t-ac**: GB/T AC connector (Chinese standard) - **gb-t-dc**: GB/T DC connector (Chinese standard) - **chaoji**: ChaoJi (CHAdeMO 3.0) - **nema-6-30**: NEMA 6-30 - **nema-6-50**: NEMA 6-50 - **mcs**: Megawatt Charging System (MCS) - **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows."
|
|
12904
|
+
"description": "Type of connector available on the EVSE: - **type1**: Type 1 connector (SAE J1772 AC) - **type2**: Type 2 connector (IEC 62196-2 AC) - **type3**: Type 3 connector (IEC 62196-2 AC) - **chademo**: CHAdeMO DC fast charging - **ccs1**: Combined Charging System 1 (CCS1/Combo 1) - **ccs2**: Combined Charging System 2 (CCS2/Combo 2) - **schuko**: Standard European household socket - **nacs**: North American Charging Standard (Tesla) - **cee16**: CEE 16A industrial connector - **cee32**: CEE 32A industrial connector - **j1772**: SAE J1772 connector - **inductive**: Inductive/wireless charging - **nema-5-20**: Domestic M NEMA 5-20 Socket - **type-e-french**: French Type E socket - **type-g-british**: British Type G socket - **type-j-swiss**: Swiss Type J socket - **avcon**: AVCON connector (Australian standard) - **gb-t-ac**: GB/T AC connector (Chinese standard) - **gb-t-dc**: GB/T DC connector (Chinese standard) - **chaoji**: ChaoJi (CHAdeMO 3.0) - **nema-6-30**: NEMA 6-30 - **nema-6-50**: NEMA 6-50 - **nema-10-30**: NEMA 10-30 - **nema-10-50**: NEMA 10-50 - **nema-14-30**: NEMA 14-30 - **nema-14-50**: NEMA 14-50 - **mcs**: Megawatt Charging System (MCS) - **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows."
|
|
12568
12905
|
},
|
|
12569
12906
|
"format": {
|
|
12570
12907
|
"type": "string",
|
|
@@ -12704,10 +13041,14 @@
|
|
|
12704
13041
|
"chaoji",
|
|
12705
13042
|
"nema-6-30",
|
|
12706
13043
|
"nema-6-50",
|
|
13044
|
+
"nema-10-30",
|
|
13045
|
+
"nema-10-50",
|
|
13046
|
+
"nema-14-30",
|
|
13047
|
+
"nema-14-50",
|
|
12707
13048
|
"mcs",
|
|
12708
13049
|
"unknown"
|
|
12709
13050
|
],
|
|
12710
|
-
"description": "Type of connector available on the EVSE: - **type1**: Type 1 connector (SAE J1772 AC) - **type2**: Type 2 connector (IEC 62196-2 AC) - **type3**: Type 3 connector (IEC 62196-2 AC) - **chademo**: CHAdeMO DC fast charging - **ccs1**: Combined Charging System 1 (CCS1/Combo 1) - **ccs2**: Combined Charging System 2 (CCS2/Combo 2) - **schuko**: Standard European household socket - **nacs**: North American Charging Standard (Tesla) - **cee16**: CEE 16A industrial connector - **cee32**: CEE 32A industrial connector - **j1772**: SAE J1772 connector - **inductive**: Inductive/wireless charging - **nema-5-20**: Domestic M NEMA 5-20 Socket - **type-e-french**: French Type E socket - **type-g-british**: British Type G socket - **type-j-swiss**: Swiss Type J socket - **avcon**: AVCON connector (Australian standard) - **gb-t-ac**: GB/T AC connector (Chinese standard) - **gb-t-dc**: GB/T DC connector (Chinese standard) - **chaoji**: ChaoJi (CHAdeMO 3.0) - **nema-6-30**: NEMA 6-30 - **nema-6-50**: NEMA 6-50 - **mcs**: Megawatt Charging System (MCS) - **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows."
|
|
13051
|
+
"description": "Type of connector available on the EVSE: - **type1**: Type 1 connector (SAE J1772 AC) - **type2**: Type 2 connector (IEC 62196-2 AC) - **type3**: Type 3 connector (IEC 62196-2 AC) - **chademo**: CHAdeMO DC fast charging - **ccs1**: Combined Charging System 1 (CCS1/Combo 1) - **ccs2**: Combined Charging System 2 (CCS2/Combo 2) - **schuko**: Standard European household socket - **nacs**: North American Charging Standard (Tesla) - **cee16**: CEE 16A industrial connector - **cee32**: CEE 32A industrial connector - **j1772**: SAE J1772 connector - **inductive**: Inductive/wireless charging - **nema-5-20**: Domestic M NEMA 5-20 Socket - **type-e-french**: French Type E socket - **type-g-british**: British Type G socket - **type-j-swiss**: Swiss Type J socket - **avcon**: AVCON connector (Australian standard) - **gb-t-ac**: GB/T AC connector (Chinese standard) - **gb-t-dc**: GB/T DC connector (Chinese standard) - **chaoji**: ChaoJi (CHAdeMO 3.0) - **nema-6-30**: NEMA 6-30 - **nema-6-50**: NEMA 6-50 - **nema-10-30**: NEMA 10-30 - **nema-10-50**: NEMA 10-50 - **nema-14-30**: NEMA 14-30 - **nema-14-50**: NEMA 14-50 - **mcs**: Megawatt Charging System (MCS) - **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows."
|
|
12711
13052
|
},
|
|
12712
13053
|
"format": {
|
|
12713
13054
|
"type": "string",
|
|
@@ -23098,10 +23439,14 @@
|
|
|
23098
23439
|
"chaoji",
|
|
23099
23440
|
"nema-6-30",
|
|
23100
23441
|
"nema-6-50",
|
|
23442
|
+
"nema-10-30",
|
|
23443
|
+
"nema-10-50",
|
|
23444
|
+
"nema-14-30",
|
|
23445
|
+
"nema-14-50",
|
|
23101
23446
|
"mcs",
|
|
23102
23447
|
"unknown"
|
|
23103
23448
|
],
|
|
23104
|
-
"description": "Type of connector available on the EVSE: - **type1**: Type 1 connector (SAE J1772 AC) - **type2**: Type 2 connector (IEC 62196-2 AC) - **type3**: Type 3 connector (IEC 62196-2 AC) - **chademo**: CHAdeMO DC fast charging - **ccs1**: Combined Charging System 1 (CCS1/Combo 1) - **ccs2**: Combined Charging System 2 (CCS2/Combo 2) - **catarc**: CATARC connector (Chinese standard) - **schuko**: Standard European household socket - **nacs**: North American Charging Standard (Tesla) - **cee16**: CEE 16A industrial connector - **cee32**: CEE 32A industrial connector - **j1772**: SAE J1772 connector - **inductive**: Inductive/wireless charging - **nema-5-20**: Domestic M NEMA 5-20 Socket - **type-e-french**: French Type E socket - **type-g-british**: British Type G socket - **type-j-swiss**: Swiss Type J socket - **avcon**: AVCON connector (Australian standard) - **chaoji**: ChaoJi (CHAdeMO 3.0) - **nema-6-30**: NEMA 6-30 - **nema-6-50**: NEMA 6-50 - **mcs**: Megawatt Charging System (MCS) - **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows."
|
|
23449
|
+
"description": "Type of connector available on the EVSE: - **type1**: Type 1 connector (SAE J1772 AC) - **type2**: Type 2 connector (IEC 62196-2 AC) - **type3**: Type 3 connector (IEC 62196-2 AC) - **chademo**: CHAdeMO DC fast charging - **ccs1**: Combined Charging System 1 (CCS1/Combo 1) - **ccs2**: Combined Charging System 2 (CCS2/Combo 2) - **catarc**: CATARC connector (Chinese standard) - **schuko**: Standard European household socket - **nacs**: North American Charging Standard (Tesla) - **cee16**: CEE 16A industrial connector - **cee32**: CEE 32A industrial connector - **j1772**: SAE J1772 connector - **inductive**: Inductive/wireless charging - **nema-5-20**: Domestic M NEMA 5-20 Socket - **type-e-french**: French Type E socket - **type-g-british**: British Type G socket - **type-j-swiss**: Swiss Type J socket - **avcon**: AVCON connector (Australian standard) - **chaoji**: ChaoJi (CHAdeMO 3.0) - **nema-6-30**: NEMA 6-30 - **nema-6-50**: NEMA 6-50 - **nema-10-30**: NEMA 10-30 - **nema-10-50**: NEMA 10-50 - **nema-14-30**: NEMA 14-30 - **nema-14-50**: NEMA 14-50 - **mcs**: Megawatt Charging System (MCS) - **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows."
|
|
23105
23450
|
},
|
|
23106
23451
|
{
|
|
23107
23452
|
"type": "string",
|
|
@@ -27696,7 +28041,7 @@
|
|
|
27696
28041
|
"non_issue"
|
|
27697
28042
|
],
|
|
27698
28043
|
"example": "investigating",
|
|
27699
|
-
"description": "Issue status: - **auto_recovery_in_progress**: Issue is in automatic recovery process (preparation state) - **information_collection_in_progress**:
|
|
28044
|
+
"description": "Issue status: - **auto_recovery_in_progress**: Issue is in automatic recovery process (preparation state) - **information_collection_in_progress**: **Deprecated.** Retained for backward compatibility only. Never emitted by the platform and rejected with a validation error when set via the API. - **new**: Issue has been reported and not yet investigated (open state) - **investigating**: Issue is currently being investigated (open state) - **resolution_in_progress**: Resolution actions are being applied (open state) - **resolved**: Issue has been resolved successfully (closed state) - **wont_fix**: Issue will not be fixed (closed state) - **non_issue**: Reported issue determined to not be an actual issue (closed state)"
|
|
27700
28045
|
},
|
|
27701
28046
|
"workflowState": {
|
|
27702
28047
|
"type": "string",
|
|
@@ -27827,7 +28172,7 @@
|
|
|
27827
28172
|
"method": "POST",
|
|
27828
28173
|
"operationId": "issuesCreate",
|
|
27829
28174
|
"summary": "Issues / Create",
|
|
27830
|
-
"description": "Create a new issue. Note -
|
|
28175
|
+
"description": "Create a new issue. Note - the system-controlled status auto_recovery_in_progress cannot be set via API.",
|
|
27831
28176
|
"tags": [
|
|
27832
28177
|
"resource / issues"
|
|
27833
28178
|
],
|
|
@@ -27905,7 +28250,7 @@
|
|
|
27905
28250
|
],
|
|
27906
28251
|
"default": "new",
|
|
27907
28252
|
"example": "investigating",
|
|
27908
|
-
"description": "Issue status: - **auto_recovery_in_progress**: Issue is in automatic recovery process (preparation state) - **information_collection_in_progress**:
|
|
28253
|
+
"description": "Issue status: - **auto_recovery_in_progress**: Issue is in automatic recovery process (preparation state) - **information_collection_in_progress**: **Deprecated.** Retained for backward compatibility only. Never emitted by the platform and rejected with a validation error when set via the API. - **new**: Issue has been reported and not yet investigated (open state) - **investigating**: Issue is currently being investigated (open state) - **resolution_in_progress**: Resolution actions are being applied (open state) - **resolved**: Issue has been resolved successfully (closed state) - **wont_fix**: Issue will not be fixed (closed state) - **non_issue**: Reported issue determined to not be an actual issue (closed state)"
|
|
27909
28254
|
},
|
|
27910
28255
|
"externalId": {
|
|
27911
28256
|
"type": "string",
|
|
@@ -27990,6 +28335,7 @@
|
|
|
27990
28335
|
"parameters": {
|
|
27991
28336
|
"query": {
|
|
27992
28337
|
"include": {
|
|
28338
|
+
"description": "**This parameter is deprecated. It has no effect because `relatedResources` is always returned.** Relations to include in the response.",
|
|
27993
28339
|
"schema": {
|
|
27994
28340
|
"type": "array",
|
|
27995
28341
|
"items": {
|
|
@@ -28052,7 +28398,7 @@
|
|
|
28052
28398
|
"method": "PATCH",
|
|
28053
28399
|
"operationId": "issueUpdate",
|
|
28054
28400
|
"summary": "Issue / Update",
|
|
28055
|
-
"description": "Update an existing issue. Supports partial updates (PATCH semantics). Notes: - keyResource cannot be updated after creation - Cannot set
|
|
28401
|
+
"description": "Update an existing issue. Supports partial updates (PATCH semantics). Notes: - keyResource cannot be updated after creation - Cannot set the system-controlled status auto_recovery_in_progress - When setting status to resolved, wontFix, or nonIssue, resolutionDetails is required",
|
|
28056
28402
|
"tags": [
|
|
28057
28403
|
"resource / issues"
|
|
28058
28404
|
],
|
|
@@ -28085,7 +28431,7 @@
|
|
|
28085
28431
|
"non_issue"
|
|
28086
28432
|
],
|
|
28087
28433
|
"example": "investigating",
|
|
28088
|
-
"description": "Issue status: - **auto_recovery_in_progress**: Issue is in automatic recovery process (preparation state) - **information_collection_in_progress**:
|
|
28434
|
+
"description": "Issue status: - **auto_recovery_in_progress**: Issue is in automatic recovery process (preparation state) - **information_collection_in_progress**: **Deprecated.** Retained for backward compatibility only. Never emitted by the platform and rejected with a validation error when set via the API. - **new**: Issue has been reported and not yet investigated (open state) - **investigating**: Issue is currently being investigated (open state) - **resolution_in_progress**: Resolution actions are being applied (open state) - **resolved**: Issue has been resolved successfully (closed state) - **wont_fix**: Issue will not be fixed (closed state) - **non_issue**: Reported issue determined to not be an actual issue (closed state)"
|
|
28089
28435
|
},
|
|
28090
28436
|
"category": {
|
|
28091
28437
|
"type": "string",
|
|
@@ -38852,7 +39198,9 @@
|
|
|
38852
39198
|
"type": "string",
|
|
38853
39199
|
"enum": [
|
|
38854
39200
|
"en",
|
|
39201
|
+
"be",
|
|
38855
39202
|
"bg",
|
|
39203
|
+
"bn",
|
|
38856
39204
|
"mk",
|
|
38857
39205
|
"el",
|
|
38858
39206
|
"zh-CN",
|
|
@@ -38878,6 +39226,7 @@
|
|
|
38878
39226
|
"ms",
|
|
38879
39227
|
"cy",
|
|
38880
39228
|
"sr",
|
|
39229
|
+
"sw",
|
|
38881
39230
|
"fr",
|
|
38882
39231
|
"fr-MA",
|
|
38883
39232
|
"ro",
|
|
@@ -38903,10 +39252,12 @@
|
|
|
38903
39252
|
"ka",
|
|
38904
39253
|
"af",
|
|
38905
39254
|
"hi",
|
|
39255
|
+
"hy",
|
|
38906
39256
|
"de-CH",
|
|
38907
39257
|
"fr-CH",
|
|
38908
39258
|
"it-CH",
|
|
38909
39259
|
"en-GB",
|
|
39260
|
+
"mt",
|
|
38910
39261
|
"tl-PH"
|
|
38911
39262
|
],
|
|
38912
39263
|
"description": "IETF language tag."
|
|
@@ -39657,7 +40008,7 @@
|
|
|
39657
40008
|
"customFields": {
|
|
39658
40009
|
"type": "string",
|
|
39659
40010
|
"example": "filter[customFields.invoiceReference]=INV-42",
|
|
39660
|
-
"description": "Filter a custom-field host resource by custom fields defined for that resource. Add one literal `customFields.<identifier>` key to the existing `filter` object for each criterion. The identifier suffix is administrator-defined and is never enumerated in this schema or generated per tenant. Use a scalar for boolean, text, email, and URL fields. Boolean accepts booleans and integer `1` or `0`, as well as the strings `\"true\"`, `\"false\"`, `\"1\"`, and `\"0\"`. Text, email, and URL accept strings and use contains matching that is case- and accent-insensitive; backslashes, `%`, and `_` are treated literally rather than as pattern syntax. Use `from`, `to`, or both below the dotted key for number, date, and date-time fields. Both bounds are inclusive. Number bounds are decimal strings from `-99999999999999.999999` through `99999999999999.999999` with at most six decimal places; comparisons preserve submitted and stored decimal precision without rounding. Date bounds use `YYYY-MM-DD` and compare calendar dates without time-zone conversion. Date-time bounds use ISO 8601; offsets are normalized to UTC, and an omitted offset is interpreted as UTC. Multiple identifiers combine with AND. Empty scalar criteria and ranges whose bounds are empty are ignored. An identifier resolves only to its current active definition, so values belonging to a deleted definition never match if its identifier is reused. Operator-scoped filters match only host records whose current operator owner is assigned to the field; retained inapplicable values are excluded before pagination.
|
|
40011
|
+
"description": "Filter a custom-field host resource by custom fields defined for that resource. Add one literal `customFields.<identifier>` key to the existing `filter` object for each criterion. The identifier suffix is administrator-defined and is never enumerated in this schema or generated per tenant. Use a scalar for boolean, text, email, and URL fields. Boolean accepts booleans and integer `1` or `0`, as well as the strings `\"true\"`, `\"false\"`, `\"1\"`, and `\"0\"`. Text, email, and URL accept strings and use contains matching that is case- and accent-insensitive; backslashes, `%`, and `_` are treated literally rather than as pattern syntax. Use `from`, `to`, or both below the dotted key for number, date, and date-time fields. Both bounds are inclusive. Number bounds are decimal strings from `-99999999999999.999999` through `99999999999999.999999` with at most six decimal places; comparisons preserve submitted and stored decimal precision without rounding. Date bounds use `YYYY-MM-DD` and compare calendar dates without time-zone conversion. Date-time bounds use ISO 8601; offsets are normalized to UTC, and an omitted offset is interpreted as UTC. Multiple identifiers combine with AND. Empty scalar criteria and ranges whose bounds are empty are ignored. An identifier resolves only to its current active definition, so values belonging to a deleted definition never match if its identifier is reused. Operator-scoped filters match only host records whose current operator owner is assigned to the field; retained inapplicable values are excluded before pagination. Criteria for unknown, inaccessible, disabled, or deleted custom fields, and for fields whose filtering is disabled or whose type does not support filtering, are ignored; the other criteria in the same request still apply. For a filterable field, malformed objects or values, a criterion shape that is invalid for the field type, and a range whose `from` bound is greater than its `to` bound return `422`. Custom-field filters apply only to resource listings. They do not participate in search and do not depend on an `include` parameter; any unrelated includes are defined by the host resource. Examples: `filter[customFields.invoiceReference]=INV-42` and `filter[customFields.capacity][from]=10&filter[customFields.capacity][to]=20`. URL-encode the query keys and values when sending the request."
|
|
39661
40012
|
},
|
|
39662
40013
|
"externalId": {
|
|
39663
40014
|
"type": "string"
|
|
@@ -46633,11 +46984,8 @@
|
|
|
46633
46984
|
"403": {
|
|
46634
46985
|
"description": "You do not have permission to perform the action"
|
|
46635
46986
|
},
|
|
46636
|
-
"404": {
|
|
46637
|
-
"description": "The requested custom field filter identifier is unavailable"
|
|
46638
|
-
},
|
|
46639
46987
|
"422": {
|
|
46640
|
-
"description": "The request contains invalid criteria, including malformed
|
|
46988
|
+
"description": "The request contains invalid criteria, including malformed custom field filter values"
|
|
46641
46989
|
},
|
|
46642
46990
|
"429": {
|
|
46643
46991
|
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
@@ -49847,6 +50195,11 @@
|
|
|
49847
50195
|
"type": "string",
|
|
49848
50196
|
"format": "date",
|
|
49849
50197
|
"description": "Return records whose period overlaps on or before this date."
|
|
50198
|
+
},
|
|
50199
|
+
"customFields": {
|
|
50200
|
+
"type": "string",
|
|
50201
|
+
"example": "filter[customFields.invoiceReference]=INV-42",
|
|
50202
|
+
"description": "Filter a custom-field host resource by custom fields defined for that resource. Add one literal `customFields.<identifier>` key to the existing `filter` object for each criterion. The identifier suffix is administrator-defined and is never enumerated in this schema or generated per tenant. Use a scalar for boolean, text, email, and URL fields. Boolean accepts booleans and integer `1` or `0`, as well as the strings `\"true\"`, `\"false\"`, `\"1\"`, and `\"0\"`. Text, email, and URL accept strings and use contains matching that is case- and accent-insensitive; backslashes, `%`, and `_` are treated literally rather than as pattern syntax. Use `from`, `to`, or both below the dotted key for number, date, and date-time fields. Both bounds are inclusive. Number bounds are decimal strings from `-99999999999999.999999` through `99999999999999.999999` with at most six decimal places; comparisons preserve submitted and stored decimal precision without rounding. Date bounds use `YYYY-MM-DD` and compare calendar dates without time-zone conversion. Date-time bounds use ISO 8601; offsets are normalized to UTC, and an omitted offset is interpreted as UTC. Multiple identifiers combine with AND. Empty scalar criteria and ranges whose bounds are empty are ignored. An identifier resolves only to its current active definition, so values belonging to a deleted definition never match if its identifier is reused. Operator-scoped filters match only host records whose current operator owner is assigned to the field; retained inapplicable values are excluded before pagination. Criteria for unknown, inaccessible, disabled, or deleted custom fields, and for fields whose filtering is disabled or whose type does not support filtering, are ignored; the other criteria in the same request still apply. For a filterable field, malformed objects or values, a criterion shape that is invalid for the field type, and a range whose `from` bound is greater than its `to` bound return `422`. Custom-field filters apply only to resource listings. They do not participate in search and do not depend on an `include` parameter; any unrelated includes are defined by the host resource. Examples: `filter[customFields.invoiceReference]=INV-42` and `filter[customFields.capacity][from]=10&filter[customFields.capacity][to]=20`. URL-encode the query keys and values when sending the request."
|
|
49850
50203
|
}
|
|
49851
50204
|
}
|
|
49852
50205
|
}
|
|
@@ -49906,7 +50259,7 @@
|
|
|
49906
50259
|
"method": "GET",
|
|
49907
50260
|
"operationId": "reimbursementReportsListing",
|
|
49908
50261
|
"summary": "Reimbursement reports / Listing",
|
|
49909
|
-
"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. Get all reimbursement reports. A report is a periodic aggregate that groups the reimbursement records sharing a beneficiary, payer and period, and exposes their totals. For the per-session entries behind those totals, use the reimbursement records listing.",
|
|
50262
|
+
"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. Get all reimbursement reports. A report is a periodic aggregate that groups the reimbursement records sharing a beneficiary, payer and period, and exposes their totals. For the per-session entries behind those totals, use the reimbursement records listing. Custom-field criteria use `filter[customFields.<identifier>]` keys and compose with the ordinary report filters before cursor pagination. Use scalar values for exact or text criteria and `from`, `to`, or both below the dotted key for ranges. Boolean `false` and integer `0` are active criteria; empty or whitespace-only scalars and ranges with no filled bounds are ignored. Criteria for unknown, disabled, deleted, or non-filterable custom fields are also ignored, while the other criteria in the same request still apply. A malformed value for a filterable custom field returns `422`. Examples: `filter[customFields.invoiceReference]=INV-42`, `filter[customFields.capacity][from]=10`, and `filter[customFields.capacity][from]=10&filter[customFields.capacity][to]=20`. Custom fields do not participate in search.",
|
|
49910
50263
|
"tags": [
|
|
49911
50264
|
"resource / reimbursement reports"
|
|
49912
50265
|
],
|
|
@@ -49931,11 +50284,10 @@
|
|
|
49931
50284
|
"type": "string",
|
|
49932
50285
|
"enum": [
|
|
49933
50286
|
"company",
|
|
49934
|
-
"private",
|
|
49935
50287
|
"public"
|
|
49936
50288
|
],
|
|
49937
50289
|
"example": "company",
|
|
49938
|
-
"description": "The
|
|
50290
|
+
"description": "The reimbursement classification represented by a report: - **company**: The report has a partner payer. - **public**: The report has an operator payer."
|
|
49939
50291
|
},
|
|
49940
50292
|
"beneficiaryUserId": {
|
|
49941
50293
|
"type": "integer"
|
|
@@ -49961,6 +50313,11 @@
|
|
|
49961
50313
|
"type": "string",
|
|
49962
50314
|
"format": "date",
|
|
49963
50315
|
"description": "Return reports whose period overlaps on or before this date."
|
|
50316
|
+
},
|
|
50317
|
+
"customFields": {
|
|
50318
|
+
"type": "object",
|
|
50319
|
+
"additionalProperties": true,
|
|
50320
|
+
"description": "Map of administrator-defined custom field identifiers to filter values. Send each entry as `filter[customFields.<identifier>]`."
|
|
49964
50321
|
}
|
|
49965
50322
|
}
|
|
49966
50323
|
}
|
|
@@ -49980,6 +50337,9 @@
|
|
|
49980
50337
|
"403": {
|
|
49981
50338
|
"description": "You do not have permission to perform the action"
|
|
49982
50339
|
},
|
|
50340
|
+
"404": {
|
|
50341
|
+
"description": "The record is not found"
|
|
50342
|
+
},
|
|
49983
50343
|
"422": {
|
|
49984
50344
|
"description": "The payload you provided is invalid"
|
|
49985
50345
|
},
|
|
@@ -52844,7 +53204,7 @@
|
|
|
52844
53204
|
"customFields": {
|
|
52845
53205
|
"type": "string",
|
|
52846
53206
|
"example": "filter[customFields.invoiceReference]=INV-42",
|
|
52847
|
-
"description": "Filter a custom-field host resource by custom fields defined for that resource. Add one literal `customFields.<identifier>` key to the existing `filter` object for each criterion. The identifier suffix is administrator-defined and is never enumerated in this schema or generated per tenant. Use a scalar for boolean, text, email, and URL fields. Boolean accepts booleans and integer `1` or `0`, as well as the strings `\"true\"`, `\"false\"`, `\"1\"`, and `\"0\"`. Text, email, and URL accept strings and use contains matching that is case- and accent-insensitive; backslashes, `%`, and `_` are treated literally rather than as pattern syntax. Use `from`, `to`, or both below the dotted key for number, date, and date-time fields. Both bounds are inclusive. Number bounds are decimal strings from `-99999999999999.999999` through `99999999999999.999999` with at most six decimal places; comparisons preserve submitted and stored decimal precision without rounding. Date bounds use `YYYY-MM-DD` and compare calendar dates without time-zone conversion. Date-time bounds use ISO 8601; offsets are normalized to UTC, and an omitted offset is interpreted as UTC. Multiple identifiers combine with AND. Empty scalar criteria and ranges whose bounds are empty are ignored. An identifier resolves only to its current active definition, so values belonging to a deleted definition never match if its identifier is reused. Operator-scoped filters match only host records whose current operator owner is assigned to the field; retained inapplicable values are excluded before pagination.
|
|
53207
|
+
"description": "Filter a custom-field host resource by custom fields defined for that resource. Add one literal `customFields.<identifier>` key to the existing `filter` object for each criterion. The identifier suffix is administrator-defined and is never enumerated in this schema or generated per tenant. Use a scalar for boolean, text, email, and URL fields. Boolean accepts booleans and integer `1` or `0`, as well as the strings `\"true\"`, `\"false\"`, `\"1\"`, and `\"0\"`. Text, email, and URL accept strings and use contains matching that is case- and accent-insensitive; backslashes, `%`, and `_` are treated literally rather than as pattern syntax. Use `from`, `to`, or both below the dotted key for number, date, and date-time fields. Both bounds are inclusive. Number bounds are decimal strings from `-99999999999999.999999` through `99999999999999.999999` with at most six decimal places; comparisons preserve submitted and stored decimal precision without rounding. Date bounds use `YYYY-MM-DD` and compare calendar dates without time-zone conversion. Date-time bounds use ISO 8601; offsets are normalized to UTC, and an omitted offset is interpreted as UTC. Multiple identifiers combine with AND. Empty scalar criteria and ranges whose bounds are empty are ignored. An identifier resolves only to its current active definition, so values belonging to a deleted definition never match if its identifier is reused. Operator-scoped filters match only host records whose current operator owner is assigned to the field; retained inapplicable values are excluded before pagination. Criteria for unknown, inaccessible, disabled, or deleted custom fields, and for fields whose filtering is disabled or whose type does not support filtering, are ignored; the other criteria in the same request still apply. For a filterable field, malformed objects or values, a criterion shape that is invalid for the field type, and a range whose `from` bound is greater than its `to` bound return `422`. Custom-field filters apply only to resource listings. They do not participate in search and do not depend on an `include` parameter; any unrelated includes are defined by the host resource. Examples: `filter[customFields.invoiceReference]=INV-42` and `filter[customFields.capacity][from]=10&filter[customFields.capacity][to]=20`. URL-encode the query keys and values when sending the request."
|
|
52848
53208
|
}
|
|
52849
53209
|
}
|
|
52850
53210
|
}
|
|
@@ -52890,10 +53250,10 @@
|
|
|
52890
53250
|
"description": "You do not have permission to perform the action"
|
|
52891
53251
|
},
|
|
52892
53252
|
"404": {
|
|
52893
|
-
"description": "The
|
|
53253
|
+
"description": "The record is not found"
|
|
52894
53254
|
},
|
|
52895
53255
|
"422": {
|
|
52896
|
-
"description": "The request contains invalid criteria, including malformed
|
|
53256
|
+
"description": "The request contains invalid criteria, including malformed custom field filter values"
|
|
52897
53257
|
},
|
|
52898
53258
|
"429": {
|
|
52899
53259
|
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
@@ -56917,8 +57277,10 @@
|
|
|
56917
57277
|
"canceled",
|
|
56918
57278
|
"expired",
|
|
56919
57279
|
"suspended",
|
|
56920
|
-
"pending"
|
|
56921
|
-
|
|
57280
|
+
"pending",
|
|
57281
|
+
"terminated"
|
|
57282
|
+
],
|
|
57283
|
+
"description": "Subscription status. - `active`: The subscription is active - `canceled`: The subscription was canceled - `expired`: The subscription has expired - `suspended`: The subscription is temporarily suspended - `pending`: The subscription is awaiting activation - `terminated`: The subscription was permanently terminated"
|
|
56922
57284
|
},
|
|
56923
57285
|
"statusChangedAfter": {
|
|
56924
57286
|
"type": "string",
|
|
@@ -72925,7 +73287,7 @@
|
|
|
72925
73287
|
],
|
|
72926
73288
|
"info": {
|
|
72927
73289
|
"title": "Public API",
|
|
72928
|
-
"version": "3.
|
|
73290
|
+
"version": "3.254.1",
|
|
72929
73291
|
"description": "The Public API provides server-to-server integration capabilities for your EV charging platform.\n\n**Authentication.** Existing integrations continue to work unchanged — long-lived UUID admin tokens are sent in `Authorization: Bearer ...` with no exchange required. Two security schemes are documented for OpenAPI client tooling, both resulting in the same Bearer header at the wire level:\n - `bearerAuth` — the token in the `Authorization: Bearer ...` header is either a long-lived UUID admin token (issued via the admin UI, used directly) or a short-lived access token previously obtained via OAuth.\n - `oauth2ClientCredentials` - a `client_id` / `client_secret` pair should be exchanged for a short-lived access token at `/public-api/oauth/token` per RFC 6749 Section 4.4 (Client Credentials Grant), and the short-lived token should be used in the `Authorization: Bearer ...` header. The OAuth `client_secret` itself cannot be sent directly as a bearer token — it must be exchanged first.\n"
|
|
72930
73292
|
},
|
|
72931
73293
|
"servers": [
|
|
@@ -72939,18 +73301,18 @@
|
|
|
72939
73301
|
}
|
|
72940
73302
|
}
|
|
72941
73303
|
],
|
|
72942
|
-
"buildTimestamp": "2026-09-
|
|
73304
|
+
"buildTimestamp": "2026-09-28T11:57:42.237Z",
|
|
72943
73305
|
"stats": {
|
|
72944
|
-
"totalEndpoints":
|
|
72945
|
-
"originalSize":
|
|
72946
|
-
"optimizedSize":
|
|
72947
|
-
"reductionPercent": 72.
|
|
72948
|
-
"buildDuration":
|
|
73306
|
+
"totalEndpoints": 657,
|
|
73307
|
+
"originalSize": 6140006,
|
|
73308
|
+
"optimizedSize": 1714637,
|
|
73309
|
+
"reductionPercent": 72.07,
|
|
73310
|
+
"buildDuration": 1572,
|
|
72949
73311
|
"responseSchemas": {
|
|
72950
|
-
"total":
|
|
72951
|
-
"withSchemas":
|
|
72952
|
-
"totalSchemaSize":
|
|
72953
|
-
"averageSchemaSize":
|
|
73312
|
+
"total": 657,
|
|
73313
|
+
"withSchemas": 657,
|
|
73314
|
+
"totalSchemaSize": 3519465,
|
|
73315
|
+
"averageSchemaSize": 5357
|
|
72954
73316
|
}
|
|
72955
73317
|
}
|
|
72956
73318
|
}
|