Prepare a tenant payment domain and its two DNS records
post/v1/tenants/{tenant_id}/payment-domains
Requires an API key
Idempotent by tenant and normalized hostname. Recreating a disabled hostname rotates its ownership challenge. Does not modify DNS or activate TLS. A hostname serves one purpose: OCPP or payment. Payment domains serve the driver payment pages (checkout, charging status, receipts) with the tenant branding; QR codes and hosted checkout returns use the ready one. Not yet available in production.
Path parameters
- tenant_idintegerRequired
Request body
- hostnamestringRequired3–221 characters
Returns · 201
- idstringRequired
- tenant_idintegerRequired
- hostnamestringRequired
- statusenumRequiredpending_dns until both DNS records check out; dns_verified once they do; active after the edge worker issued the certificate; disabled by the tenant. activation_error explains a stalled activation.One of
pending_dns,dns_verified,active,disabled - created_atstringRequired
- checked_atstring | nullRequired
- verified_atstring | nullRequired
- activated_atstring | nullRequired
- certificate_expires_atstring | nullRequired
- activation_errorstring | nullRequired
- dns_recordsarray of DNSRecordRequired
Child attributes
- typeenumRequiredOne of
A,CNAME,TXT - namestringRequired
- valuestringRequired
- ttlintegerRequired
- proxiedboolean | null
- checksobject | nullRequired
- readybooleanRequiredActive, DNS rechecked within 24 hours and an unexpired certificate.
- purposestringDefault
"payment" - checkout_url_templatestringRequiredThe driver checkout URL a QR code encodes for one EVSE on this hostname.
POST /v1/tenants/{tenant_id}/payment-domains
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/tenants/1042/payment-domains" \
-H "Authorization: Bearer $IVORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"hostname": "ocpp.example.com"
}'Response · 201
{
"id": "id_0123456789abcdef",
"tenant_id": 1042,
"hostname": "ocpp.example.com",
"status": "pending_dns",
"created_at": "2026-09-30T17:00:00Z",
"checked_at": "2026-09-30T17:00:00Z",
"verified_at": "2026-09-30T17:00:00Z",
"activated_at": "2026-09-30T17:00:00Z",
"certificate_expires_at": "2026-09-30T17:00:00Z",
"activation_error": "string",
"dns_records": [
{
"type": "A",
"name": "bay-01",
"value": "string",
"ttl": 1,
"proxied": false
}
],
"checks": {},
"ready": false,
"purpose": "payment",
"checkout_url_template": "https://pay.example.com/checkout/{station_name}-{evse_number}"
}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.