Skip to main content
Installer accounts are separate from organization API keys. They are used by field technicians to register charge points and run commissioning workflows through the Dynamo CSMS Installer App. All installer endpoints return a short-lived JWT access token that you include in subsequent requests.

Register an installer account

POST /api/v1/installer/signup Creates a new installer account immediately, without requiring email confirmation. Use signup-with-confirmation if you want to enforce email verification before the account becomes active.
string
required
Installer’s email address. Used as the login identifier.
string
required
Must be at least 10 characters, containing at least one uppercase letter, one lowercase letter, and one digit.
string
required
Installer’s given name.
string
required
Installer’s family name.
string
required
Name of the installer’s employer or contracting company.
Response 201 Created

Register with email confirmation

POST /api/v1/installer/signup-with-confirmation Same as signup, but the account is created in a pending_verification state. Dynamo CSMS sends a confirmation email; the installer must click the link before they can log in. Accepts the same body as POST /api/v1/installer/signup.
Response 201 Created

Log in

POST /api/v1/installer/login Authenticates an installer and returns a JWT access token. Include this token as Authorization: Bearer <access_token> in all subsequent installer API calls.
string
required
The installer’s registered email address.
string
required
The installer’s password.
Response 200 OK
string
JWT token to use in the Authorization: Bearer header.
string
Always "Bearer".
integer
Token lifetime in seconds (default 3600 — 1 hour).
string
The authenticated installer’s ID.

Log out

POST /api/v1/installer/logout Invalidates the current access token server-side. After logging out, the token will be rejected on all subsequent requests.
Response 204 No Content

Request password reset

POST /api/v1/installer/forgot-password Sends a password reset email to the specified address if an account exists. The response is always 200 OK regardless of whether the email is registered, to prevent account enumeration.
string
required
The email address associated with the installer account.
Response 200 OK

Reset password

POST /api/v1/installer/reset-password Completes a password reset using the token from the email link.
string
required
The reset token extracted from the password reset email link.
string
required
The new password. Must meet the same strength requirements as signup.
Response 200 OK

Get profile

GET /api/v1/installer/profile Returns the authenticated installer’s profile information.
Response 200 OK

Update profile

PUT /api/v1/installer/profile Updates the authenticated installer’s profile. All fields are optional — only include the ones you want to change.
string
Updated given name.
string
Updated family name.
string
Updated company name.
string
Contact phone number in E.164 format (e.g. "+1-555-0100").
Response 200 OK — returns the full updated profile object (same schema as GET profile).

Get verification status

GET /api/v1/installer/verification-status Returns the current identity verification state for the installer account.
Response 200 OK
boolean
true when identity verification has been approved.
string
One of not_submitted, under_review, approved, rejected.
string | null
Human-readable reason if status is rejected, otherwise null.

Submit identity verification

POST /api/v1/installer/verify-identity Submits identity documents for review. Verification is required before an installer can commission charge points in production.
string
required
Type of identity document. One of: passport, drivers_license, national_id.
string
required
The document’s identification number.
string
required
Document expiry date in YYYY-MM-DD format.
string
required
URL of an uploaded selfie image for liveness check. Upload the image to your storage first and provide the URL.
string
required
URL of the front-of-document image.
string
URL of the back-of-document image. Required for drivers_license and national_id.
Response 202 Accepted

Accept terms of service

POST /api/v1/installer/accept-terms Records that the installer has accepted the current Dynamo CSMS Terms of Service. This must be called before the installer can register charge points.
string
required
The version string of the terms being accepted (e.g. "2024-01"). You can find the current version in your Dynamo CSMS dashboard.
Response 200 OK

Error responses