Skip to main content
Organizations are the top-level tenants in Dynamo CSMS. Every charge point, project, and billing record belongs to an organization. You can invite team members with scoped roles, manage site owner onboarding, and configure organization-wide settings from these endpoints.

Authentication


Organizations

Create an organization

POST /api/v1/organizations
string
required
Display name for the organization.
string
required
ISO 3166-1 alpha-2 country code (e.g., "GB", "DE", "US").
string
required
Primary contact email address for the organization.

Get an organization

GET /api/v1/organizations/{org_id}
string
required
The ID of the organization to retrieve.

Update an organization

PUT /api/v1/organizations/{org_id} Replaces the organization’s mutable fields. Include all fields you want to retain, not just the ones you are changing.
string
required
The ID of the organization to update.
string
required
Updated display name.
string
required
Updated ISO 3166-1 alpha-2 country code.
string
required
Updated contact email address.

Members

List members

GET /api/v1/organizations/{org_id}/members
string
required
The organization ID.

Update a member’s role

PUT /api/v1/organizations/{org_id}/members/{user_id}/role
string
required
The organization ID.
string
required
The ID of the member whose role you are changing.
string
required
The new role. One of "admin", "member", or "viewer".

Remove a member

DELETE /api/v1/organizations/{org_id}/members/{user_id}
string
required
The organization ID.
string
required
The ID of the member to remove.
Returns 204 No Content on success.

Invitations

Invite a member

POST /api/v1/organizations/{org_id}/invitations Sends an email invitation to join your organization with the specified role.
string
required
The organization ID.
string
required
Email address of the person to invite.
string
required
Role to assign on acceptance: "admin", "member", or "viewer".

Accept an invitation

POST /api/v1/organizations/invitations/accept The invited user calls this endpoint with the token from their invitation email.
string
required
The invitation token from the invitation email.

Cancel an invitation

DELETE /api/v1/organizations/{org_id}/invitations/{invitation_id}
string
required
The organization ID.
string
required
The ID of the invitation to cancel.
Returns 204 No Content on success.

Organization settings

Get settings

GET /api/v1/organizations/{org_id}/settings
string
required
The organization ID.

Update settings

PUT /api/v1/organizations/{org_id}/settings
string
required
The organization ID.
string
ISO 4217 currency code (e.g., "GBP", "EUR", "USD").
string
IANA timezone name (e.g., "Europe/London").
string
Email address for billing-related notifications.
object
Object controlling which notifications the organization receives.

Site owner

Site owners are external partners or property managers who host charge points on your network. These endpoints manage their onboarding flow and profile.

Accept a site owner invitation

POST /api/v1/site-owner/accept-invitation/{token}
string
required
The site owner invitation token from the invitation email.

Get onboarding status

GET /api/v1/site-owner/onboarding/status Returns the current stage of the site owner onboarding process.

Complete onboarding

POST /api/v1/site-owner/onboarding/complete Signals that the site owner has submitted all required information.

Get site owner profile

GET /api/v1/site-owner/profile Returns profile and account details for the authenticated site owner.

List site owner projects

GET /api/v1/site-owner/projects Returns all charging projects associated with this site owner.

Driver portal

The driver portal lets EV drivers view their own session history and manage billing disputes without needing access to the operator API.

List driver sessions

GET /api/v1/portal/sessions Returns all charging sessions for the authenticated driver.
string
Start of date range (ISO 8601).
string
End of date range (ISO 8601).
number
default:"20"
Number of sessions to return (max 100).

Get session cost breakdown

GET /api/v1/portal/sessions/{session_id}/cost-breakdown
string
required
The session ID.
Returns an itemised breakdown of session charges including energy, time, and any applicable fees.

Download session receipt

GET /api/v1/portal/sessions/{session_id}/receipt
string
required
The session ID.
Returns a PDF receipt for the session. The response Content-Type is application/pdf.

Submit a billing dispute

POST /api/v1/portal/sessions/{session_id}/dispute
string
required
The session ID to dispute.
string
required
Description of the issue with the charge.
number
What the driver believes the correct cost should be.

Reservations

Reservations let drivers hold a connector before they arrive, reducing the chance of finding no available charger.

Create a reservation

POST /api/v1/reservations
string
required
The charge point to reserve a connector on.
number
required
The connector number to reserve.
string
required
ISO 8601 datetime at which the reservation expires if unused.
string
required
The driver’s ID tag (RFID UID or email). Only this tag can use the reservation.

List reservations

GET /api/v1/reservations
string
Filter reservations by charge point.
string
Filter by status: active, used, expired, or cancelled.

Cancel a reservation

DELETE /api/v1/reservations/{reservation_id}
string
required
The ID of the reservation to cancel.
Returns 204 No Content on success. Cancellation sends a CancelReservation command to the charge point via OCPP.