@ampeco/public-api-mcp 3.256.1 → 3.257.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 +653 -81
- package/dist/generated/response-schemas.json +10007 -3194
- package/dist/generated/schemas.d.ts +65 -3
- package/dist/generated/schemas.d.ts.map +1 -1
- package/dist/generated/schemas.js +35 -1
- package/dist/generated/schemas.js.map +1 -1
- package/dist/generated/schemas.ts +43 -1
- package/package.json +1 -1
|
@@ -3389,6 +3389,60 @@
|
|
|
3389
3389
|
}
|
|
3390
3390
|
}
|
|
3391
3391
|
},
|
|
3392
|
+
{
|
|
3393
|
+
"path": "/public-api/actions/id-tag/v1.0/{idTag}/set-custom-fields",
|
|
3394
|
+
"method": "POST",
|
|
3395
|
+
"operationId": "idTagSetCustomFields",
|
|
3396
|
+
"summary": "ID tag / set custom fields",
|
|
3397
|
+
"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 an ID tag without changing any other ID tag properties. This action requires permission to view the ID tag and the `RfidTags.update-custom-fields` permission. Send a JSON object containing only the required `customFields` object. Additional body properties or query parameters return `422` validation errors. Omitted identifiers remain unchanged, while `null` clears the corresponding value. When custom fields are enabled for ID tags, an empty object succeeds as a no-op. Invalid or unavailable identifiers and invalid values return `422` validation errors, and no submitted values are changed. If custom fields are disabled for the tenant or ID tags, the action returns `412 Precondition Failed`. A `404` response means the ID tag was not found or is not accessible.",
|
|
3398
|
+
"tags": [
|
|
3399
|
+
"action / id tag"
|
|
3400
|
+
],
|
|
3401
|
+
"requestBody": {
|
|
3402
|
+
"required": true,
|
|
3403
|
+
"content": {
|
|
3404
|
+
"application/json": {
|
|
3405
|
+
"schema": {
|
|
3406
|
+
"type": "object",
|
|
3407
|
+
"properties": {
|
|
3408
|
+
"customFields": {
|
|
3409
|
+
"type": "object",
|
|
3410
|
+
"additionalProperties": true,
|
|
3411
|
+
"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."
|
|
3412
|
+
}
|
|
3413
|
+
},
|
|
3414
|
+
"required": [
|
|
3415
|
+
"customFields"
|
|
3416
|
+
],
|
|
3417
|
+
"additionalProperties": false
|
|
3418
|
+
}
|
|
3419
|
+
}
|
|
3420
|
+
}
|
|
3421
|
+
},
|
|
3422
|
+
"responses": {
|
|
3423
|
+
"202": {
|
|
3424
|
+
"description": "Accepted - the response body contains the ID tag's v2.0 read representation after applying the submitted values"
|
|
3425
|
+
},
|
|
3426
|
+
"401": {
|
|
3427
|
+
"description": "Access token is missing or invalid"
|
|
3428
|
+
},
|
|
3429
|
+
"403": {
|
|
3430
|
+
"description": "You do not have permission to perform the action"
|
|
3431
|
+
},
|
|
3432
|
+
"404": {
|
|
3433
|
+
"description": "The record is not found"
|
|
3434
|
+
},
|
|
3435
|
+
"412": {
|
|
3436
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
3437
|
+
},
|
|
3438
|
+
"422": {
|
|
3439
|
+
"description": "The payload you provided is invalid"
|
|
3440
|
+
},
|
|
3441
|
+
"429": {
|
|
3442
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
3443
|
+
}
|
|
3444
|
+
}
|
|
3445
|
+
},
|
|
3392
3446
|
{
|
|
3393
3447
|
"path": "/public-api/actions/installer-job/v1.0/{installerJob}/assign-charge-points",
|
|
3394
3448
|
"method": "POST",
|
|
@@ -3511,6 +3565,60 @@
|
|
|
3511
3565
|
}
|
|
3512
3566
|
}
|
|
3513
3567
|
},
|
|
3568
|
+
{
|
|
3569
|
+
"path": "/public-api/actions/installer-job/v1.0/{installerJob}/set-custom-fields",
|
|
3570
|
+
"method": "POST",
|
|
3571
|
+
"operationId": "installerJobSetCustomFieldsV1_0",
|
|
3572
|
+
"summary": "Installer job / set custom fields",
|
|
3573
|
+
"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 an installer job without changing its status, assignments, other properties or timestamps. This action requires permission to view the installer job and the `InstallerJobs.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 installer jobs, an empty object succeeds as a no-op. Invalid or unavailable identifiers and invalid values return `422` validation errors. If custom fields are disabled for the tenant or installer jobs, the action returns `412 Precondition Failed`. Neither rejection changes submitted values. A `404` means the job is missing or inaccessible.",
|
|
3574
|
+
"tags": [
|
|
3575
|
+
"action / installer job"
|
|
3576
|
+
],
|
|
3577
|
+
"requestBody": {
|
|
3578
|
+
"required": true,
|
|
3579
|
+
"content": {
|
|
3580
|
+
"application/json": {
|
|
3581
|
+
"schema": {
|
|
3582
|
+
"type": "object",
|
|
3583
|
+
"properties": {
|
|
3584
|
+
"customFields": {
|
|
3585
|
+
"type": "object",
|
|
3586
|
+
"additionalProperties": true,
|
|
3587
|
+
"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."
|
|
3588
|
+
}
|
|
3589
|
+
},
|
|
3590
|
+
"required": [
|
|
3591
|
+
"customFields"
|
|
3592
|
+
],
|
|
3593
|
+
"additionalProperties": false
|
|
3594
|
+
}
|
|
3595
|
+
}
|
|
3596
|
+
}
|
|
3597
|
+
},
|
|
3598
|
+
"responses": {
|
|
3599
|
+
"202": {
|
|
3600
|
+
"description": "Accepted - the response body contains the installer job's default read representation after applying the submitted values"
|
|
3601
|
+
},
|
|
3602
|
+
"401": {
|
|
3603
|
+
"description": "Access token is missing or invalid"
|
|
3604
|
+
},
|
|
3605
|
+
"403": {
|
|
3606
|
+
"description": "You do not have permission to perform the action"
|
|
3607
|
+
},
|
|
3608
|
+
"404": {
|
|
3609
|
+
"description": "The record is not found"
|
|
3610
|
+
},
|
|
3611
|
+
"412": {
|
|
3612
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
3613
|
+
},
|
|
3614
|
+
"422": {
|
|
3615
|
+
"description": "The payload you provided is invalid"
|
|
3616
|
+
},
|
|
3617
|
+
"429": {
|
|
3618
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
3619
|
+
}
|
|
3620
|
+
}
|
|
3621
|
+
},
|
|
3514
3622
|
{
|
|
3515
3623
|
"path": "/public-api/actions/invoice/v1.0/{invoice}/update-external-id",
|
|
3516
3624
|
"method": "POST",
|
|
@@ -3874,7 +3982,7 @@
|
|
|
3874
3982
|
"method": "POST",
|
|
3875
3983
|
"operationId": "partnerInvoiceIssueCreditNote",
|
|
3876
3984
|
"summary": "Partner invoice / Issue credit note",
|
|
3877
|
-
"description": "Issue a full credit note cancelling the given partner invoice. The credit note copies the original's seller, buyer, currency and payment terms, negates every line item,
|
|
3985
|
+
"description": "Issue a full credit note cancelling the given partner invoice. The credit note copies the original's seller, buyer, currency and payment terms, negates every line item, and references the cancelled invoice via `referenceId`. It is issued with `paymentStatus` `unpaid` and carries no `amountPaid` — credit notes do not track payments. Only one credit note may exist per invoice. Issuing returns the linked settlement report to `ready_to_invoice`. Partial credit notes are not supported. Eligibility depends on the B2B invoice processor recorded on the invoice at issuance. An invoice generated through the built-in B2B invoice integration is eligible as soon as it is issued. An invoice generated through a processor that certifies documents with a fiscal authority is eligible only after the original document has been certified — until the document exists at the fiscal authority there is nothing to cancel. Use `fiscalization.status` on the single-invoice read to observe this: `pending` and `failed` mean not yet creditable, `certified` means the precondition is met. Certification is a necessary, not a sufficient, condition — the rare certified document with no recorded `fiscalization.referenceNumber` described under `fiscalization.status` stays ineligible and requires operator intervention. A `425` means the original document has not been certified with the fiscal authority yet, so there is nothing to cancel. Retry once `fiscalization.status` on the single-invoice read reaches `certified`.",
|
|
3878
3986
|
"tags": [
|
|
3879
3987
|
"action / partner invoice"
|
|
3880
3988
|
],
|
|
@@ -3902,6 +4010,72 @@
|
|
|
3902
4010
|
}
|
|
3903
4011
|
}
|
|
3904
4012
|
},
|
|
4013
|
+
{
|
|
4014
|
+
"path": "/public-api/actions/partner-invoice/v1.0/{partnerInvoice}/register-payment",
|
|
4015
|
+
"method": "POST",
|
|
4016
|
+
"operationId": "partnerInvoiceRegisterPayment",
|
|
4017
|
+
"summary": "Partner invoice / Register payment",
|
|
4018
|
+
"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. Register a payment against the given partner invoice. The entry is recorded as a settlement record linked to the invoice, the invoice's `amountPaid` is recomputed from all of its linked entries, and `paymentStatus` is re-derived as `unpaid`, `partially_paid` or `paid` from the recomputed total against `totalAmount.withTax`. The request body uses the same property names as the settlement record it creates — `date`, `paidAmount` and `note`, with `note` empty when omitted here. The record returned by the partner settlement report records endpoints additionally carries `partnerInvoiceId` pointing back to this invoice. A negative `paidAmount` is accepted and records a reversing entry, as long as the resulting total paid does not fall below zero. While a settlement report has at least one partner invoice, its settlement records can no longer be created, updated or deleted directly — register payments here instead. A `409` means the invoice is permanently ineligible or the entry is inconsistent with the invoice's current state: the invoice has already been credited, the target is itself a credit note, or the entry would drive the total amount paid below zero.",
|
|
4019
|
+
"tags": [
|
|
4020
|
+
"action / partner invoice"
|
|
4021
|
+
],
|
|
4022
|
+
"requestBody": {
|
|
4023
|
+
"required": true,
|
|
4024
|
+
"content": {
|
|
4025
|
+
"application/json": {
|
|
4026
|
+
"schema": {
|
|
4027
|
+
"type": "object",
|
|
4028
|
+
"properties": {
|
|
4029
|
+
"paidAmount": {
|
|
4030
|
+
"type": "number",
|
|
4031
|
+
"example": 120.5,
|
|
4032
|
+
"description": "Amount registered as paid, in the invoice's currency. Must not be zero. A negative value records a reversing entry and must not drive the total amount paid on the invoice below zero."
|
|
4033
|
+
},
|
|
4034
|
+
"date": {
|
|
4035
|
+
"type": "string",
|
|
4036
|
+
"format": "date",
|
|
4037
|
+
"example": "2026-03-04",
|
|
4038
|
+
"description": "Date on which the payment was made."
|
|
4039
|
+
},
|
|
4040
|
+
"note": {
|
|
4041
|
+
"type": "string",
|
|
4042
|
+
"maxLength": 255,
|
|
4043
|
+
"example": "Bank transfer ref 998812",
|
|
4044
|
+
"description": "Free-text note stored on the resulting settlement record. Optional; when omitted the settlement record is created with an empty note, which the records endpoints still return as `note`."
|
|
4045
|
+
}
|
|
4046
|
+
},
|
|
4047
|
+
"required": [
|
|
4048
|
+
"paidAmount",
|
|
4049
|
+
"date"
|
|
4050
|
+
]
|
|
4051
|
+
}
|
|
4052
|
+
}
|
|
4053
|
+
}
|
|
4054
|
+
},
|
|
4055
|
+
"responses": {
|
|
4056
|
+
"202": {
|
|
4057
|
+
"description": "Accepted - the response body contains the updated partner invoice"
|
|
4058
|
+
},
|
|
4059
|
+
"401": {
|
|
4060
|
+
"description": "Access token is missing or invalid"
|
|
4061
|
+
},
|
|
4062
|
+
"403": {
|
|
4063
|
+
"description": "You do not have permission to perform the action"
|
|
4064
|
+
},
|
|
4065
|
+
"404": {
|
|
4066
|
+
"description": "The record is not found"
|
|
4067
|
+
},
|
|
4068
|
+
"409": {
|
|
4069
|
+
"description": "The payment could not be registered against the partner invoice — the invoice has been credited, the target is itself a credit note, or the entry would drive the total amount paid below zero."
|
|
4070
|
+
},
|
|
4071
|
+
"422": {
|
|
4072
|
+
"description": "The payload you provided is invalid"
|
|
4073
|
+
},
|
|
4074
|
+
"429": {
|
|
4075
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
4076
|
+
}
|
|
4077
|
+
}
|
|
4078
|
+
},
|
|
3905
4079
|
{
|
|
3906
4080
|
"path": "/public-api/actions/partner-invoice/v1.0/{partnerInvoice}/update-external-id",
|
|
3907
4081
|
"method": "POST",
|
|
@@ -3988,7 +4162,7 @@
|
|
|
3988
4162
|
"method": "POST",
|
|
3989
4163
|
"operationId": "partnerSettlementReportSetCustomFields",
|
|
3990
4164
|
"summary": "Partner settlement report / set custom fields",
|
|
3991
|
-
"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
|
|
4165
|
+
"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 and invalid values return `422` validation errors. If custom fields are disabled for the tenant or partner settlement reports, the action returns `412 Precondition Failed`. Neither rejection changes submitted values. 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.",
|
|
3992
4166
|
"tags": [
|
|
3993
4167
|
"action / partner settlement report"
|
|
3994
4168
|
],
|
|
@@ -4026,6 +4200,9 @@
|
|
|
4026
4200
|
"404": {
|
|
4027
4201
|
"description": "The record is not found"
|
|
4028
4202
|
},
|
|
4203
|
+
"412": {
|
|
4204
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
4205
|
+
},
|
|
4029
4206
|
"422": {
|
|
4030
4207
|
"description": "The payload you provided is invalid"
|
|
4031
4208
|
},
|
|
@@ -4090,7 +4267,7 @@
|
|
|
4090
4267
|
"method": "POST",
|
|
4091
4268
|
"operationId": "partnerSetCustomFieldsV1_0",
|
|
4092
4269
|
"summary": "Partner / set custom fields",
|
|
4093
|
-
"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
|
|
4270
|
+
"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 and invalid values return `422` validation errors. If custom fields are disabled for the tenant or partners, the action returns `412 Precondition Failed`. Neither rejection changes submitted values. A `404` response means the partner was not found.",
|
|
4094
4271
|
"tags": [
|
|
4095
4272
|
"action / partner"
|
|
4096
4273
|
],
|
|
@@ -4128,6 +4305,9 @@
|
|
|
4128
4305
|
"404": {
|
|
4129
4306
|
"description": "The record is not found"
|
|
4130
4307
|
},
|
|
4308
|
+
"412": {
|
|
4309
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
4310
|
+
},
|
|
4131
4311
|
"422": {
|
|
4132
4312
|
"description": "The payload you provided is invalid"
|
|
4133
4313
|
},
|
|
@@ -4141,7 +4321,7 @@
|
|
|
4141
4321
|
"method": "POST",
|
|
4142
4322
|
"operationId": "paymentTerminalSetCustomFields",
|
|
4143
4323
|
"summary": "Payment terminal / set custom fields",
|
|
4144
|
-
"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
|
|
4324
|
+
"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 and invalid values return `422` validation errors. If custom fields are disabled for the tenant or payment terminals, the action returns `412 Precondition Failed`. Neither rejection changes submitted values. A `404` response means the payment terminal was not found.",
|
|
4145
4325
|
"tags": [
|
|
4146
4326
|
"action / payment terminal"
|
|
4147
4327
|
],
|
|
@@ -4179,6 +4359,9 @@
|
|
|
4179
4359
|
"404": {
|
|
4180
4360
|
"description": "The record is not found"
|
|
4181
4361
|
},
|
|
4362
|
+
"412": {
|
|
4363
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
4364
|
+
},
|
|
4182
4365
|
"422": {
|
|
4183
4366
|
"description": "The payload you provided is invalid"
|
|
4184
4367
|
},
|
|
@@ -4303,7 +4486,7 @@
|
|
|
4303
4486
|
"method": "POST",
|
|
4304
4487
|
"operationId": "reimbursementRecordSetCustomFieldsV1_0",
|
|
4305
4488
|
"summary": "Reimbursement record / set custom fields",
|
|
4306
|
-
"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
|
|
4489
|
+
"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 and invalid values return `422` validation errors. If custom fields are disabled for the tenant or reimbursement records, the action returns `412 Precondition Failed`. Neither rejection changes submitted values. A `404` response means the reimbursement record was not found.",
|
|
4307
4490
|
"tags": [
|
|
4308
4491
|
"action / reimbursement record"
|
|
4309
4492
|
],
|
|
@@ -4341,6 +4524,9 @@
|
|
|
4341
4524
|
"404": {
|
|
4342
4525
|
"description": "The record is not found"
|
|
4343
4526
|
},
|
|
4527
|
+
"412": {
|
|
4528
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
4529
|
+
},
|
|
4344
4530
|
"422": {
|
|
4345
4531
|
"description": "The payload you provided is invalid"
|
|
4346
4532
|
},
|
|
@@ -4381,7 +4567,7 @@
|
|
|
4381
4567
|
"method": "POST",
|
|
4382
4568
|
"operationId": "reimbursementReportSetCustomFieldsV1_0",
|
|
4383
4569
|
"summary": "Reimbursement report / set custom fields",
|
|
4384
|
-
"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
|
|
4570
|
+
"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 and succeeds as a no-op when custom fields are enabled. 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 or inapplicable identifiers and invalid values return a `422` error keyed as `customFields.<identifier>`. If custom fields are disabled for the tenant or reimbursement reports, the action returns `412 Precondition Failed`, even for an empty object. Neither rejection changes submitted values. 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.",
|
|
4385
4571
|
"tags": [
|
|
4386
4572
|
"action / reimbursement report"
|
|
4387
4573
|
],
|
|
@@ -4419,6 +4605,9 @@
|
|
|
4419
4605
|
"404": {
|
|
4420
4606
|
"description": "The record is not found"
|
|
4421
4607
|
},
|
|
4608
|
+
"412": {
|
|
4609
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
4610
|
+
},
|
|
4422
4611
|
"422": {
|
|
4423
4612
|
"description": "The payload you provided is invalid"
|
|
4424
4613
|
},
|
|
@@ -5323,7 +5512,7 @@
|
|
|
5323
5512
|
"method": "POST",
|
|
5324
5513
|
"operationId": "sessionSetCustomFields",
|
|
5325
5514
|
"summary": "Session / set custom fields",
|
|
5326
|
-
"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
|
|
5515
|
+
"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 and invalid values return `422` validation errors. If custom fields are disabled for the tenant or sessions, the action returns `412 Precondition Failed`. Neither rejection changes submitted values. A `404` response means the session was not found.",
|
|
5327
5516
|
"tags": [
|
|
5328
5517
|
"action / session"
|
|
5329
5518
|
],
|
|
@@ -5361,6 +5550,9 @@
|
|
|
5361
5550
|
"404": {
|
|
5362
5551
|
"description": "The record is not found"
|
|
5363
5552
|
},
|
|
5553
|
+
"412": {
|
|
5554
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
5555
|
+
},
|
|
5364
5556
|
"422": {
|
|
5365
5557
|
"description": "The payload you provided is invalid"
|
|
5366
5558
|
},
|
|
@@ -5429,6 +5621,114 @@
|
|
|
5429
5621
|
}
|
|
5430
5622
|
}
|
|
5431
5623
|
},
|
|
5624
|
+
{
|
|
5625
|
+
"path": "/public-api/actions/tariff-group/v1.0/{tariffGroup}/set-custom-fields",
|
|
5626
|
+
"method": "POST",
|
|
5627
|
+
"operationId": "tariffGroupSetCustomFields",
|
|
5628
|
+
"summary": "Tariff group / set custom fields",
|
|
5629
|
+
"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 tariff group without changing its tariffs or other properties. This action requires permission to view the tariff group and the `TariffGroups.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 tariff groups, an empty object succeeds as a no-op. Invalid or unavailable identifiers and invalid values return `422` validation errors. If custom fields are disabled for the tenant or tariff groups, the action returns `412 Precondition Failed`. Neither rejection changes submitted values. A `404` response means the tariff group was not found.",
|
|
5630
|
+
"tags": [
|
|
5631
|
+
"action / tariff group"
|
|
5632
|
+
],
|
|
5633
|
+
"requestBody": {
|
|
5634
|
+
"required": true,
|
|
5635
|
+
"content": {
|
|
5636
|
+
"application/json": {
|
|
5637
|
+
"schema": {
|
|
5638
|
+
"type": "object",
|
|
5639
|
+
"properties": {
|
|
5640
|
+
"customFields": {
|
|
5641
|
+
"type": "object",
|
|
5642
|
+
"additionalProperties": true,
|
|
5643
|
+
"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."
|
|
5644
|
+
}
|
|
5645
|
+
},
|
|
5646
|
+
"required": [
|
|
5647
|
+
"customFields"
|
|
5648
|
+
],
|
|
5649
|
+
"additionalProperties": false
|
|
5650
|
+
}
|
|
5651
|
+
}
|
|
5652
|
+
}
|
|
5653
|
+
},
|
|
5654
|
+
"responses": {
|
|
5655
|
+
"202": {
|
|
5656
|
+
"description": "Accepted - the response body contains the tariff group's v1.0 read representation after applying the submitted values"
|
|
5657
|
+
},
|
|
5658
|
+
"401": {
|
|
5659
|
+
"description": "Access token is missing or invalid"
|
|
5660
|
+
},
|
|
5661
|
+
"403": {
|
|
5662
|
+
"description": "You do not have permission to perform the action"
|
|
5663
|
+
},
|
|
5664
|
+
"404": {
|
|
5665
|
+
"description": "The record is not found"
|
|
5666
|
+
},
|
|
5667
|
+
"412": {
|
|
5668
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
5669
|
+
},
|
|
5670
|
+
"422": {
|
|
5671
|
+
"description": "The payload you provided is invalid"
|
|
5672
|
+
},
|
|
5673
|
+
"429": {
|
|
5674
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
5675
|
+
}
|
|
5676
|
+
}
|
|
5677
|
+
},
|
|
5678
|
+
{
|
|
5679
|
+
"path": "/public-api/actions/tariff/v1.0/{tariff}/set-custom-fields",
|
|
5680
|
+
"method": "POST",
|
|
5681
|
+
"operationId": "tariffSetCustomFields",
|
|
5682
|
+
"summary": "Tariff / set custom fields",
|
|
5683
|
+
"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 tariff without changing its pricing or other properties. This action requires permission to view the tariff and the `Tariffs.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 tariffs, an empty object succeeds as a no-op. Invalid or unavailable identifiers and invalid values return `422` validation errors. If custom fields are disabled for the tenant or tariffs, the action returns `412 Precondition Failed`. Neither rejection changes submitted values. A `404` response means the tariff was not found or its type is not exposed through the Public API.",
|
|
5684
|
+
"tags": [
|
|
5685
|
+
"action / tariff"
|
|
5686
|
+
],
|
|
5687
|
+
"requestBody": {
|
|
5688
|
+
"required": true,
|
|
5689
|
+
"content": {
|
|
5690
|
+
"application/json": {
|
|
5691
|
+
"schema": {
|
|
5692
|
+
"type": "object",
|
|
5693
|
+
"properties": {
|
|
5694
|
+
"customFields": {
|
|
5695
|
+
"type": "object",
|
|
5696
|
+
"additionalProperties": true,
|
|
5697
|
+
"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."
|
|
5698
|
+
}
|
|
5699
|
+
},
|
|
5700
|
+
"required": [
|
|
5701
|
+
"customFields"
|
|
5702
|
+
],
|
|
5703
|
+
"additionalProperties": false
|
|
5704
|
+
}
|
|
5705
|
+
}
|
|
5706
|
+
}
|
|
5707
|
+
},
|
|
5708
|
+
"responses": {
|
|
5709
|
+
"202": {
|
|
5710
|
+
"description": "Accepted - the response body contains the tariff's v1.0 read representation after applying the submitted values"
|
|
5711
|
+
},
|
|
5712
|
+
"401": {
|
|
5713
|
+
"description": "Access token is missing or invalid"
|
|
5714
|
+
},
|
|
5715
|
+
"403": {
|
|
5716
|
+
"description": "You do not have permission to perform the action"
|
|
5717
|
+
},
|
|
5718
|
+
"404": {
|
|
5719
|
+
"description": "The record is not found"
|
|
5720
|
+
},
|
|
5721
|
+
"412": {
|
|
5722
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
5723
|
+
},
|
|
5724
|
+
"422": {
|
|
5725
|
+
"description": "The payload you provided is invalid"
|
|
5726
|
+
},
|
|
5727
|
+
"429": {
|
|
5728
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
5729
|
+
}
|
|
5730
|
+
}
|
|
5731
|
+
},
|
|
5432
5732
|
{
|
|
5433
5733
|
"path": "/public-api/actions/tariffs/v2.0/{tariff}/set-tariff-display-information",
|
|
5434
5734
|
"method": "POST",
|
|
@@ -6256,6 +6556,60 @@
|
|
|
6256
6556
|
}
|
|
6257
6557
|
}
|
|
6258
6558
|
},
|
|
6559
|
+
{
|
|
6560
|
+
"path": "/public-api/actions/user-group/v1.0/{userGroup}/set-custom-fields",
|
|
6561
|
+
"method": "POST",
|
|
6562
|
+
"operationId": "userGroupSetCustomFields",
|
|
6563
|
+
"summary": "User group / set custom fields",
|
|
6564
|
+
"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 user group without changing any other user group properties. This action requires permission to view the user group and the `UserGroups.update-custom-fields` permission. Send a JSON object containing only the required `customFields` object; other body properties and any query parameters return `422` validation errors. Omitted identifiers remain unchanged, while `null` clears the corresponding value. When custom fields are enabled for user groups, an empty object succeeds as a no-op without an audit event. Invalid or unavailable submitted identifiers and invalid values return `422` validation errors. If custom fields are disabled for the tenant or user groups, the action returns `412 Precondition Failed`. Neither rejection changes values or creates an audit event. A `404` response means the user group was not found or is not accessible.",
|
|
6565
|
+
"tags": [
|
|
6566
|
+
"action / user-group"
|
|
6567
|
+
],
|
|
6568
|
+
"requestBody": {
|
|
6569
|
+
"required": true,
|
|
6570
|
+
"content": {
|
|
6571
|
+
"application/json": {
|
|
6572
|
+
"schema": {
|
|
6573
|
+
"type": "object",
|
|
6574
|
+
"properties": {
|
|
6575
|
+
"customFields": {
|
|
6576
|
+
"type": "object",
|
|
6577
|
+
"additionalProperties": true,
|
|
6578
|
+
"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."
|
|
6579
|
+
}
|
|
6580
|
+
},
|
|
6581
|
+
"required": [
|
|
6582
|
+
"customFields"
|
|
6583
|
+
],
|
|
6584
|
+
"additionalProperties": false
|
|
6585
|
+
}
|
|
6586
|
+
}
|
|
6587
|
+
}
|
|
6588
|
+
},
|
|
6589
|
+
"responses": {
|
|
6590
|
+
"202": {
|
|
6591
|
+
"description": "Accepted - the response body contains the user group's read representation after applying the submitted values"
|
|
6592
|
+
},
|
|
6593
|
+
"401": {
|
|
6594
|
+
"description": "Access token is missing or invalid"
|
|
6595
|
+
},
|
|
6596
|
+
"403": {
|
|
6597
|
+
"description": "You do not have permission to perform the action"
|
|
6598
|
+
},
|
|
6599
|
+
"404": {
|
|
6600
|
+
"description": "The record is not found"
|
|
6601
|
+
},
|
|
6602
|
+
"412": {
|
|
6603
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
6604
|
+
},
|
|
6605
|
+
"422": {
|
|
6606
|
+
"description": "The payload you provided is invalid"
|
|
6607
|
+
},
|
|
6608
|
+
"429": {
|
|
6609
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
6610
|
+
}
|
|
6611
|
+
}
|
|
6612
|
+
},
|
|
6259
6613
|
{
|
|
6260
6614
|
"path": "/public-api/actions/user/v1.0/{user}/revoke-marketing-consent",
|
|
6261
6615
|
"method": "POST",
|
|
@@ -6673,6 +7027,60 @@
|
|
|
6673
7027
|
}
|
|
6674
7028
|
}
|
|
6675
7029
|
},
|
|
7030
|
+
{
|
|
7031
|
+
"path": "/public-api/actions/users/v1.0/{user}/set-custom-fields",
|
|
7032
|
+
"method": "POST",
|
|
7033
|
+
"operationId": "userSetCustomFieldsV1_0",
|
|
7034
|
+
"summary": "User / set custom fields",
|
|
7035
|
+
"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 user without changing any other user properties. This action requires permission to view the user and the `Users.update-custom-fields` permission. Send a JSON object containing only the required `customFields` property. Query parameters and additional body properties are rejected. The `customFields` object may be empty. Omitted identifiers remain unchanged, while an explicit `null` clears the corresponding value. Every submitted identifier is validated against the user, the current custom field configuration and the acting administrator's access. Invalid request bodies or values and unknown or unusable submitted field identifiers return `422` validation errors, keyed as `customFields.<identifier>` for invalid identifiers. If custom fields are disabled for the tenant or users, the action returns `412 Precondition Failed`. Neither rejection changes custom field values.",
|
|
7036
|
+
"tags": [
|
|
7037
|
+
"action / user"
|
|
7038
|
+
],
|
|
7039
|
+
"requestBody": {
|
|
7040
|
+
"required": true,
|
|
7041
|
+
"content": {
|
|
7042
|
+
"application/json": {
|
|
7043
|
+
"schema": {
|
|
7044
|
+
"type": "object",
|
|
7045
|
+
"properties": {
|
|
7046
|
+
"customFields": {
|
|
7047
|
+
"type": "object",
|
|
7048
|
+
"additionalProperties": true,
|
|
7049
|
+
"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."
|
|
7050
|
+
}
|
|
7051
|
+
},
|
|
7052
|
+
"required": [
|
|
7053
|
+
"customFields"
|
|
7054
|
+
],
|
|
7055
|
+
"additionalProperties": false
|
|
7056
|
+
}
|
|
7057
|
+
}
|
|
7058
|
+
}
|
|
7059
|
+
},
|
|
7060
|
+
"responses": {
|
|
7061
|
+
"202": {
|
|
7062
|
+
"description": "Accepted - the response body contains the user's default v1.1 read representation after applying the submitted values"
|
|
7063
|
+
},
|
|
7064
|
+
"401": {
|
|
7065
|
+
"description": "Access token is missing or invalid"
|
|
7066
|
+
},
|
|
7067
|
+
"403": {
|
|
7068
|
+
"description": "You do not have permission to perform the action"
|
|
7069
|
+
},
|
|
7070
|
+
"404": {
|
|
7071
|
+
"description": "The record is not found"
|
|
7072
|
+
},
|
|
7073
|
+
"412": {
|
|
7074
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
7075
|
+
},
|
|
7076
|
+
"422": {
|
|
7077
|
+
"description": "The payload you provided is invalid"
|
|
7078
|
+
},
|
|
7079
|
+
"429": {
|
|
7080
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
7081
|
+
}
|
|
7082
|
+
}
|
|
7083
|
+
},
|
|
6676
7084
|
{
|
|
6677
7085
|
"path": "/public-api/actions/users/v1.0/{user}/subscribe-to-plan",
|
|
6678
7086
|
"method": "POST",
|
|
@@ -6920,6 +7328,60 @@
|
|
|
6920
7328
|
}
|
|
6921
7329
|
}
|
|
6922
7330
|
},
|
|
7331
|
+
{
|
|
7332
|
+
"path": "/public-api/actions/vehicle/v1.0/{vehicle}/set-custom-fields",
|
|
7333
|
+
"method": "POST",
|
|
7334
|
+
"operationId": "vehicleSetCustomFieldsV1_0",
|
|
7335
|
+
"summary": "Vehicle / set custom fields",
|
|
7336
|
+
"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 vehicle without changing any other vehicle properties. This action requires permission to view the vehicle and the `Vehicles.update-custom-fields` permission. Send a JSON object containing only the required `customFields` property. Query parameters and additional body properties are rejected. When custom fields are enabled for vehicles, the `customFields` object may be empty and succeeds as a no-op without creating a value audit. Omitted identifiers remain unchanged, while an explicit `null` clears the corresponding value. Every submitted identifier is validated against the vehicle, the current custom field configuration and the acting administrator's access. Unknown, inaccessible, inapplicable or currently disabled identifiers return `422` validation errors keyed as `customFields.<identifier>`. If custom fields are disabled for the tenant or for vehicles, the action returns `412 Precondition Failed` and changes no submitted values. Malformed request bodies and invalid values for available fields return `422` validation errors keyed to the relevant request property. No submitted values are changed when the action is rejected. A `404` response means the vehicle was not found or is not accessible to the caller.",
|
|
7337
|
+
"tags": [
|
|
7338
|
+
"action / vehicle"
|
|
7339
|
+
],
|
|
7340
|
+
"requestBody": {
|
|
7341
|
+
"required": true,
|
|
7342
|
+
"content": {
|
|
7343
|
+
"application/json": {
|
|
7344
|
+
"schema": {
|
|
7345
|
+
"type": "object",
|
|
7346
|
+
"properties": {
|
|
7347
|
+
"customFields": {
|
|
7348
|
+
"type": "object",
|
|
7349
|
+
"additionalProperties": true,
|
|
7350
|
+
"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."
|
|
7351
|
+
}
|
|
7352
|
+
},
|
|
7353
|
+
"required": [
|
|
7354
|
+
"customFields"
|
|
7355
|
+
],
|
|
7356
|
+
"additionalProperties": false
|
|
7357
|
+
}
|
|
7358
|
+
}
|
|
7359
|
+
}
|
|
7360
|
+
},
|
|
7361
|
+
"responses": {
|
|
7362
|
+
"202": {
|
|
7363
|
+
"description": "Accepted - the response body contains the vehicle's default single-record v1.0 read representation after applying the submitted values"
|
|
7364
|
+
},
|
|
7365
|
+
"401": {
|
|
7366
|
+
"description": "Access token is missing or invalid"
|
|
7367
|
+
},
|
|
7368
|
+
"403": {
|
|
7369
|
+
"description": "You do not have permission to perform the action"
|
|
7370
|
+
},
|
|
7371
|
+
"404": {
|
|
7372
|
+
"description": "The record is not found"
|
|
7373
|
+
},
|
|
7374
|
+
"412": {
|
|
7375
|
+
"description": "A precondition for performing this action is not met. The response message states which precondition failed."
|
|
7376
|
+
},
|
|
7377
|
+
"422": {
|
|
7378
|
+
"description": "The payload you provided is invalid"
|
|
7379
|
+
},
|
|
7380
|
+
"429": {
|
|
7381
|
+
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
7382
|
+
}
|
|
7383
|
+
}
|
|
7384
|
+
},
|
|
6923
7385
|
{
|
|
6924
7386
|
"path": "/public-api/logs/communication/v1.0",
|
|
6925
7387
|
"method": "GET",
|
|
@@ -17351,10 +17813,11 @@
|
|
|
17351
17813
|
"marketing",
|
|
17352
17814
|
"signup",
|
|
17353
17815
|
"subscription",
|
|
17354
|
-
"top-up"
|
|
17816
|
+
"top-up",
|
|
17817
|
+
"analytics"
|
|
17355
17818
|
]
|
|
17356
17819
|
},
|
|
17357
|
-
"description": "Filter by term types: - marketing: Marketing and promotional communications consent - signup: Initial registration terms and conditions - subscription: Subscription service terms - top-up: Top-up service terms"
|
|
17820
|
+
"description": "Filter by term types: - marketing: Marketing and promotional communications consent - signup: Initial registration terms and conditions - subscription: Subscription service terms - top-up: Top-up service terms - analytics: Analytics data collection consent"
|
|
17358
17821
|
},
|
|
17359
17822
|
"action": {
|
|
17360
17823
|
"type": "array",
|
|
@@ -17441,10 +17904,11 @@
|
|
|
17441
17904
|
"marketing",
|
|
17442
17905
|
"signup",
|
|
17443
17906
|
"subscription",
|
|
17444
|
-
"top-up"
|
|
17907
|
+
"top-up",
|
|
17908
|
+
"analytics"
|
|
17445
17909
|
]
|
|
17446
17910
|
},
|
|
17447
|
-
"description": "Filter by term types: - marketing: Marketing and promotional communications consent - signup: Initial registration terms and conditions - subscription: Subscription service terms - top-up: Top-up service terms"
|
|
17911
|
+
"description": "Filter by term types: - marketing: Marketing and promotional communications consent - signup: Initial registration terms and conditions - subscription: Subscription service terms - top-up: Top-up service terms - analytics: Analytics data collection consent"
|
|
17448
17912
|
},
|
|
17449
17913
|
"status": {
|
|
17450
17914
|
"type": "array",
|
|
@@ -25916,6 +26380,7 @@
|
|
|
25916
26380
|
"type": "string"
|
|
25917
26381
|
},
|
|
25918
26382
|
"filter": {
|
|
26383
|
+
"description": "Filter ID tags by standard properties or administrator-defined custom fields. Send a scalar under a literal dotted key, for example `filter[customFields.fleetLabel]=North`. Text, email and URL fields match substrings; boolean fields accept `true`, `false`, `1` or `0`. For number, date and date-time fields, send inclusive bounds under the dotted key, for example `filter[customFields.fleetNumber][from]=10&filter[customFields.fleetNumber][to]=20`. Either bound may be omitted. Multiple criteria combine with AND. Unfilled criteria are ignored. Non-empty unknown, inaccessible, disabled or unfilterable custom-field keys return `400`; malformed values for usable fields return `422`. Operator-scoped fields match only ID tags whose current operator is assigned to the field. Custom-field filters are applied before pagination. URL-encode query keys and values when sending the request.",
|
|
25919
26384
|
"schema": {
|
|
25920
26385
|
"type": "object",
|
|
25921
26386
|
"properties": {
|
|
@@ -26007,6 +26472,11 @@
|
|
|
26007
26472
|
"type": "string",
|
|
26008
26473
|
"format": "date-time",
|
|
26009
26474
|
"description": "ISO 8601 formatted date. Lists only the id tags that were last updated on and before this datetime"
|
|
26475
|
+
},
|
|
26476
|
+
"customFields": {
|
|
26477
|
+
"type": "object",
|
|
26478
|
+
"additionalProperties": true,
|
|
26479
|
+
"description": "Filter a resource listing by administrator-defined custom fields using literal dotted keys such as `filter[customFields.reference]=INV-42`, not nested `filter[customFields][reference]` keys. Text, email and URL fields accept a single string and use case- and accent-insensitive substring matching; `%`, `_` and backslashes are matched literally. Boolean fields accept `true`, `false`, `1` or `0` as strings, or boolean and integer equivalents. Number, date and date-time fields accept inclusive `filter[customFields.<identifier>][from]` and/or `filter[customFields.<identifier>][to]` bounds, including one-sided ranges. Number bounds are decimal strings from `-99999999999999.999999` to `99999999999999.999999` with at most six fractional places, compared without rounding. Dates use `YYYY-MM-DD` calendar dates; date-times use ISO 8601, with offsets normalized to UTC and no offset interpreted as UTC. Long text and JSON fields are not filterable. Custom-field criteria combine with each other and the resource's other filters using AND. Empty criteria have no effect. Malformed values for usable fields return a property-bound `422` validation error. See each listing operation for how it handles unsupported nonempty criteria."
|
|
26010
26480
|
}
|
|
26011
26481
|
}
|
|
26012
26482
|
}
|
|
@@ -26017,6 +26487,9 @@
|
|
|
26017
26487
|
"200": {
|
|
26018
26488
|
"description": "Success"
|
|
26019
26489
|
},
|
|
26490
|
+
"400": {
|
|
26491
|
+
"description": "Bad Request"
|
|
26492
|
+
},
|
|
26020
26493
|
"401": {
|
|
26021
26494
|
"description": "Access token is missing or invalid"
|
|
26022
26495
|
},
|
|
@@ -27581,6 +28054,11 @@
|
|
|
27581
28054
|
"type": "string",
|
|
27582
28055
|
"format": "date-time",
|
|
27583
28056
|
"description": "Lists the installer jobs that have been last updated before the specified date and time, please provide the value as an ISO 8601 formatted date"
|
|
28057
|
+
},
|
|
28058
|
+
"customFields": {
|
|
28059
|
+
"type": "object",
|
|
28060
|
+
"additionalProperties": true,
|
|
28061
|
+
"description": "Filter a resource listing by administrator-defined custom fields using literal dotted keys such as `filter[customFields.reference]=INV-42`, not nested `filter[customFields][reference]` keys. Text, email and URL fields accept a single string and use case- and accent-insensitive substring matching; `%`, `_` and backslashes are matched literally. Boolean fields accept `true`, `false`, `1` or `0` as strings, or boolean and integer equivalents. Number, date and date-time fields accept inclusive `filter[customFields.<identifier>][from]` and/or `filter[customFields.<identifier>][to]` bounds, including one-sided ranges. Number bounds are decimal strings from `-99999999999999.999999` to `99999999999999.999999` with at most six fractional places, compared without rounding. Dates use `YYYY-MM-DD` calendar dates; date-times use ISO 8601, with offsets normalized to UTC and no offset interpreted as UTC. Long text and JSON fields are not filterable. Custom-field criteria combine with each other and the resource's other filters using AND. Empty criteria have no effect. Malformed values for usable fields return a property-bound `422` validation error. See each listing operation for how it handles unsupported nonempty criteria."
|
|
27584
28062
|
}
|
|
27585
28063
|
}
|
|
27586
28064
|
}
|
|
@@ -27607,6 +28085,9 @@
|
|
|
27607
28085
|
"200": {
|
|
27608
28086
|
"description": "Success"
|
|
27609
28087
|
},
|
|
28088
|
+
"400": {
|
|
28089
|
+
"description": "Bad Request"
|
|
28090
|
+
},
|
|
27610
28091
|
"401": {
|
|
27611
28092
|
"description": "Access token is missing or invalid"
|
|
27612
28093
|
},
|
|
@@ -35026,49 +35507,51 @@
|
|
|
35026
35507
|
"type": "number",
|
|
35027
35508
|
"format": "float",
|
|
35028
35509
|
"minimum": 0,
|
|
35029
|
-
"maximum": 100
|
|
35510
|
+
"maximum": 100,
|
|
35511
|
+
"description": "Applied to the session amount without tax, after any session fees and electricity cost are deducted."
|
|
35030
35512
|
},
|
|
35031
35513
|
"partnerSharePercentageDcEvse": {
|
|
35032
35514
|
"type": "number",
|
|
35033
35515
|
"format": "float",
|
|
35034
35516
|
"minimum": 0,
|
|
35035
|
-
"maximum": 100
|
|
35517
|
+
"maximum": 100,
|
|
35518
|
+
"description": "Applied to the session amount without tax, after any session fees and electricity cost are deducted."
|
|
35036
35519
|
},
|
|
35037
35520
|
"excludeConnectionFee": {
|
|
35038
35521
|
"type": "boolean",
|
|
35039
|
-
"description": "If the tariff has a
|
|
35522
|
+
"description": "If true and the tariff has a connection fee, the partner receives no share of it and the operator keeps it in full. The connection fee excluded is the amount without tax."
|
|
35040
35523
|
},
|
|
35041
35524
|
"deductElectricityCost": {
|
|
35042
35525
|
"type": "boolean",
|
|
35043
|
-
"description": "The cost
|
|
35526
|
+
"description": "The electricity cost without tax is deducted from the session amount, together with the session fees, before the partner's share is calculated."
|
|
35044
35527
|
},
|
|
35045
35528
|
"reimburseForElectricityCost": {
|
|
35046
35529
|
"type": "boolean",
|
|
35047
|
-
"description": "If
|
|
35530
|
+
"description": "If true, the partner also receives the electricity cost. The partner receives (Revenue − Deducted fees − Electricity cost) × Partner percentage + Electricity cost, where revenue and electricity cost are the amounts without tax and deducted fees are the fixed fee per session, the fee per kWh and the handling fee. It can be supplied only if `deductElectricityCost` is true."
|
|
35048
35531
|
},
|
|
35049
35532
|
"fixedFeePerSessionAc": {
|
|
35050
35533
|
"type": "number",
|
|
35051
35534
|
"format": "float",
|
|
35052
35535
|
"nullable": true,
|
|
35053
|
-
"description": "
|
|
35536
|
+
"description": "Flat fee without tax for every billed session on an AC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35054
35537
|
},
|
|
35055
35538
|
"fixedFeePerSessionDc": {
|
|
35056
35539
|
"type": "number",
|
|
35057
35540
|
"format": "float",
|
|
35058
35541
|
"nullable": true,
|
|
35059
|
-
"description": "
|
|
35542
|
+
"description": "Flat fee without tax for every billed session on a DC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35060
35543
|
},
|
|
35061
35544
|
"feePerKwhAc": {
|
|
35062
35545
|
"type": "number",
|
|
35063
35546
|
"format": "float",
|
|
35064
35547
|
"nullable": true,
|
|
35065
|
-
"description": "
|
|
35548
|
+
"description": "Flat fee without tax for every billed kWh on an AC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35066
35549
|
},
|
|
35067
35550
|
"feePerKwhDc": {
|
|
35068
35551
|
"type": "number",
|
|
35069
35552
|
"format": "float",
|
|
35070
35553
|
"nullable": true,
|
|
35071
|
-
"description": "
|
|
35554
|
+
"description": "Flat fee without tax for every billed kWh on a DC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35072
35555
|
},
|
|
35073
35556
|
"handlingFee": {
|
|
35074
35557
|
"type": "number",
|
|
@@ -35076,7 +35559,7 @@
|
|
|
35076
35559
|
"minimum": 0,
|
|
35077
35560
|
"maximum": 100,
|
|
35078
35561
|
"nullable": true,
|
|
35079
|
-
"description": "
|
|
35562
|
+
"description": "A percentage of the total amount the user paid for the session, including tax. It is taken off the session amount before the partner's share is calculated."
|
|
35080
35563
|
}
|
|
35081
35564
|
}
|
|
35082
35565
|
},
|
|
@@ -35086,17 +35569,17 @@
|
|
|
35086
35569
|
"perChargePoint": {
|
|
35087
35570
|
"type": "number",
|
|
35088
35571
|
"format": "float",
|
|
35089
|
-
"description": "The
|
|
35572
|
+
"description": "The amount without tax."
|
|
35090
35573
|
},
|
|
35091
35574
|
"perAcEvse": {
|
|
35092
35575
|
"type": "number",
|
|
35093
35576
|
"format": "float",
|
|
35094
|
-
"description": "The
|
|
35577
|
+
"description": "The amount without tax."
|
|
35095
35578
|
},
|
|
35096
35579
|
"perDcEvse": {
|
|
35097
35580
|
"type": "number",
|
|
35098
35581
|
"format": "float",
|
|
35099
|
-
"description": "The
|
|
35582
|
+
"description": "The amount without tax."
|
|
35100
35583
|
}
|
|
35101
35584
|
}
|
|
35102
35585
|
},
|
|
@@ -35279,49 +35762,51 @@
|
|
|
35279
35762
|
"type": "number",
|
|
35280
35763
|
"format": "float",
|
|
35281
35764
|
"minimum": 0,
|
|
35282
|
-
"maximum": 100
|
|
35765
|
+
"maximum": 100,
|
|
35766
|
+
"description": "Applied to the session amount without tax, after any session fees and electricity cost are deducted."
|
|
35283
35767
|
},
|
|
35284
35768
|
"partnerSharePercentageDcEvse": {
|
|
35285
35769
|
"type": "number",
|
|
35286
35770
|
"format": "float",
|
|
35287
35771
|
"minimum": 0,
|
|
35288
|
-
"maximum": 100
|
|
35772
|
+
"maximum": 100,
|
|
35773
|
+
"description": "Applied to the session amount without tax, after any session fees and electricity cost are deducted."
|
|
35289
35774
|
},
|
|
35290
35775
|
"excludeConnectionFee": {
|
|
35291
35776
|
"type": "boolean",
|
|
35292
|
-
"description": "If the tariff has a
|
|
35777
|
+
"description": "If true and the tariff has a connection fee, the partner receives no share of it and the operator keeps it in full. The connection fee excluded is the amount without tax."
|
|
35293
35778
|
},
|
|
35294
35779
|
"deductElectricityCost": {
|
|
35295
35780
|
"type": "boolean",
|
|
35296
|
-
"description": "The cost
|
|
35781
|
+
"description": "The electricity cost without tax is deducted from the session amount, together with the session fees, before the partner's share is calculated."
|
|
35297
35782
|
},
|
|
35298
35783
|
"reimburseForElectricityCost": {
|
|
35299
35784
|
"type": "boolean",
|
|
35300
|
-
"description": "If
|
|
35785
|
+
"description": "If true, the partner also receives the electricity cost. The partner receives (Revenue − Deducted fees − Electricity cost) × Partner percentage + Electricity cost, where revenue and electricity cost are the amounts without tax and deducted fees are the fixed fee per session, the fee per kWh and the handling fee. It can be supplied only if `deductElectricityCost` is true."
|
|
35301
35786
|
},
|
|
35302
35787
|
"fixedFeePerSessionAc": {
|
|
35303
35788
|
"type": "number",
|
|
35304
35789
|
"format": "float",
|
|
35305
35790
|
"nullable": true,
|
|
35306
|
-
"description": "
|
|
35791
|
+
"description": "Flat fee without tax for every billed session on an AC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35307
35792
|
},
|
|
35308
35793
|
"fixedFeePerSessionDc": {
|
|
35309
35794
|
"type": "number",
|
|
35310
35795
|
"format": "float",
|
|
35311
35796
|
"nullable": true,
|
|
35312
|
-
"description": "
|
|
35797
|
+
"description": "Flat fee without tax for every billed session on a DC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35313
35798
|
},
|
|
35314
35799
|
"feePerKwhAc": {
|
|
35315
35800
|
"type": "number",
|
|
35316
35801
|
"format": "float",
|
|
35317
35802
|
"nullable": true,
|
|
35318
|
-
"description": "
|
|
35803
|
+
"description": "Flat fee without tax for every billed kWh on an AC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35319
35804
|
},
|
|
35320
35805
|
"feePerKwhDc": {
|
|
35321
35806
|
"type": "number",
|
|
35322
35807
|
"format": "float",
|
|
35323
35808
|
"nullable": true,
|
|
35324
|
-
"description": "
|
|
35809
|
+
"description": "Flat fee without tax for every billed kWh on a DC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35325
35810
|
},
|
|
35326
35811
|
"handlingFee": {
|
|
35327
35812
|
"type": "number",
|
|
@@ -35329,7 +35814,7 @@
|
|
|
35329
35814
|
"minimum": 0,
|
|
35330
35815
|
"maximum": 100,
|
|
35331
35816
|
"nullable": true,
|
|
35332
|
-
"description": "
|
|
35817
|
+
"description": "A percentage of the total amount the user paid for the session, including tax. It is taken off the session amount before the partner's share is calculated."
|
|
35333
35818
|
}
|
|
35334
35819
|
}
|
|
35335
35820
|
},
|
|
@@ -35339,17 +35824,17 @@
|
|
|
35339
35824
|
"perChargePoint": {
|
|
35340
35825
|
"type": "number",
|
|
35341
35826
|
"format": "float",
|
|
35342
|
-
"description": "The
|
|
35827
|
+
"description": "The amount without tax."
|
|
35343
35828
|
},
|
|
35344
35829
|
"perAcEvse": {
|
|
35345
35830
|
"type": "number",
|
|
35346
35831
|
"format": "float",
|
|
35347
|
-
"description": "The
|
|
35832
|
+
"description": "The amount without tax."
|
|
35348
35833
|
},
|
|
35349
35834
|
"perDcEvse": {
|
|
35350
35835
|
"type": "number",
|
|
35351
35836
|
"format": "float",
|
|
35352
|
-
"description": "The
|
|
35837
|
+
"description": "The amount without tax."
|
|
35353
35838
|
}
|
|
35354
35839
|
}
|
|
35355
35840
|
},
|
|
@@ -35509,49 +35994,51 @@
|
|
|
35509
35994
|
"type": "number",
|
|
35510
35995
|
"format": "float",
|
|
35511
35996
|
"minimum": 0,
|
|
35512
|
-
"maximum": 100
|
|
35997
|
+
"maximum": 100,
|
|
35998
|
+
"description": "Applied to the session amount without tax, after any session fees and electricity cost are deducted."
|
|
35513
35999
|
},
|
|
35514
36000
|
"partnerSharePercentageDcEvse": {
|
|
35515
36001
|
"type": "number",
|
|
35516
36002
|
"format": "float",
|
|
35517
36003
|
"minimum": 0,
|
|
35518
|
-
"maximum": 100
|
|
36004
|
+
"maximum": 100,
|
|
36005
|
+
"description": "Applied to the session amount without tax, after any session fees and electricity cost are deducted."
|
|
35519
36006
|
},
|
|
35520
36007
|
"excludeConnectionFee": {
|
|
35521
36008
|
"type": "boolean",
|
|
35522
|
-
"description": "If the tariff has a
|
|
36009
|
+
"description": "If true and the tariff has a connection fee, the partner receives no share of it and the operator keeps it in full. The connection fee excluded is the amount without tax."
|
|
35523
36010
|
},
|
|
35524
36011
|
"deductElectricityCost": {
|
|
35525
36012
|
"type": "boolean",
|
|
35526
|
-
"description": "The cost
|
|
36013
|
+
"description": "The electricity cost without tax is deducted from the session amount, together with the session fees, before the partner's share is calculated."
|
|
35527
36014
|
},
|
|
35528
36015
|
"reimburseForElectricityCost": {
|
|
35529
36016
|
"type": "boolean",
|
|
35530
|
-
"description": "If
|
|
36017
|
+
"description": "If true, the partner also receives the electricity cost. The partner receives (Revenue − Deducted fees − Electricity cost) × Partner percentage + Electricity cost, where revenue and electricity cost are the amounts without tax and deducted fees are the fixed fee per session, the fee per kWh and the handling fee. It can be supplied only if `deductElectricityCost` is true."
|
|
35531
36018
|
},
|
|
35532
36019
|
"fixedFeePerSessionAc": {
|
|
35533
36020
|
"type": "number",
|
|
35534
36021
|
"format": "float",
|
|
35535
36022
|
"nullable": true,
|
|
35536
|
-
"description": "
|
|
36023
|
+
"description": "Flat fee without tax for every billed session on an AC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35537
36024
|
},
|
|
35538
36025
|
"fixedFeePerSessionDc": {
|
|
35539
36026
|
"type": "number",
|
|
35540
36027
|
"format": "float",
|
|
35541
36028
|
"nullable": true,
|
|
35542
|
-
"description": "
|
|
36029
|
+
"description": "Flat fee without tax for every billed session on a DC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35543
36030
|
},
|
|
35544
36031
|
"feePerKwhAc": {
|
|
35545
36032
|
"type": "number",
|
|
35546
36033
|
"format": "float",
|
|
35547
36034
|
"nullable": true,
|
|
35548
|
-
"description": "
|
|
36035
|
+
"description": "Flat fee without tax for every billed kWh on an AC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35549
36036
|
},
|
|
35550
36037
|
"feePerKwhDc": {
|
|
35551
36038
|
"type": "number",
|
|
35552
36039
|
"format": "float",
|
|
35553
36040
|
"nullable": true,
|
|
35554
|
-
"description": "
|
|
36041
|
+
"description": "Flat fee without tax for every billed kWh on a DC charge point. It is taken off the session amount before the partner's share is calculated, and the operator keeps it in full."
|
|
35555
36042
|
},
|
|
35556
36043
|
"handlingFee": {
|
|
35557
36044
|
"type": "number",
|
|
@@ -35559,7 +36046,7 @@
|
|
|
35559
36046
|
"minimum": 0,
|
|
35560
36047
|
"maximum": 100,
|
|
35561
36048
|
"nullable": true,
|
|
35562
|
-
"description": "
|
|
36049
|
+
"description": "A percentage of the total amount the user paid for the session, including tax. It is taken off the session amount before the partner's share is calculated."
|
|
35563
36050
|
}
|
|
35564
36051
|
}
|
|
35565
36052
|
},
|
|
@@ -35569,17 +36056,17 @@
|
|
|
35569
36056
|
"perChargePoint": {
|
|
35570
36057
|
"type": "number",
|
|
35571
36058
|
"format": "float",
|
|
35572
|
-
"description": "The
|
|
36059
|
+
"description": "The amount without tax."
|
|
35573
36060
|
},
|
|
35574
36061
|
"perAcEvse": {
|
|
35575
36062
|
"type": "number",
|
|
35576
36063
|
"format": "float",
|
|
35577
|
-
"description": "The
|
|
36064
|
+
"description": "The amount without tax."
|
|
35578
36065
|
},
|
|
35579
36066
|
"perDcEvse": {
|
|
35580
36067
|
"type": "number",
|
|
35581
36068
|
"format": "float",
|
|
35582
|
-
"description": "The
|
|
36069
|
+
"description": "The amount without tax."
|
|
35583
36070
|
}
|
|
35584
36071
|
}
|
|
35585
36072
|
},
|
|
@@ -35737,7 +36224,7 @@
|
|
|
35737
36224
|
"minimum": 0,
|
|
35738
36225
|
"maximum": 100,
|
|
35739
36226
|
"example": 70.5,
|
|
35740
|
-
"description": "Partner share percentage applied to AC sessions matched by this override. Omit to inherit the value from the partner contract. At least one of `acPercent` and `dcPercent` must be provided."
|
|
36227
|
+
"description": "Partner share percentage applied to AC sessions matched by this override. Applied to the session amount without tax, after any session fees and electricity cost are deducted. Omit to inherit the value from the partner contract. At least one of `acPercent` and `dcPercent` must be provided."
|
|
35741
36228
|
},
|
|
35742
36229
|
"dcPercent": {
|
|
35743
36230
|
"type": "number",
|
|
@@ -35745,7 +36232,7 @@
|
|
|
35745
36232
|
"minimum": 0,
|
|
35746
36233
|
"maximum": 100,
|
|
35747
36234
|
"example": 60,
|
|
35748
|
-
"description": "Partner share percentage applied to DC sessions matched by this override. Omit to inherit the value from the partner contract. At least one of `acPercent` and `dcPercent` must be provided."
|
|
36235
|
+
"description": "Partner share percentage applied to DC sessions matched by this override. Applied to the session amount without tax, after any session fees and electricity cost are deducted. Omit to inherit the value from the partner contract. At least one of `acPercent` and `dcPercent` must be provided."
|
|
35749
36236
|
}
|
|
35750
36237
|
},
|
|
35751
36238
|
"required": [
|
|
@@ -35908,7 +36395,7 @@
|
|
|
35908
36395
|
"maximum": 100,
|
|
35909
36396
|
"example": 70.5,
|
|
35910
36397
|
"nullable": true,
|
|
35911
|
-
"description": "Partner share percentage applied to AC sessions matched by this override. Send `null` to inherit the value from the partner contract. `acPercent` and `dcPercent` cannot both end up inherited."
|
|
36398
|
+
"description": "Partner share percentage applied to AC sessions matched by this override. Applied to the session amount without tax, after any session fees and electricity cost are deducted. Send `null` to inherit the value from the partner contract. `acPercent` and `dcPercent` cannot both end up inherited."
|
|
35912
36399
|
},
|
|
35913
36400
|
"dcPercent": {
|
|
35914
36401
|
"type": "number",
|
|
@@ -35917,7 +36404,7 @@
|
|
|
35917
36404
|
"maximum": 100,
|
|
35918
36405
|
"example": 60,
|
|
35919
36406
|
"nullable": true,
|
|
35920
|
-
"description": "Partner share percentage applied to DC sessions matched by this override. Send `null` to inherit the value from the partner contract. `acPercent` and `dcPercent` cannot both end up inherited."
|
|
36407
|
+
"description": "Partner share percentage applied to DC sessions matched by this override. Applied to the session amount without tax, after any session fees and electricity cost are deducted. Send `null` to inherit the value from the partner contract. `acPercent` and `dcPercent` cannot both end up inherited."
|
|
35921
36408
|
}
|
|
35922
36409
|
},
|
|
35923
36410
|
"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. Settlement override update schema. Omitted properties keep their current value; `restriction` is replaced as a whole when present."
|
|
@@ -39323,7 +39810,9 @@
|
|
|
39323
39810
|
"it-CH",
|
|
39324
39811
|
"en-GB",
|
|
39325
39812
|
"mt",
|
|
39326
|
-
"tl-PH"
|
|
39813
|
+
"tl-PH",
|
|
39814
|
+
"vi-VN",
|
|
39815
|
+
"sk"
|
|
39327
39816
|
],
|
|
39328
39817
|
"description": "IETF language tag."
|
|
39329
39818
|
},
|
|
@@ -39660,7 +40149,7 @@
|
|
|
39660
40149
|
"paid"
|
|
39661
40150
|
],
|
|
39662
40151
|
"example": "unpaid",
|
|
39663
|
-
"description": "Partner invoice payment status: - **unpaid**:
|
|
40152
|
+
"description": "Partner invoice payment status: - **unpaid**: `amountPaid` is zero or below and `totalAmount.withTax` is above zero — nothing has been registered against an invoice that has something to collect. - **partially_paid**: `amountPaid` is above zero but below `totalAmount.withTax`. - **paid**: `amountPaid` reaches or exceeds `totalAmount.withTax`. An invoice whose total is zero is `paid` from creation, with nothing registered against it, and an overpayment stays `paid`. These rules apply to documents with `type` `invoice`. A document with `type` `credit_note` always reports `unpaid` and never changes — payments are not tracked against credit notes."
|
|
39664
40153
|
},
|
|
39665
40154
|
"type": {
|
|
39666
40155
|
"type": "string",
|
|
@@ -40206,7 +40695,7 @@
|
|
|
40206
40695
|
"method": "POST",
|
|
40207
40696
|
"operationId": "partnerSettlementReportPartnerSettlementRecordCreate",
|
|
40208
40697
|
"summary": "Partner Settlement Report / Partner Settlement Record / Create",
|
|
40209
|
-
"description": "Create Partner Settlement Record",
|
|
40698
|
+
"description": "Create Partner Settlement Record. A `409` with `errorCode` `payment_tracking_managed_via_partner_invoice` is returned once the settlement report has at least one partner invoice. From that point payments for the report are tracked by registering them on its partner invoices — use `POST actions/partner-invoice/v1.0/{partnerInvoice}/register-payment` instead. Listing and reading records stay available as read-only history.",
|
|
40210
40699
|
"tags": [
|
|
40211
40700
|
"resource / partner settlement reports"
|
|
40212
40701
|
],
|
|
@@ -40227,13 +40716,16 @@
|
|
|
40227
40716
|
"properties": {
|
|
40228
40717
|
"date": {
|
|
40229
40718
|
"type": "string",
|
|
40230
|
-
"format": "date"
|
|
40719
|
+
"format": "date",
|
|
40720
|
+
"description": "Date the payment was made."
|
|
40231
40721
|
},
|
|
40232
40722
|
"paidAmount": {
|
|
40233
|
-
"type": "number"
|
|
40723
|
+
"type": "number",
|
|
40724
|
+
"description": "Amount recorded as paid, in the settlement report's currency. Negative values record a reversing entry."
|
|
40234
40725
|
},
|
|
40235
40726
|
"note": {
|
|
40236
|
-
"type": "string"
|
|
40727
|
+
"type": "string",
|
|
40728
|
+
"description": "Free-text note on the settlement record."
|
|
40237
40729
|
}
|
|
40238
40730
|
},
|
|
40239
40731
|
"required": [
|
|
@@ -40258,6 +40750,9 @@
|
|
|
40258
40750
|
"404": {
|
|
40259
40751
|
"description": "The record is not found"
|
|
40260
40752
|
},
|
|
40753
|
+
"409": {
|
|
40754
|
+
"description": "The settlement record could not be written because the settlement report has at least one partner invoice. Payments for such a report are tracked by registering them on its partner invoices."
|
|
40755
|
+
},
|
|
40261
40756
|
"422": {
|
|
40262
40757
|
"description": "The payload you provided is invalid"
|
|
40263
40758
|
},
|
|
@@ -40310,7 +40805,7 @@
|
|
|
40310
40805
|
"method": "PUT",
|
|
40311
40806
|
"operationId": "partnerSettlementReportPartnerSettlementRecordUpdate",
|
|
40312
40807
|
"summary": "Partner Settlement Report / Partner Settlement Record / Update",
|
|
40313
|
-
"description": "Update a single Partner Settlement Record",
|
|
40808
|
+
"description": "Update a single Partner Settlement Record. A `409` with `errorCode` `payment_tracking_managed_via_partner_invoice` is returned once the settlement report has at least one partner invoice. Records linked to an invoice are immutable history — correct a wrong entry by registering a reversing payment with a negative `paidAmount` through `POST actions/partner-invoice/v1.0/{partnerInvoice}/register-payment`.",
|
|
40314
40809
|
"tags": [
|
|
40315
40810
|
"resource / partner settlement reports"
|
|
40316
40811
|
],
|
|
@@ -40335,13 +40830,16 @@
|
|
|
40335
40830
|
"properties": {
|
|
40336
40831
|
"date": {
|
|
40337
40832
|
"type": "string",
|
|
40338
|
-
"format": "date"
|
|
40833
|
+
"format": "date",
|
|
40834
|
+
"description": "Date the payment was made."
|
|
40339
40835
|
},
|
|
40340
40836
|
"paidAmount": {
|
|
40341
|
-
"type": "number"
|
|
40837
|
+
"type": "number",
|
|
40838
|
+
"description": "Amount recorded as paid, in the settlement report's currency. Negative values record a reversing entry."
|
|
40342
40839
|
},
|
|
40343
40840
|
"note": {
|
|
40344
|
-
"type": "string"
|
|
40841
|
+
"type": "string",
|
|
40842
|
+
"description": "Free-text note on the settlement record."
|
|
40345
40843
|
}
|
|
40346
40844
|
},
|
|
40347
40845
|
"required": [
|
|
@@ -40366,6 +40864,9 @@
|
|
|
40366
40864
|
"404": {
|
|
40367
40865
|
"description": "The record is not found"
|
|
40368
40866
|
},
|
|
40867
|
+
"409": {
|
|
40868
|
+
"description": "The settlement record could not be written because the settlement report has at least one partner invoice. Payments for such a report are tracked by registering them on its partner invoices."
|
|
40869
|
+
},
|
|
40369
40870
|
"422": {
|
|
40370
40871
|
"description": "The payload you provided is invalid"
|
|
40371
40872
|
},
|
|
@@ -40379,7 +40880,7 @@
|
|
|
40379
40880
|
"method": "DELETE",
|
|
40380
40881
|
"operationId": "partnerSettlementReportPartnerSettlementRecordDelete",
|
|
40381
40882
|
"summary": "Partner Settlement Report / Partner Settlement Record / Delete",
|
|
40382
|
-
"description": "Delete a single Partner Settlement Record",
|
|
40883
|
+
"description": "Delete a single Partner Settlement Record. A `409` with `errorCode` `payment_tracking_managed_via_partner_invoice` is returned once the settlement report has at least one partner invoice. Deleting would silently move the invoice's computed `amountPaid`, so corrections are made by registering a reversing payment with a negative `paidAmount` through `POST actions/partner-invoice/v1.0/{partnerInvoice}/register-payment` instead.",
|
|
40383
40884
|
"tags": [
|
|
40384
40885
|
"resource / partner settlement reports"
|
|
40385
40886
|
],
|
|
@@ -40408,6 +40909,9 @@
|
|
|
40408
40909
|
"404": {
|
|
40409
40910
|
"description": "The record is not found"
|
|
40410
40911
|
},
|
|
40912
|
+
"409": {
|
|
40913
|
+
"description": "The settlement record could not be written because the settlement report has at least one partner invoice. Payments for such a report are tracked by registering them on its partner invoices."
|
|
40914
|
+
},
|
|
40411
40915
|
"422": {
|
|
40412
40916
|
"description": "The payload you provided is invalid"
|
|
40413
40917
|
},
|
|
@@ -47138,6 +47642,14 @@
|
|
|
47138
47642
|
"externalId": {
|
|
47139
47643
|
"type": "string",
|
|
47140
47644
|
"description": "An optional external identifier for the terminal that can be used to reference it in external systems."
|
|
47645
|
+
},
|
|
47646
|
+
"operationMode": {
|
|
47647
|
+
"type": "string",
|
|
47648
|
+
"enum": [
|
|
47649
|
+
"always_on",
|
|
47650
|
+
"plug_in_first"
|
|
47651
|
+
],
|
|
47652
|
+
"description": "The active Payter payment terminal behavior: - **always_on**: The terminal keeps a preauthorized payment available while linked to a single charge point. - **plug_in_first**: The terminal starts the payment flow after a vehicle is plugged in."
|
|
47141
47653
|
}
|
|
47142
47654
|
},
|
|
47143
47655
|
"required": [
|
|
@@ -48635,6 +49147,14 @@
|
|
|
48635
49147
|
"externalId": {
|
|
48636
49148
|
"type": "string",
|
|
48637
49149
|
"description": "An optional external identifier for the terminal that can be used to reference it in external systems."
|
|
49150
|
+
},
|
|
49151
|
+
"operationMode": {
|
|
49152
|
+
"type": "string",
|
|
49153
|
+
"enum": [
|
|
49154
|
+
"always_on",
|
|
49155
|
+
"plug_in_first"
|
|
49156
|
+
],
|
|
49157
|
+
"description": "The active Payter payment terminal behavior: - **always_on**: The terminal keeps a preauthorized payment available while linked to a single charge point. - **plug_in_first**: The terminal starts the payment flow after a vehicle is plugged in."
|
|
48638
49158
|
}
|
|
48639
49159
|
},
|
|
48640
49160
|
"oneOf": [
|
|
@@ -57471,7 +57991,7 @@
|
|
|
57471
57991
|
"method": "GET",
|
|
57472
57992
|
"operationId": "tariffGroupsListing",
|
|
57473
57993
|
"summary": "Tariff Groups / Listing",
|
|
57474
|
-
"description": "Get all tariff groups",
|
|
57994
|
+
"description": "Get all tariff groups. Nonempty custom-field filter criteria for unknown, inaccessible, disabled, deleted or non-filterable fields return `400`. Malformed values for usable custom-field filters return `422`.",
|
|
57475
57995
|
"tags": [
|
|
57476
57996
|
"resource / tariffs"
|
|
57477
57997
|
],
|
|
@@ -57521,6 +58041,11 @@
|
|
|
57521
58041
|
"type": "string",
|
|
57522
58042
|
"format": "date-time",
|
|
57523
58043
|
"description": "ISO 8601 formatted date. Lists only the tariff groups that were created on and before this datetime"
|
|
58044
|
+
},
|
|
58045
|
+
"customFields": {
|
|
58046
|
+
"type": "object",
|
|
58047
|
+
"additionalProperties": true,
|
|
58048
|
+
"description": "Filter a resource listing by administrator-defined custom fields using literal dotted keys such as `filter[customFields.reference]=INV-42`, not nested `filter[customFields][reference]` keys. Text, email and URL fields accept a single string and use case- and accent-insensitive substring matching; `%`, `_` and backslashes are matched literally. Boolean fields accept `true`, `false`, `1` or `0` as strings, or boolean and integer equivalents. Number, date and date-time fields accept inclusive `filter[customFields.<identifier>][from]` and/or `filter[customFields.<identifier>][to]` bounds, including one-sided ranges. Number bounds are decimal strings from `-99999999999999.999999` to `99999999999999.999999` with at most six fractional places, compared without rounding. Dates use `YYYY-MM-DD` calendar dates; date-times use ISO 8601, with offsets normalized to UTC and no offset interpreted as UTC. Long text and JSON fields are not filterable. Custom-field criteria combine with each other and the resource's other filters using AND. Empty criteria have no effect. Malformed values for usable fields return a property-bound `422` validation error. See each listing operation for how it handles unsupported nonempty criteria."
|
|
57524
58049
|
}
|
|
57525
58050
|
}
|
|
57526
58051
|
}
|
|
@@ -57547,6 +58072,9 @@
|
|
|
57547
58072
|
"200": {
|
|
57548
58073
|
"description": "Success"
|
|
57549
58074
|
},
|
|
58075
|
+
"400": {
|
|
58076
|
+
"description": "Bad Request"
|
|
58077
|
+
},
|
|
57550
58078
|
"401": {
|
|
57551
58079
|
"description": "Access token is missing or invalid"
|
|
57552
58080
|
},
|
|
@@ -57835,7 +58363,7 @@
|
|
|
57835
58363
|
"method": "GET",
|
|
57836
58364
|
"operationId": "tariffsListing",
|
|
57837
58365
|
"summary": "Tariffs / Listing",
|
|
57838
|
-
"description": "Get all tariff. Also you could use the `tariffGroupId` and the `userId` to \"resolve\" the concrete tariff within a group that would be applied to the specified user.",
|
|
58366
|
+
"description": "Get all tariff. Also you could use the `tariffGroupId` and the `userId` to \"resolve\" the concrete tariff within a group that would be applied to the specified user. Nonempty custom-field filter criteria for unknown, inaccessible, disabled, deleted or non-filterable fields return `400`. Malformed values for usable custom-field filters return `422`.",
|
|
57839
58367
|
"tags": [
|
|
57840
58368
|
"resource / tariffs"
|
|
57841
58369
|
],
|
|
@@ -57890,6 +58418,11 @@
|
|
|
57890
58418
|
"type": "string",
|
|
57891
58419
|
"format": "date-time",
|
|
57892
58420
|
"description": "ISO 8601 formatted date. Lists only the tariffs that were last updated on and before this datetime"
|
|
58421
|
+
},
|
|
58422
|
+
"customFields": {
|
|
58423
|
+
"type": "object",
|
|
58424
|
+
"additionalProperties": true,
|
|
58425
|
+
"description": "Filter a resource listing by administrator-defined custom fields using literal dotted keys such as `filter[customFields.reference]=INV-42`, not nested `filter[customFields][reference]` keys. Text, email and URL fields accept a single string and use case- and accent-insensitive substring matching; `%`, `_` and backslashes are matched literally. Boolean fields accept `true`, `false`, `1` or `0` as strings, or boolean and integer equivalents. Number, date and date-time fields accept inclusive `filter[customFields.<identifier>][from]` and/or `filter[customFields.<identifier>][to]` bounds, including one-sided ranges. Number bounds are decimal strings from `-99999999999999.999999` to `99999999999999.999999` with at most six fractional places, compared without rounding. Dates use `YYYY-MM-DD` calendar dates; date-times use ISO 8601, with offsets normalized to UTC and no offset interpreted as UTC. Long text and JSON fields are not filterable. Custom-field criteria combine with each other and the resource's other filters using AND. Empty criteria have no effect. Malformed values for usable fields return a property-bound `422` validation error. See each listing operation for how it handles unsupported nonempty criteria."
|
|
57893
58426
|
}
|
|
57894
58427
|
}
|
|
57895
58428
|
}
|
|
@@ -57916,6 +58449,9 @@
|
|
|
57916
58449
|
"200": {
|
|
57917
58450
|
"description": "Success"
|
|
57918
58451
|
},
|
|
58452
|
+
"400": {
|
|
58453
|
+
"description": "Bad Request"
|
|
58454
|
+
},
|
|
57919
58455
|
"401": {
|
|
57920
58456
|
"description": "Access token is missing or invalid"
|
|
57921
58457
|
},
|
|
@@ -64094,7 +64630,7 @@
|
|
|
64094
64630
|
"method": "GET",
|
|
64095
64631
|
"operationId": "transactionsListing",
|
|
64096
64632
|
"summary": "Transactions / Listing",
|
|
64097
|
-
"description": "Get all transactions. Nonempty custom-field filter criteria for unknown, inaccessible, disabled, deleted or non-filterable fields
|
|
64633
|
+
"description": "Get all transactions. Nonempty custom-field filter criteria for unknown, inaccessible, disabled, deleted or non-filterable fields return `400`. Malformed values for usable custom-field filters return `422`.",
|
|
64098
64634
|
"tags": [
|
|
64099
64635
|
"resource / transactions"
|
|
64100
64636
|
],
|
|
@@ -65473,7 +66009,9 @@
|
|
|
65473
66009
|
"format": "date-time",
|
|
65474
66010
|
"description": "ISO 8601 formatted date. Lists only the user group records that were created on and before this datetime"
|
|
65475
66011
|
}
|
|
65476
|
-
}
|
|
66012
|
+
},
|
|
66013
|
+
"additionalProperties": true,
|
|
66014
|
+
"description": "Send custom field criteria as literal dotted keys `filter[customFields.<identifier>]`, not as nested `filter[customFields][<identifier>]` keys. Text, email, and URL fields accept a string matched as a case- and accent-insensitive substring, with `%`, `_`, and backslash treated literally. Boolean fields accept `true`, `false`, `1`, or `0`. Number, date, and date-time fields accept inclusive `filter[customFields.<identifier>][from]` and/or `filter[customFields.<identifier>][to]` bounds; when both are sent, `from` must not exceed `to`. Number bounds are decimal strings from `-99999999999999.999999` through `99999999999999.999999` with at most six fractional digits and no rounding. Date bounds are `YYYY-MM-DD` calendar dates. Date-time bounds are ISO 8601 timestamps: offsets are normalized to UTC and an absent offset means UTC. Multiple identifiers combine with AND. Blank or null scalar criteria and ranges with both bounds unfilled have no effect, including for unknown dotted keys. Populated criteria for unknown, deleted, restricted, operator-inapplicable, disabled, or non-filterable fields return `400`; malformed values for usable fields return `422`. Custom-field criteria never return `404`. Operator-scoped fields match only groups whose current operator owner makes the definition applicable."
|
|
65477
66015
|
}
|
|
65478
66016
|
},
|
|
65479
66017
|
"page": {
|
|
@@ -65498,12 +66036,18 @@
|
|
|
65498
66036
|
"200": {
|
|
65499
66037
|
"description": "Success"
|
|
65500
66038
|
},
|
|
66039
|
+
"400": {
|
|
66040
|
+
"description": "Bad Request"
|
|
66041
|
+
},
|
|
65501
66042
|
"401": {
|
|
65502
66043
|
"description": "Access token is missing or invalid"
|
|
65503
66044
|
},
|
|
65504
66045
|
"403": {
|
|
65505
66046
|
"description": "You do not have permission to perform the action"
|
|
65506
66047
|
},
|
|
66048
|
+
"422": {
|
|
66049
|
+
"description": "The payload you provided is invalid"
|
|
66050
|
+
},
|
|
65507
66051
|
"429": {
|
|
65508
66052
|
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
65509
66053
|
}
|
|
@@ -69471,6 +70015,7 @@
|
|
|
69471
70015
|
"parameters": {
|
|
69472
70016
|
"query": {
|
|
69473
70017
|
"filter": {
|
|
70018
|
+
"description": "Filter by user properties or applicable custom field values. For custom fields, add one extra top-level filter entry named `customFields.<identifier>` per criterion, for example `filter[customFields.invoiceReference]=INV-42`. Custom-field criteria combine with the user filters using AND. Operator-scoped criteria match only users whose current operator owner is assigned to the field; retained values from inapplicable definitions do not match. Non-empty unknown, inaccessible, disabled, deleted or non-filterable custom-field keys return `400` naming the rejected keys; malformed values for usable fields return `422`. Custom-field filters apply only to listings, not search.",
|
|
69474
70019
|
"schema": {
|
|
69475
70020
|
"type": "object",
|
|
69476
70021
|
"properties": {
|
|
@@ -69548,8 +70093,14 @@
|
|
|
69548
70093
|
"type": "string",
|
|
69549
70094
|
"format": "date-time",
|
|
69550
70095
|
"description": "ISO 8601 formatted date. Lists only users that were created on and before this datetime"
|
|
70096
|
+
},
|
|
70097
|
+
"customFields": {
|
|
70098
|
+
"type": "object",
|
|
70099
|
+
"additionalProperties": true,
|
|
70100
|
+
"description": "Filter a resource listing by administrator-defined custom fields using literal dotted keys such as `filter[customFields.reference]=INV-42`, not nested `filter[customFields][reference]` keys. Text, email and URL fields accept a single string and use case- and accent-insensitive substring matching; `%`, `_` and backslashes are matched literally. Boolean fields accept `true`, `false`, `1` or `0` as strings, or boolean and integer equivalents. Number, date and date-time fields accept inclusive `filter[customFields.<identifier>][from]` and/or `filter[customFields.<identifier>][to]` bounds, including one-sided ranges. Number bounds are decimal strings from `-99999999999999.999999` to `99999999999999.999999` with at most six fractional places, compared without rounding. Dates use `YYYY-MM-DD` calendar dates; date-times use ISO 8601, with offsets normalized to UTC and no offset interpreted as UTC. Long text and JSON fields are not filterable. Custom-field criteria combine with each other and the resource's other filters using AND. Empty criteria have no effect. Malformed values for usable fields return a property-bound `422` validation error. See each listing operation for how it handles unsupported nonempty criteria."
|
|
69551
70101
|
}
|
|
69552
|
-
}
|
|
70102
|
+
},
|
|
70103
|
+
"additionalProperties": true
|
|
69553
70104
|
}
|
|
69554
70105
|
},
|
|
69555
70106
|
"page": {
|
|
@@ -69587,12 +70138,18 @@
|
|
|
69587
70138
|
"200": {
|
|
69588
70139
|
"description": "Success"
|
|
69589
70140
|
},
|
|
70141
|
+
"400": {
|
|
70142
|
+
"description": "Bad Request"
|
|
70143
|
+
},
|
|
69590
70144
|
"401": {
|
|
69591
70145
|
"description": "Access token is missing or invalid"
|
|
69592
70146
|
},
|
|
69593
70147
|
"403": {
|
|
69594
70148
|
"description": "You do not have permission to perform the action"
|
|
69595
70149
|
},
|
|
70150
|
+
"422": {
|
|
70151
|
+
"description": "The payload you provided is invalid"
|
|
70152
|
+
},
|
|
69596
70153
|
"429": {
|
|
69597
70154
|
"description": "Too many requests. Please try again later. For more information, please check the rate limit headers X-RateLimit-*"
|
|
69598
70155
|
}
|
|
@@ -71852,6 +72409,7 @@
|
|
|
71852
72409
|
"parameters": {
|
|
71853
72410
|
"query": {
|
|
71854
72411
|
"filter": {
|
|
72412
|
+
"description": "Filter vehicles by the documented fields. Add each custom-field criterion as a literal `filter[customFields.<identifier>]` key, not a nested `filter[customFields][<identifier>]` object. Boolean, text, email, and URL criteria use scalar values; number, date, and date-time criteria use inclusive `filter[customFields.<identifier>][from]` and `filter[customFields.<identifier>][to]` bounds. Unfilled criteria are ignored. Filled unknown, unavailable, inaccessible, and non-filterable criteria return `400`; malformed values for usable fields return `422`.",
|
|
71855
72413
|
"schema": {
|
|
71856
72414
|
"type": "object",
|
|
71857
72415
|
"properties": {
|
|
@@ -71922,6 +72480,14 @@
|
|
|
71922
72480
|
"format": "date-time",
|
|
71923
72481
|
"description": "ISO 8601 formatted date. Lists only the vehicles that were last updated on and before this datetime."
|
|
71924
72482
|
}
|
|
72483
|
+
},
|
|
72484
|
+
"additionalProperties": true
|
|
72485
|
+
},
|
|
72486
|
+
"example": {
|
|
72487
|
+
"customFields.fleetReference": "Fleet,North",
|
|
72488
|
+
"customFields.annualDistance": {
|
|
72489
|
+
"from": "10000",
|
|
72490
|
+
"to": "20000"
|
|
71925
72491
|
}
|
|
71926
72492
|
}
|
|
71927
72493
|
},
|
|
@@ -71942,11 +72508,17 @@
|
|
|
71942
72508
|
"200": {
|
|
71943
72509
|
"description": "Success"
|
|
71944
72510
|
},
|
|
72511
|
+
"400": {
|
|
72512
|
+
"description": "Bad Request"
|
|
72513
|
+
},
|
|
71945
72514
|
"401": {
|
|
71946
72515
|
"description": "Access token is missing or invalid"
|
|
71947
72516
|
},
|
|
71948
72517
|
"403": {
|
|
71949
72518
|
"description": "You do not have permission to perform the action"
|
|
72519
|
+
},
|
|
72520
|
+
"422": {
|
|
72521
|
+
"description": "The request contains invalid criteria, including malformed custom field filter values"
|
|
71950
72522
|
}
|
|
71951
72523
|
}
|
|
71952
72524
|
},
|
|
@@ -73435,7 +74007,7 @@
|
|
|
73435
74007
|
],
|
|
73436
74008
|
"info": {
|
|
73437
74009
|
"title": "Public API",
|
|
73438
|
-
"version": "3.
|
|
74010
|
+
"version": "3.257.1",
|
|
73439
74011
|
"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"
|
|
73440
74012
|
},
|
|
73441
74013
|
"servers": [
|
|
@@ -73449,18 +74021,18 @@
|
|
|
73449
74021
|
}
|
|
73450
74022
|
}
|
|
73451
74023
|
],
|
|
73452
|
-
"buildTimestamp": "2026-
|
|
74024
|
+
"buildTimestamp": "2026-10-02T12:18:29.790Z",
|
|
73453
74025
|
"stats": {
|
|
73454
|
-
"totalEndpoints":
|
|
73455
|
-
"originalSize":
|
|
73456
|
-
"optimizedSize":
|
|
73457
|
-
"reductionPercent": 72.
|
|
73458
|
-
"buildDuration":
|
|
74026
|
+
"totalEndpoints": 666,
|
|
74027
|
+
"originalSize": 6403121,
|
|
74028
|
+
"optimizedSize": 1774310,
|
|
74029
|
+
"reductionPercent": 72.29,
|
|
74030
|
+
"buildDuration": 1651,
|
|
73459
74031
|
"responseSchemas": {
|
|
73460
|
-
"total":
|
|
73461
|
-
"withSchemas":
|
|
73462
|
-
"totalSchemaSize":
|
|
73463
|
-
"averageSchemaSize":
|
|
74032
|
+
"total": 666,
|
|
74033
|
+
"withSchemas": 666,
|
|
74034
|
+
"totalSchemaSize": 3687990,
|
|
74035
|
+
"averageSchemaSize": 5538
|
|
73464
74036
|
}
|
|
73465
74037
|
}
|
|
73466
74038
|
}
|