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_tokenstringRequiredThe 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}$ - typeenumOCPP 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" - statusenumOne of
Accepted,Blocked,Expired· Default"Accepted" - expires_atstring | nullISO 8601 date-time with an offset. After it the core answers Expired; null for no expiry.
- labelstring | nullYour display name for the card, for example a driver or fleet vehicle. No payment data.1–80 characters
- external_referencestring | nullYour 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
- statusstringRequiredAccepted, 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_compatiblebooleanRequiredFalse 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.