Úprava API přístupu

PUT
/api/v2/admin/machine-tokens/{id}

Upraví název, IP pravidla a expiraci aktivního přístupu vaší firmy. Typ, vlastníka, firmu ani hodnotu tokenu nemění. Tělo nesmí obsahovat user_id, userId, company_id ani companyId.

Jde o úplnou úpravu, ne o částečnou. name je povinný. Chybějící allowAllIps a noExpiration se berou jako false, chybějící allowedIps jako prázdný seznam. Posílejte proto vždy celá IP pravidla.

Expirace:

  • expiresAt ve formátu YYYY-MM-DD nastaví platnost do 23:59:59 daného dne.
  • noExpiration: true expiraci zruší.
  • Bez expiresAt a s noExpiration: false zůstane současná expirace.

Odvolaný nebo expirovaný přístup upravit nelze, vrátí se chyba 400. Úprava ho znovu neaktivuje.

Úspěch vrací detail přístupu bez hodnoty tokenu. Token funguje dál se stejnou hodnotou.

Pole odpovědi

Přístup obsahuje id, type (BEARER nebo URL), name, zkrácenou předponu tokenu tokenPrefix, IP pravidla (allowAllIps, allowedIps), expiresAt, status (ACTIVE, EXPIRED, REVOKED), vlastníka user (id, name, username), revokedAt, revokedBy, lastUsedAt, lastUsedIp a createdAt. Pole legacy a legacyUid jsou příznakem starého typu přístupu.

Dále obsahuje noExpiration, adresu API apiOrigin, ukázky volání samples a viewerIsOwner (zda přístup patří vám). samples jsou šablony volání, ne skutečná hodnota tokenu.

Nevyplněné časové údaje jsou null. Časy mají formát YYYY-MM-DD HH:MM:SS bez časové zóny. Text <zkrácená předpona> v ukázce je zástupná hodnota.

Operace vyžaduje modul 10223 API přístupy. Odpověď se neukládá do cache (Cache-Control: no-store). Více v sekcích Autentizace, Oprávnění a moduly a Chybové stavy.

Autentizace a oprávnění

Vyžaduje API token: Bearer v hlavičce nebo URL token.

10223 - API přístupy Bez modulu API přístupy vrací operace HTTP 403. Modul musí mít uživatel, kterému patří použitý API token.API přístupy

Parametry

Parametry cesty

NázevTypPovinnýPopisPříklad
idinteger anoČíselné ID API přístupu vaší firmy (pole id), ne předpona ani hodnota tokenu. 1

Tělo požadavku

NázevTypPovinnýPopisPříklad
namestring anoNeprázdný název, nejvýše 120 znaků. Delší název se zkrátí. Ukázkový e-shop
allowAllIpsboolean neVýchozí false. Hodnota true povolí všechny IP adresy, allowedIps se pak nepoužije.
allowedIpsstring nePovinné při allowAllIps=false. IP adresy nebo rozsahy CIDR oddělené čárkou nebo mezerou, případně pole řetězců. 192.0.2.10
noExpirationboolean neVýchozí false. Hodnota true nastaví přístup bez expirace.
expiresAtdate neDatum ve formátu YYYY-MM-DD. Přístup platí do 23:59:59 tohoto dne. 2027-10-30

Příklad požadavku

curl

curl -X PUT 'https://www.elpokladny.cz/api/v2/admin/machine-tokens/1' \
  -H 'Authorization: Bearer elp_live_example.example_secret' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "name": "Ukázkový e-shop",
  "allowAllIps": false,
  "allowedIps": "192.0.2.10",
  "noExpiration": false,
  "expiresAt": "2027-10-30"
}'

PHP

<?php
$ch = curl_init('https://www.elpokladny.cz/api/v2/admin/machine-tokens/1');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'PUT',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => array (
  0 => 'Authorization: Bearer elp_live_example.example_secret',
  1 => 'Content-Type: application/json',
),
    CURLOPT_POSTFIELDS => '{
  "name": "Ukázkový e-shop",
  "allowAllIps": false,
  "allowedIps": "192.0.2.10",
  "noExpiration": false,
  "expiresAt": "2027-10-30"
}',
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

javascript

const response = await fetch("https://www.elpokladny.cz/api/v2/admin/machine-tokens/1", {
    "method": "PUT",
    "headers": {
        "Authorization": "Bearer elp_live_example.example_secret",
        "Content-Type": "application/json"
    },
    "body": "{\n  \"name\": \"Ukázkový e-shop\",\n  \"allowAllIps\": false,\n  \"allowedIps\": \"192.0.2.10\",\n  \"noExpiration\": false,\n  \"expiresAt\": \"2027-10-30\"\n}"
});
const data = await response.json();

Ukázkové odpovědi

Upravený detail přístupu (HTTP 200)

application/json

{
  "status": "success",
  "data": {
    "id": 1,
    "type": "BEARER",
    "name": "Ukázkový e-shop",
    "tokenPrefix": "<zkrácená předpona>",
    "legacy": false,
    "legacyUid": null,
    "allowAllIps": false,
    "allowedIps": "192.0.2.10",
    "expiresAt": "2027-10-30 23:59:59",
    "status": "ACTIVE",
    "user": {
      "id": 101,
      "name": "Ukázkový uživatel",
      "username": "integrator.ukazka"
    },
    "revokedAt": null,
    "revokedBy": null,
    "lastUsedAt": null,
    "lastUsedIp": null,
    "createdAt": "2026-10-30 12:00:00",
    "noExpiration": false,
    "apiOrigin": "https://www.elpokladny.cz",
    "samples": {
      "bearerHeader": "Authorization: Bearer elp_live_example.example_secret",
      "urlQuery": "https://www.elpokladny.cz/api/v2/docs?api_token=example.example_secret",
      "curlBearer": "curl -H \"Authorization: Bearer elp_live_example.example_secret\" https://www.elpokladny.cz/api/v2/docs",
      "curlPdf": "curl -H \"Authorization: Bearer elp_live_example.example_secret\" https://www.elpokladny.cz/api/v2/docs/1/pdf -o doklad.pdf"
    },
    "viewerIsOwner": true
  }
}

Chybí modul API přístupy (HTTP 403)

application/json

{
  "status": "error",
  "message": "Chybí modul API přístupy (#10223)."
}

Přístup už není aktivní (HTTP 400)

application/json

{
  "status": "error",
  "error": "Revokovaný nebo expirovaný token nelze upravit."
}

API přístup neexistuje v této firmě (HTTP 404)

application/json

{
  "status": "error",
  "message": "Token nebyl nalezen."
}

Možné chyby

Chybové stavy

HTTPKdyPodoba
401Chybí nebo je neplatný API token. status-message
403Chybí modul 10223 nebo požadavek nepřichází z IP adresy povolené pro API token. status-message
400Neplatný název, neplatná IP pravidla, tělo obsahuje ID uživatele či firmy, nebo přístup není aktivní. status-error
400Tělo není platný JSON. status-message
404Přístup neexistuje nebo je z jiné firmy. status-message

Související návody