Enable CSMS access yourself (self-serve trial)
Where Ivora has opened the self-serve trial (off in production until Ivora opens it; where it is not open this answers 409 self_serve_unavailable: ask Ivora for CSMS access instead): the team's owner only, with a confirmed email, once the team has a usable card on file (billing status active: not expired, nothing overdue, not suspended), turns on the team's CSMS access without a meeting or an Ivora grant. It turns on right away (enabled_via self_serve), with at most 10 chargers across the team's projects, rate-limited commands and writes, and OCPI publishing, custom OCPP, payment and QR domains and enterprise invoicing waiting for Ivora's review. The trial takes a limited number of teams; once it is full the team joins the waitlist in order (outcome waitlisted) and enrolling again later takes a place that has opened. An owner has one trial team: while another team they own is in the trial or on its waitlist and Ivora has not reviewed it, enrolling answers 409 self_serve_not_eligible (details.reason owner_has_trial). Calling it again when nothing changed answers outcome unchanged. Errors: 409 self_serve_not_eligible, 409 self_serve_unavailable. See Errors and statuses.
Path parameters
- team_idstringRequiredPattern
^team_[0-9a-f]{32}$
Returns · 200
- team_idstringRequired
- trial_enabledbooleanRequiredWhether new teams may enable CSMS access themselves here now. Teams already in the trial keep their limits either way.
- stateenum | nullRequiredactive: CSMS access is on, with the charger cap, review-gated features and rate limits. waitlisted: the trial is full; the team waits in order (waitlist_position). reviewed: Ivora reviewed the team and lifted the cap and gates. suspended: Ivora turned its CSMS access off. null: the team never enrolled.One of
active,waitlisted,reviewed,suspended - csms_enabledbooleanRequired
- enabled_viaenum | nullRequiredOne of
staff,inherited,self_serve - card_okbooleanRequiredWhether the team has a usable card on file (billing status active: not expired, nothing overdue, not suspended).
- billing_statusstringRequiredThe team's usage-fee status, as the billing profile's status.
- waitlist_positioninteger | nullRequired1 for the next team to join, while waitlisted.
- charger_capinteger | nullRequiredStations the team may have across its projects until Ivora reviews it; null when not capped.
- chargersinteger | nullRequiredStations the team has now (counted up to one past the cap), while capped; null otherwise or when the charging core could not be read.
- review_gatedarray of stringRequiredFeatures that wait for Ivora's review while the team is capped: ocpi_publish, ocpp_domain, payment_domain, qr_domain, enterprise_invoicing, migration.
- review_requested_atstring | nullRequired
- requested_atstring | nullRequired
- enabled_atstring | nullRequired
- reviewed_atstring | nullRequired
- suspended_atstring | nullRequired
- team_limitintegerRequiredTeams the trial takes; later ones are waitlisted.
- slots_usedintegerRequiredTeams that took a place in the trial so far (active, reviewed and suspended).
- outcomeenumRequiredenabled: CSMS access is on now. waitlisted: the trial is full and the team joined its waitlist. unchanged: nothing changed (already enabled, reviewed, suspended or still waiting).One of
enabled,waitlisted,unchanged
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/teams/team_0123456789abcdef0123456789abcdef/self-serve" \
-H "Authorization: Bearer $IVORA_API_KEY"{
"team_id": "team_0123456789abcdef",
"trial_enabled": false,
"state": "active",
"csms_enabled": false,
"enabled_via": "staff",
"card_ok": false,
"billing_status": "string",
"waitlist_position": 1,
"charger_cap": 1,
"chargers": 1,
"review_gated": [
"string"
],
"review_requested_at": "2026-09-30T17:00:00Z",
"requested_at": "2026-09-30T17:00:00Z",
"enabled_at": "2026-09-30T17:00:00Z",
"reviewed_at": "2026-09-30T17:00:00Z",
"suspended_at": "2026-09-30T17:00:00Z",
"team_limit": 1,
"slots_used": 1,
"outcome": "enabled"
}Try itproduction · api.ivoracharge.com
Paste a production api key (iv_live_…). Create keys in Developer tools. The key stays in this page's memory, is sent only to https://api.ivoracharge.com and clears when you reload. Test keys are refused.
POST is a write: you confirm the method, path and project before it is sent, with a generated Idempotency-Key.



