---
title: "Create or update a charge point integration"
method: PUT
path: "/api/v1/charge-point-integrations"
tags: ["Charge Point Integrations"]
---

# Create or update a charge point integration

`PUT /api/v1/charge-point-integrations`

Note: This endpoint will create or update an existing integration,meaning that the existing integration will be replaced by a new one</br>Required scope: `charge-points:write`. </br>Organization authorization: `supported`

## Request body

- CreateOrUpdateChargePointIntegration
  - `chargePointId` integer, required — Id of the charge point to setup the integration
  - `chargePointModelId` integer, required — Id of the charge point model to be integrated
  - `serialNumber` string, required — The serial number for the charge point integration
  - `connectorId` integer, nullable — Connector id for the charge point integration. when `null` the `connectorId` will default to `1`
  - `autoConnect` boolean, nullable — Indicates that an attempt to connect the charge point should happen, when `autoConnect` is set to true the Charge Point needs to point to Monta (via OCPP websocket)</br></br>Note: when false the integration will be create but the state will be to `pending`
  - `ocppPassword` string, nullable — Basic authentication password that will be required for the OCPP websocket connection. Gets ignored, i.e. does not clear the password, when `null`

## Response `200`

Charge point integration created/updated

- ChargePointIntegration
  - `id` integer — The id of this charge point integration
  - `state` 'pending' | 'connected' | 'disconnected' | 'error' | 'unknown', required — Enumerate the possible states for a charge point integration
  - `serialNumber` string, required — The serial number of this charge point integration
  - `chargePointIdentity` string, required — The identity number of this charge point integration
  - `integrationTypeIdentifier` string, required — The integration type (method) used
  - `connectorId` integer, nullable — The connector id for this charge point integration
  - `chargePoint` ChargePoint, required
    - `id` integer, required — Id of this charge point.
    - `teamId` integer, required — Id of the team.
    - `partnerExternalId` string, nullable — External Id of this entity, managed by you.
    - `partnerCustomPayload` object[], nullable — Custom JSON payload for this entity, managed by you.
    - `siteId` integer, nullable — Id of the site.
    - `operator` Operator
      - `id` integer — ID of the operator
      - `name` string, required — Name of operator
      - `identifier` string, required — Identifier of operator
      - `partnerId` integer, nullable — Id of the partner
      - `vatNumber` string, nullable — VAT number
    - `createdAt` string, date-time, required — Creation date of this charge point.
    - `updatedAt` string, date-time, required — Date this charge point was last updated.
    - `deletedAt` string, date-time, nullable — Date this charge point was deleted.
    - `activeAt` string, date-time, nullable — Last date when charge point was activated.
    - `serialNumber` string, nullable — Serial number of this charge point.
    - `name` string, nullable — Name of the charge point.
    - `visibility` 'private' | 'public', required — Indicates if this charge point is `public` or `private`.
    - `maxKW` number, double, nullable — Deprecated (will be removed by 01.04.24), use `maxKw` field instead.
    - `maxKw` number, double, nullable — Max KW available at this charge point.
    - `type` 'ac' | 'dc', nullable — Type of charge point (`AC` / `DC`).
    - `note` string, nullable — A note you have entered for this charge point, e.g. via our Portal.
    - `operatorNote` string, nullable — An operator note you have entered for this charge point, e.g. via our Portal.
    - `state` 'available' | 'busy' | 'busy-blocked' | 'busy-charging' | 'busy-non-charging' | 'busy-non-released' | 'busy-reserved' | 'busy-scheduled' | 'error' | 'disconnected' | 'passive' | 'maintenance' | 'other', nullable — Various types of Charge Point states. Definitions: * `available` - The charge point is available for charging. * `busy` - The charge point is currently in use. * `busy-blocked` - The charge point is currently in use and blocked. * `busy-charging` - The charge point is currently in use and charging. * `busy-non-charging` - The charge point is currently in use and not charging. * `busy-non-released` - The charge point is currently in use and not released. * `busy-reserved` - The charge point is currently in use and reserved. * `busy-scheduled` - The charge point is currently in use and scheduled. * `error` - The charge point is in an error state. * `disconnected` - The charge point is disconnected from Monta. * `passive` - The charge point is in a passive state, charging can only be controlled locally. * `maintenance` - The charge point is in maintenance mode. * `exempt` - The charge point is exempt from downtime reporting due to external factors.
    - `location` Location, required
      - `coordinates` Coordinates
        - `latitude` number, double — Latitude value of coordinate
        - `longitude` number, double — Longitude value of coordinate
      - `addressLabel` string, nullable — The full address.
      - `address` PartialAddress
        - `address1` string, nullable — First line of address
        - `address2` string, nullable — Second line of address
        - `address3` string, nullable — Third line of address
        - `zip` string, nullable — Zip-code
        - `city` string, nullable — City (readable)
        - `province` string, nullable — Province
        - `country` string, nullable — Country (readable)
        - `countryAreaId` integer, nullable — Country area id
    - `connectors` ChargePointConnector[], required — List of supported connector types at this charge point (e.g. type-2, ccs, ...).
      - `id` integer — Id of this connector
      - `identifier` string, required — Identifier of connector
      - `name` string, required — Readable name of connector
    - `deeplinks` ChargePointDeeplinks, required
      - `app` string, uri, required — Follow this link to open the Monta App with this charge point
      - `web` string, uri, required — Follow this link to open the Monta Web App with this charge point
    - `lastMeterReadingKwh` number, double, nullable — Last meter reading (KWH) for this charge point.
    - `meterId` string, nullable — Meter Id of this charge point.
    - `cablePluggedIn` boolean, required — Indicates if a cable is plugged in (true).
    - `chargePointModelId` integer, nullable — The ID of the charge point model for this charge point.
    - `brandName` string, nullable — Brand name for this charge point.
    - `modelName` string, nullable — Model name for this charge point.
    - `firmwareVersion` string, nullable — Current firmware version for this charge point.
    - `integrationType` 'oicp' | 'ocpi' | 'ocpp' | 'other' — definitions: * `oicp` - Indicates the current integration is OICP. * `ocpi` - Indicates the current integration is OCPI. * `ocpp` - Indicates the current integration is OCPP. * `other` - Fallback value, Indicates a new type was added but is not mapped/unknown on this API yet.
    - `evseId` string, required — The EVSE id for this charge point.
    - `priceGroupId` integer, nullable — The id of the public price group for this charge point.
    - `costGroupId` integer, nullable — The id of the cost price group for this charge point.
    - `roamingPriceGroupId` integer, nullable — The id of the roaming price group for this charge point.
    - `sponsoredPriceGroupId` integer, nullable — The id of the sponsored price group for this charge point.
    - `scheduleId` integer, nullable — The id of the schedule assigned to this charge point.
    - `isActive` boolean, required — Indicates if this charge point is active (true) or not (false). Active = fully onboarded to Monta.
    - `reservable` boolean, required — Indicates if the charge point can be reserved.
    - `reservationTime` integer, nullable — The max duration(in minutes) that this Charge Point can be reserved for</br>`null` indicates that reservation is not supported.
    - `simCard` SimCard
      - `imsi` string, nullable — imsi (International Mobile Subscriber Identity) for the SIM card
      - `iccid` string, nullable — iccid (Integrated Circuit Card Identifier) for the SIM card
    - `roaming` boolean, required — Indicates whether roaming is enabled for this charge point.
    - `lastConnectedAt` string, date-time, nullable — The last date/time this charge point was reported as connected.
    - `disconnectedAt` string, date-time, nullable — The date/time this charge point was reported as disconnected.
    - `occupied` boolean, nullable — Indicates if the Charge Point is currently occupied. **Note:** At the moment this is only determined by a charge point sensor attached to it.
    - `protocolData` ChargePointProtocolData, required
      - `ocpp` ChargePointOcpp
        - `status` 'available' | 'online' | 'not-connected' | 'error' | 'offline' | 'occupied' | 'preparing' | 'paused-ev' | 'paused-evse' | 'charging' | 'suspended-evse' | 'suspended-ev' | 'finishing' | 'reserved' | 'unavailable' | 'faulted' | 'idle' | 'ev-connected' | 'unknown' — Various types of Charge Point OCPP protocol statuses
        - `updatedAt` string, date-time, nullable — Indicates when the status was last updated.
    - `metadata` ChargePointMetadata
      - `busCompatible` boolean, nullable — Bus-compatible charge point
      - `motorcycleCompatible` boolean, nullable — Motorcycle-compatible charge point
      - `lorryCompatible` boolean, nullable — Lorry-compatible charge point
      - `lorryWithDangerousGoodsCompatible` boolean, nullable — Lorry with dangerous goods allowed
      - `lorryWithTrailerCompatible` boolean, nullable — Lorry with trailer compatible
      - `personalVehicleCompatible` boolean, nullable — Personal vehicle-compatible charge point
      - `personalVehicleWithTrailerCompatible` boolean, nullable — Personal vehicle with trailer compatible
      - `rigidLoryCompatible` boolean, nullable — Rigid lorry compatible
      - `vanCompatible` boolean, nullable — Van-compatible charge point
      - `vehicleWithDisabilityPermitCompatible` boolean, nullable — Vehicles with disability permit compatible
      - `additionalParkingFeesPolicy` boolean, nullable — Additional parking fees policy
      - `buildingTenantsOnlyPolicy` boolean, nullable — Building tenants only parking policy
      - `customersOnlyPolicy` boolean, nullable — Customers only parking policy
      - `disabilityPermitPolicy` boolean, nullable — Disability permit parking policy
      - `evOnlyPolicy` boolean, nullable — Electric vehicle only parking policy
      - `employeesOnlyPolicy` boolean, nullable — Employees only parking policy
      - `overnightParkingPolicy` boolean, nullable — Overnight parking policy
      - `parkingOnlyWhileChargingPolicy` boolean, nullable — Parking only while charging policy
      - `reservationPolicy` boolean, nullable — Reservation required parking policy
      - `taxisOnlyPolicy` boolean, nullable — Taxis only parking policy
      - `floorLevel` string, nullable — Floor level of the charge point
      - `cableLength` number, double, nullable — Cable length in centimeters
      - `behindBarrierPolicy` boolean, nullable — Behind barrier parking policy
      - `hdvParkingSpot` HdvParkingSpot
        - `height` integer, nullable — Height in centimeters
        - `width` integer, nullable — Width in centimeters
        - `length` integer, nullable — Length in centimeters
        - `weight` integer, nullable — Weight in kilograms
        - `angledOrientation` boolean, nullable — Angled orientation
        - `driveThroughOrientation` boolean, nullable — Drive-through orientation
        - `parallelOrientation` boolean, nullable — Parallel orientation
        - `perpendicularOrientation` boolean, nullable — Perpendicular orientation
        - `turningRadius` number, double, nullable — Turning radius in meters
        - `cpPosition` string, nullable — cpPosition, if any
      - `dangerousGoodsAllowed` boolean, nullable — Dangerous goods are allowed
      - `rigidVehiclesAllowed` boolean, nullable — Rigid vehicles are allowed
      - `twoWheeledStation` boolean, nullable — Two wheeled station available
      - `vehicleAccessibility` string, nullable — Vehicle accessibility description
      - `heightRestriction` boolean, nullable — Height restriction in place
      - `reservationRequired` boolean, nullable — Reservation is required
      - `overnightParkingAllowed` boolean, nullable — Overnight parking is allowed
      - `accessConditions` string, nullable — Access conditions description
      - `barrier` boolean, nullable — Barrier present at the charge point
      - `chargingWhenClosed` boolean, nullable — Charging allowed when site is closed
      - `trailerPullThrough` boolean, nullable — Trailer pull-through available
    - `showOnMap` boolean, required — Indicates if this charge point should be displayed on the map.
    - `smartChargeSetting` 'off' | 'optional' | 'forced' | 'forced-setting', nullable — Smart charging setting for this charge point. - `off`: Smart charging is disabled, rules cannot be created - `optional`: Smart charging is optional, rules can be created and applied - `forced`: Smart charging is forced, rules will always be applied - `forced-setting`: Smart charging setting is forced
    - `autoStart` 'on' | 'off' | 'not-available' — Auto-start status values
    - `userId` integer, nullable — Id of the user that owns this charge point.
    - `autoRegisterRfid` boolean, nullable — Whether RFID tags are auto-registered when scanned at this charge point.
  - `activeAt` string, date-time, nullable — The Date this charge point integration was set to active
  - `createdAt` string, date-time, required — The Creation date of this charge point integration
  - `updatedAt` string, date-time, nullable — The Date this charge point integration was last updated
  - `deletedAt` string, date-time, nullable — The Date this charge point integration was deleted

## Other responses

- `400` — The request is invalid
- `401` — Consumer with provided credentials was not found
- `403` — Operator doesn't have access to resource
- `404` — Entity with the provided id was not found

---

[API](https://skmtc.net/monta/apis/monta-partner-api.md) · [All operations](https://skmtc.net/monta/apis/monta-partner-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/monta/monta-partner-api/versions/517e18f11015/schema)
