Register an RFID token and return it

post/v1/tenants/{tenant_id}/tokens
Requires an API key

Requires tokens:write (tenant-admin). Synchronous; replays with the same Idempotency-Key return the same token. A value is unique per tenant regardless of case and type (token_exists, with the existing token_id); the same value in another tenant is that tenant's own token. Values of the form iv + 18 hex digits, remotestart-<n> or PAY_<n> are reserved for payment flow charging tokens (token_reserved).

Path parameters

  • tenant_idintegerRequired

Headers

  • idempotency-keystringRequired

Request body

  • id_tokenstringRequired
    The card's idTag (OCPP 1.6) or idToken (OCPP 2.0.1): 1-36 printable ASCII characters without spaces. Unique per tenant regardless of case or type, because the core matches an OCPP 1.6 idTag case-insensitively without a type. Values of the form iv + 18 hex digits, remotestart-<n> or PAY_<n> are reserved for payment flow charging tokens. Immutable: a new card is a new token.
    Pattern ^[\x21-\x7e]{1,36}$
  • typeenum
    OCPP 2.0.1 IdTokenEnumType: ISO14443 for RFID cards. OCPP 1.6 chargers send no type, so it does not affect them.
    One of Central, eMAID, ISO14443, ISO15693, KeyCode, Local, MacAddress, NoAuthorization · Default "ISO14443"
  • statusenum
    One of Accepted, Blocked, Expired · Default "Accepted"
  • expires_atstring | null
    ISO 8601 date-time with an offset. After it the core answers Expired; null for no expiry.
  • labelstring | null
    Your display name for the card, for example a driver or fleet vehicle. No payment data.
    1–80 characters
  • external_referencestring | null
    Your stable identifier for this resource (for example a property or listing ID). Unique per tenant and resource type. Filter lists with ?external_reference=. No customer data or secrets.
    Pattern ^[A-Za-z0-9][A-Za-z0-9_.:/-]{0,127}$

Returns · 201

  • idintegerRequired
  • tenant_idintegerRequired
  • id_tokenstringRequired
  • typestring | nullRequired
  • statusstringRequired
    Accepted, Blocked or Expired through this API; tokens written by other tools may carry another OCPP status.
  • expires_atstring | nullRequired
  • labelstring | null
  • external_referencestring | null
  • ocpp16_compatiblebooleanRequired
    False when id_token is longer than the 20 characters an OCPP 1.6 idTag allows.
  • created_atstring | nullRequired
  • updated_atstring | nullRequired
POST /v1/tenants/{tenant_id}/tokens
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/tenants/1042/tokens" \
  -H "Authorization: Bearer $IVORA_API_KEY" \
  -H "Idempotency-Key: order-2026-09-30-0001" \
  -H "Content-Type: application/json" \
  -d '{
  "id_token": "string"
}'
Response · 201
{
  "id": 1,
  "tenant_id": 1042,
  "id_token": "string",
  "type": "string",
  "status": "string",
  "expires_at": "2026-09-30T17:00:00Z",
  "label": "string",
  "external_reference": "property:1001",
  "ocpp16_compatible": false,
  "created_at": "2026-09-30T17:00:00Z",
  "updated_at": "2026-09-30T17:00:00Z"
}
Try it is not available here yetRequests from this page are off until the production API at https://api.ivoracharge.com is public. Use the code samples from your application server; Ivora grants production access. Keys are created in Developer tools.