Ir a la referencia
JPlug DevelopersPortal de desarrolladores ↗

Frontend API (1.0.0)

Download OpenAPI specification:

API documentation for the frontend application.

Get public health status

Returns the current host and server status.

Responses

Response samples

Content type
application/json
{
  • "Host": "example-host",
  • "Status": "Ok",
  • "CommitHash": "abc123def"
}

Login

Allows users to log in. The optional Realm field targets the user pool — omit it (or pass "frontend") for end-user app accounts. Pass "dashboard" to authenticate as a dashboard operator; the request returns 403 if the account lacks ROLE_ADMIN.

Request Body schema: application/json
required
Email
required
string
Password
required
string
Realm
string
Default: "frontend"
Enum: "frontend" "dashboard"

Target user pool. Defaults to "frontend". Pass "dashboard" for operator login.

Responses

Request samples

Content type
application/json
{
  • "Email": "user@example.com",
  • "Password": "password123"
}

Register

Registers a new user. The optional Realm field targets the user pool — omit it (or pass "frontend") to create an end-user account with ROLE_USER. Pass "dashboard" to create a dashboard operator account; the account is automatically assigned ROLE_ADMIN.

Request Body schema: application/json
required
FirstName
string
LastName
string
Email
required
string
Password
required
string
Phone
string
Realm
string
Default: "frontend"
Enum: "frontend" "dashboard"

Target user pool. Defaults to "frontend". Pass "dashboard" to register a dashboard operator (auto-assigns ROLE_ADMIN).

Responses

Request samples

Content type
application/json
{
  • "FirstName": "John",
  • "LastName": "Doe",
  • "Email": "user@example.com",
  • "Password": "password123",
  • "Phone": "+1234567890"
}

Request password reset token

Sends a password-reset token to the provided email address. The optional Realm field scopes the lookup to the correct user pool — defaults to "frontend". Pass "dashboard" to target a dashboard operator account.

Request Body schema: application/json
required
Type
required
string
Value: "password-reset"
Email
required
string
Realm
string
Default: "frontend"
Enum: "frontend" "dashboard"

Target user pool. Defaults to "frontend".

Responses

Request samples

Content type
application/json
{
  • "Type": "password-reset",
  • "Email": "user@example.com"
}

Verify registration token

Verifies a registration token.

path Parameters
token
required
string

Responses

Guest login

Allows guest users to log in.

Request Body schema: application/json
required
GuestID
string

Responses

Request samples

Content type
application/json
{
  • "GuestID": "123e4567-e89b-12d3-a456-426614174000"
}

Get all chargers

Retrieves a list of all chargers.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get charger details

Retrieves details of a specific charger.

Authorizations:
CookieAuth
path Parameters
chargerId
required
string

Responses

Response samples

Content type
application/json
{
  • "ID": "CHARGER001",
  • "UUID": "123e4567-e89b-12d3-a456-426614174000",
  • "Name": "Main Charger",
  • "UserID": "123e4567-e89b-12d3-a456-426614174001",
  • "EndpointAddress": "192.168.1.1",
  • "ChargePointVendor": "Vendor A",
  • "ChargePointModel": "Model X",
  • "ProtocolVersion": "OCPP 1.6",
  • "FWVersion": "1.0.0",
  • "FWUpdateStatus": "Updated"
}

Update charger

Updates a specific charger.

Authorizations:
CookieAuth
path Parameters
chargerId
required
string
Request Body schema: application/json
required
Key
string
Value
string

Responses

Request samples

Content type
application/json
{
  • "Key": "FWVersion",
  • "Value": "1.0.1"
}

Perform charger action

Performs an action on a specific charger.

Authorizations:
CookieAuth
path Parameters
chargerId
required
string
Request Body schema: application/json
required
Action
string
Params
string

Responses

Request samples

Content type
application/json
{
  • "Action": "Restart",
  • "Params": "Soft"
}

Delete charger

Deletes or inactivates a specific charger.

Authorizations:
CookieAuth
path Parameters
chargerId
required
string

Responses

Get connector details

Retrieves details of a specific connector by charger and connector ID.

Authorizations:
CookieAuth
path Parameters
chargerId
required
string
connectorId
required
string

Responses

Response samples

Content type
application/json
{
  • "ChargeBoxID": "CHARGEBOX001",
  • "ConnectorID": 1,
  • "ConnectorType": "Type1",
  • "Status": "Available",
  • "CreatedAt": "2023-01-01T12:00:00Z"
}

Update connector

Updates a specific connector.

Authorizations:
CookieAuth
path Parameters
chargerId
required
string
connectorId
required
string
Request Body schema: application/json
required
ChargeBoxID
string
ConnectorID
integer
ConnectorType
string
Status
string

Responses

Request samples

Content type
application/json
{
  • "ChargeBoxID": "CHARGEBOX001",
  • "ConnectorID": 1,
  • "ConnectorType": "Type2",
  • "Status": "Charging"
}

Get sessions for a connector

Retrieves all sessions for a specific charger and connector.

Authorizations:
CookieAuth
path Parameters
chargerId
required
string
connectorId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Start a session for a connector

Starts a new session for a specific charger and connector.

Authorizations:
CookieAuth
path Parameters
chargerId
required
string
connectorId
required
string
Request Body schema: application/json
required
AuthCode
string
PaymentMethodID
string
Credits
number <float>
Currency
string

Responses

Request samples

Content type
application/json
{
  • "AuthCode": "ID12345"
}

Response samples

Content type
application/json
{
  • "Error": "Connector not ready for RemoteStart"
}

Get session details

Retrieves details of a specific session.

Authorizations:
CookieAuth
path Parameters
sessionId
required
string

Responses

Response samples

Content type
application/json
{
  • "ID": 1,
  • "UUID": "123e4567-e89b-12d3-a456-426614174000",
  • "UserID": "123e4567-e89b-12d3-a456-426614174001",
  • "ChargeBoxID": "CHARGEBOX001",
  • "ConnectorID": 1,
  • "MeterStart": 100,
  • "MeterStop": 150,
  • "TimestampStart": "2023-01-01T12:00:00Z",
  • "TimestampStop": "2023-01-01T14:00:00Z"
}

Delete session

Deletes a specific session.

Authorizations:
CookieAuth
path Parameters
sessionId
required
string

Responses

Get user info

Retrieves information about a specific user.

Authorizations:
CookieAuth
path Parameters
userId
required
string

Responses

Update user info

Updates information about a specific user.

Authorizations:
CookieAuth
path Parameters
userId
required
string
Request Body schema: application/json
required
FirstName
string
LastName
string
Email
string

Responses

Request samples

Content type
application/json
{
  • "FirstName": "John",
  • "LastName": "Doe",
  • "Email": "john.doe@example.com"
}

Get all sessions for a user

Retrieves all sessions for a specific user.

Authorizations:
CookieAuth
path Parameters
userId
required
string

Responses

Get a session for a user

Retrieves a specific session for a user.

Authorizations:
CookieAuth
path Parameters
userId
required
string
sessionId
required
string

Responses

Create payment intent

Creates a payment intent for a user.

Authorizations:
CookieAuth

Responses

Add credit to user account

Adds credit to the authenticated user's account using a two-phase commit. Credits are added to the balance first, then the payment token is committed via the payment adapter (CommitToken). If either step fails the credit is rolled back and the payment token is cancelled through the payment adapter.

Authorizations:
CookieAuth
Request Body schema: application/json
required
Currency
required
string

Currency code (e.g., CAD, AMD)

Amount
required
number <float>
PaymentProcessorID
required
string

Stripe PaymentIntent ID, Arcaipay order ID, or Wevend token ID

PaymentProcessor
required
string
Enum: "Stripe" "Arcaipay" "Wevend"

Responses

Request samples

Content type
application/json
Example
{
  • "Currency": "CAD",
  • "Amount": 10,
  • "PaymentProcessorID": "pi_123456789",
  • "PaymentProcessor": "Stripe"
}

Response samples

Content type
application/json
{
  • "Message": "Credit added successfully"
}

Get credit balances

Retrieves all credit balances for the authenticated user, optionally filtered by currency.

Authorizations:
CookieAuth
query Parameters
Currency
string
Example: Currency=CAD

Currency code to filter by (e.g., CAD)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get credit transaction history

Retrieves the credit transaction history for the authenticated user.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get billing profiles

Retrieves billing profiles for a specific user.

Authorizations:
CookieAuth
path Parameters
userId
required
string

Responses

Create billing profile

Creates a billing profile for a specific user.

Authorizations:
CookieAuth
path Parameters
userId
required
string
Request Body schema: application/json
required
name
string
rate_per_kw
number <float>
rate_per_minute
number <float>
idle_rate_per_minute
number <float>
idle_grace_period_min
integer
tax_jurisdiction_id
string

Responses

Request samples

Content type
application/json
{
  • "name": "Standard Plan",
  • "rate_per_kw": 0.15,
  • "rate_per_minute": 0.05,
  • "idle_rate_per_minute": 0.1,
  • "idle_grace_period_min": 5,
  • "tax_jurisdiction_id": "123e4567-e89b-12d3-a456-426614174002"
}

Get billing profile

Retrieves a specific billing profile for a user.

Authorizations:
CookieAuth
path Parameters
userId
required
string
profileId
required
string

Responses

Update billing profile

Updates a specific billing profile for a user.

Authorizations:
CookieAuth
path Parameters
userId
required
string
profileId
required
string
Request Body schema: application/json
required
id
string
name
string
rate_per_kw
number <float>
rate_per_minute
number <float>
idle_rate_per_minute
number <float>
idle_grace_period_min
integer
tax_jurisdiction_id
string

Responses

Request samples

Content type
application/json
{
  • "id": "123e4567-e89b-12d3-a456-426614174000",
  • "name": "Updated Plan",
  • "rate_per_kw": 0.2,
  • "rate_per_minute": 0.07,
  • "idle_rate_per_minute": 0.12,
  • "idle_grace_period_min": 10,
  • "tax_jurisdiction_id": "123e4567-e89b-12d3-a456-426614174002"
}

Delete billing profile

Deletes a specific billing profile for a user.

Authorizations:
CookieAuth
path Parameters
userId
required
string
profileId
required
string

Responses

Get all charge sessions

Retrieves all charge sessions for the authenticated user.

Authorizations:
CookieAuth

Responses

Create charge session

Creates a new charge session for the authenticated user.

Authorizations:
CookieAuth
Request Body schema: application/json
required
transaction_id
integer
charge_box_id
string
connector_id
integer
user_id
string

Responses

Request samples

Content type
application/json
{
  • "transaction_id": 1,
  • "charge_box_id": "CHARGEBOX001",
  • "connector_id": 1,
  • "user_id": "123e4567-e89b-12d3-a456-426614174001"
}

Get charge session

Retrieves details of a specific charge session.

Authorizations:
CookieAuth
path Parameters
sessionId
required
string

Responses

Update charge session

Updates a specific charge session.

Authorizations:
CookieAuth
path Parameters
sessionId
required
string
Request Body schema: application/json
required
id
string
transaction_id
integer
charge_box_id
string
connector_id
integer
user_id
string

Responses

Request samples

Content type
application/json
{
  • "id": "123e4567-e89b-12d3-a456-426614174000",
  • "transaction_id": 1,
  • "charge_box_id": "CHARGEBOX001",
  • "connector_id": 1,
  • "user_id": "123e4567-e89b-12d3-a456-426614174001"
}

Delete charge session

Deletes a specific charge session.

Authorizations:
CookieAuth
path Parameters
sessionId
required
string

Responses

Create a charging profile

Creates a new charging profile.

Authorizations:
CookieAuth
Request Body schema: application/json
required
ChargeBoxID
string
ChargingProfileID
integer
StackLevel
integer
ChargingProfilePurpose
string
ChargingProfileKind
string
ChargingSchedule
string

Responses

Request samples

Content type
application/json
{
  • "ChargeBoxID": "CHARGEBOX001",
  • "ChargingProfileID": 1,
  • "StackLevel": 1,
  • "ChargingProfilePurpose": "TxProfile",
  • "ChargingProfileKind": "Absolute",
  • "ChargingSchedule": "{\"duration\":3600,\"startSchedule\":\"2023-01-01T12:00:00Z\"}"
}

Update a charging profile

Updates a specific charging profile.

Authorizations:
CookieAuth
path Parameters
profileId
required
string
Request Body schema: application/json
required
ID
string
ChargeBoxID
string
StackLevel
integer
ChargingProfilePurpose
string
ChargingProfileKind
string
ChargingSchedule
string

Responses

Request samples

Content type
application/json
{
  • "ID": "123e4567-e89b-12d3-a456-426614174000",
  • "ChargeBoxID": "CHARGEBOX001",
  • "StackLevel": 2,
  • "ChargingProfilePurpose": "TxProfile",
  • "ChargingProfileKind": "Relative",
  • "ChargingSchedule": "{\"duration\":1800,\"startSchedule\":\"2023-01-01T13:00:00Z\"}"
}

Get theme configuration by domain

Returns the active theme configuration for a given domain. Public endpoint — no authentication required.

query Parameters
domain
required
string
Example: domain=app.jplug.io

The domain to look up the theme for (e.g. app.jplug.io).

Responses

Response samples

Content type
application/json
{
  • "Domain": "app.jplug.io",
  • "Theme": {
    }
}