> ## Documentation Index
> Fetch the complete documentation index at: https://docs.energy.nayax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a new asset

> This endpoint creates a new asset



## OpenAPI

````yaml /api/specs/assetManagement-api.json post /asset-management/v1/assets
openapi: 3.0.0
info:
  title: Lynkwell API
  version: 1.376.0
  description: API Documentation for assetManagement service
servers:
  - url: https://api.lynkwell.com
security: []
tags: []
paths:
  /asset-management/v1/assets:
    post:
      tags:
        - Assets
      summary: Create a new asset
      description: This endpoint creates a new asset
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAssetParams'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Asset'
        '400':
          description: >-
            Bad Request. check the the error code and message to see what is
            wrong
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetManagementBadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetManagementUnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultForbiddenError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetManagementInternalServerError'
      security:
        - oauth2:
            - write:asset
components:
  schemas:
    CreateAssetParams:
      type: object
      description: >-
        You must provide the object that matches the type of asset you are
        creating. So if you are specify type "chargingStation" you must provide
        the "chargingStation" object
      properties:
        type:
          description: The type of asset to be created
          type: string
          enum:
            - chargingStation
        network:
          description: The network associated with the asset
          type: string
        assetGroup:
          description: The asset-group to which the asset belongs
          type: string
        chargingStation:
          $ref: '#/components/schemas/CreateChargingStationParams'
      required:
        - type
        - network
        - assetGroup
    Asset:
      type: object
      properties:
        id:
          type: string
        type:
          description: The type of asset. Currently only chargingStation is supported
          type: string
          enum:
            - chargingStation
        network:
          type: object
          properties:
            id:
              type: string
          required:
            - id
        sitePartners:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
            required:
              - id
        assetGroup:
          type: object
          properties:
            id:
              type: string
          required:
            - id
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        archivedAt:
          type: string
          format: date-time
          description: >-
            When present, the station has been archived (an irreversible
            soft-delete). Absent on active stations. Archived stations are
            excluded from list responses unless includeArchived=true.
        chargingStation:
          $ref: '#/components/schemas/ChargingStation'
      required:
        - id
        - type
        - network
        - sitePartners
        - assetGroup
        - createdAt
        - updatedAt
        - chargingStation
    AssetManagementBadRequestError:
      type: object
      description: The response body for a 400 request
      properties:
        type:
          type: string
          enum:
            - BAD_REQUEST
        code:
          type: string
          enum:
            - INVALID_REQUEST_PARAMETERS
            - REFERENCE_ERROR
            - UNSUPPORTED_TYPE
            - LOCATION_VALIDATION_ERROR
            - CHARGING_STATION_VALIDATION_ERROR
            - SITE_HOST_VALIDATION_ERROR
            - UTILITY_VALIDATION_ERROR
            - UTILITY_USER_NOT_ALLOWED
            - INVALID_CONTACT_DETAILS
            - CONTACT_DETAILS_ALREADY_EXISTS
            - SITE_PARTNER_USER_ARCHIVED
            - ASSET_NOT_CONNECTED
            - LICENSE_ALREADY_ASSIGNED
            - INVALID_AUTH_METHOD
            - INVALID_ENROLLED_SERVICES
            - UNSUPPORTED_PAYMENT_TERMINAL_PROVIDER
            - UNSUPPORTED_SIM_PROVIDER
            - RATE_IN_USE
            - CHARGING_STATION_MODEL_ARCHIVED
            - OPERATING_SITE_HOST_NOT_FOUND
            - OPERATING_SITE_HOST_INVALID_TYPE
            - OPERATING_SITE_HOST_ARCHIVED
            - LOCATION_ARCHIVED
        message:
          type: string
    AssetManagementUnauthorizedError:
      type: object
      description: The response body for a 401 request
      properties:
        message:
          type: string
    DefaultForbiddenError:
      type: object
      description: The response body for a 403 request
      properties:
        message:
          type: string
    AssetManagementInternalServerError:
      type: object
      description: The response body for a 500 request
      properties:
        type:
          type: string
          enum:
            - INTERNAL_ERROR
        code:
          type: string
          enum:
            - INTERNAL_SERVER_ERROR
        message:
          type: string
    CreateChargingStationParams:
      type: object
      description: Details specific to the charging station type of asset
      properties:
        serialNumber:
          description: >-
            The identifier the station will use when connecting to the central
            system. It is USUALLY the serial number of the hardware unit itself,
            but it could be different.
          type: string
        name:
          type: string
          maxLength: 16
        rate:
          type: string
        status:
          $ref: '#/components/schemas/ChargingStationStatusEnum'
        connectors:
          type: array
          items:
            $ref: '#/components/schemas/CreateUpdateConnector'
        localAuthorization:
          description: >-
            Set to true if the station should authenticate itself when starting
            a charge session
          type: boolean
          default: false
        geoLocation:
          description: >-
            The geographical location of the station. If this is not provided we
            will inherit the values from the parent location.
          type: object
          properties:
            longitude:
              type: number
              minimum: -180
              maximum: 180
            latitude:
              type: number
              minimum: -90
              maximum: 90
          required:
            - longitude
            - latitude
        powerType:
          type: string
          enum:
            - AC_1_PHASE
            - AC_3_PHASE
            - DC
        protocol:
          description: >-
            The communication protocol used by the station. Currently only OCPP
            1.6 is supported
          type: string
          enum:
            - OCPP_1_6
        images:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
              thumbnail:
                type: string
              category:
                type: string
              imgType:
                type: string
            required:
              - url
              - category
              - imgType
          nullable: true
        sortOrder:
          description: This is used to order stations when displayed in a list
          type: number
        directionHint:
          type: string
        simInfo:
          type: object
          description: If the iccid is a managed sim then the simGroup is required
          properties:
            iccid:
              type: string
            simGroup:
              type: string
          required:
            - iccid
        supportsSimultaneousCharging:
          type: boolean
          description: >-
            Set to true if the station supports charging on multiple cables at
            the same time
        accessibleParkingForTrailers:
          type: boolean
          description: Set to true if the station is accessible by a vehicle with a trailer
        paymentTerminal:
          type: object
          description: >-
            If the integrationType is HARDWARE then an authorizationIdTag will
            be present
          properties:
            serialNumber:
              type: string
            provider:
              type: string
              enum:
                - PAYTER
                - MAGTEK
                - NAYAX
            integrationType:
              type: string
              enum:
                - CLOUD
                - HARDWARE
                - TERMINAL
            authorizationIdTag:
              type: string
            preAuthAmount:
              type: number
            operatingSiteHostId:
              type: string
              nullable: true
              description: >-
                ID of the SitePartner (type=siteHost) that operates this
                terminal and collects revenue from it.
        securityProfile:
          type: object
          description: >-
            If the profile is PASSWORD and a password is not provided we will
            configure the station in the background. If a password is provided
            we will assume the station is already configured with that password
          properties:
            profile:
              type: string
              enum:
                - PASSWORD
            password:
              type: string
        shortCode:
          description: A short string to more easily identify the station
          type: string
      required:
        - serialNumber
        - name
        - rate
        - status
        - connectors
        - localAuthorization
        - powerType
    ChargingStation:
      type: object
      properties:
        authMethods:
          $ref: '#/components/schemas/AuthMethods'
        serialNumber:
          description: >-
            The identifier the station will use when connecting to the central
            system. It is USUALLY the serial number of the hardware unit itself,
            but it could be different.
          type: string
        name:
          type: string
        rate:
          type: string
        status:
          $ref: '#/components/schemas/ChargingStationStatusEnum'
        connectors:
          type: array
          items:
            $ref: '#/components/schemas/Connector'
        localAuthorization:
          description: >-
            Set to true if the station should authenticate itself when starting
            a charge session
          type: boolean
          default: false
        geoLocation:
          $ref: '#/components/schemas/GeoLocation'
        powerType:
          description: The type of electricity that is used to power station
          type: string
          enum:
            - AC_1_PHASE
            - AC_3_PHASE
            - DC
        protocol:
          description: >-
            The communication protocol used by the station. Currently only OCPP
            1.6 is supported
          type: string
          enum:
            - OCPP_1_6
        images:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
              thumbnail:
                type: string
              category:
                type: string
              imgType:
                type: string
            required:
              - url
              - category
              - imgType
          nullable: true
        manufacturingInfo:
          type: object
          description: >-
            The stations manufacturing information that is provided when a
            station boots up
          properties:
            chargePointVendor:
              type: string
            chargePointModel:
              type: string
            chargePointSerialNumber:
              type: string
            chargeBoxSerialNumber:
              type: string
            firwareVersion:
              type: string
            imsi:
              type: string
            meterType:
              type: string
            meterSerialNumber:
              type: string
          nullable: true
          required:
            - chargePointVendor
            - chargePointModel
        sortOrder:
          type: number
          description: This is used to order stations when displayed in a list
          nullable: true
        directionHint:
          type: string
          nullable: true
        simInfo:
          type: object
          properties:
            iccid:
              type: string
            fleet:
              type: string
            createdAt:
              type: string
              format: date-time
          nullable: true
          required:
            - iccid
            - createdAt
        supportsSimultaneousCharging:
          type: boolean
          description: >-
            Set to true if the station supports charging on multiple cables at
            the same time
          nullable: true
        accessibleParkingForTrailers:
          type: boolean
          description: Set to true if the station is accessible by a vehicle with a trailer
          nullable: true
        paymentTerminal:
          type: object
          description: >-
            If the integrationType is HARDWARE then an authorizationIdTag will
            be present
          properties:
            id:
              type: string
            serialNumber:
              type: string
            provider:
              type: string
              enum:
                - PAYTER
                - MAGTEK
                - NAYAX
            integrationType:
              type: string
              enum:
                - CLOUD
                - HARDWARE
                - TERMINAL
            authorizationIdTag:
              type: string
            preAuthAmount:
              type: number
            status:
              type: string
              enum:
                - PENDING
                - FAILED
                - VERIFIED
              description: Terminal activation status
            errorCode:
              type: string
              nullable: true
              description: Error code if terminal activation failed
            operatingSiteHostId:
              type: string
              nullable: true
              description: >-
                ID of the SitePartner (type=siteHost) that operates this
                terminal and collects revenue from it.
          nullable: true
        shortCode:
          type: string
          description: A short string to more easily identify the station
          nullable: true
        license:
          type: object
          properties:
            externalId:
              type: string
            expirationDate:
              type: string
              format: date-time
            assignedAt:
              type: string
              format: date-time
          required:
            - externalId
            - expirationDate
            - assignedAt
          nullable: true
      required:
        - serialNumber
        - name
        - rate
        - status
        - connectors
        - localAuthorization
        - geoLocation
        - powerType
    ChargingStationStatusEnum:
      description: >-
        Describes the status of a charging station. PLANNED means that the
        station is waiting to be installed. MAINTENANCE means that the station
        is not available for charging. ACTIVE means that the station is
        available for charging. INACTIVE essentially means the station is
        offline and likely to be removed
      type: string
      enum:
        - PLANNED
        - MAINTENANCE
        - ACTIVE
        - INACTIVE
      default: PLANNED
    CreateUpdateConnector:
      type: object
      required:
        - id
        - isActive
        - connectionType
        - format
        - maxAmperage
        - maxVoltage
      properties:
        id:
          type: number
        isActive:
          type: boolean
        connectionType:
          type: string
          enum:
            - CHADEMO
            - IEC_62196_T1
            - IEC_62196_T1_COMBO
            - IEC_62196_T2
            - IEC_62196_T2_COMBO
            - TESLA_R
            - TESLA_S
            - SAE_J3400
        format:
          type: string
          enum:
            - CABLE
            - SOCKET
        maxAmperage:
          type: number
          minimum: 0
        maxVoltage:
          type: number
          minimum: 0
    AuthMethods:
      description: The methods of authentication that are enabled for the station
      type: object
      properties:
        rfid:
          type: object
          properties:
            enabled:
              type: boolean
            updatedAt:
              type: string
              format: date-time
          required:
            - enabled
            - updatedAt
        mobileApp:
          type: object
          properties:
            enabled:
              type: boolean
            updatedAt:
              type: string
              format: date-time
          required:
            - enabled
            - updatedAt
        autoCharge:
          type: object
          properties:
            enabled:
              type: boolean
            updatedAt:
              type: string
              format: date-time
          required:
            - enabled
            - updatedAt
        freeVend:
          type: object
          properties:
            enabled:
              type: boolean
            updatedAt:
              type: string
              format: date-time
          required:
            - enabled
            - updatedAt
        paymentTerminal:
          type: object
          properties:
            enabled:
              type: boolean
            updatedAt:
              type: string
              format: date-time
          required:
            - enabled
            - updatedAt
      required:
        - rfid
        - mobileApp
        - autoCharge
        - freeVend
        - paymentTerminal
    Connector:
      type: object
      properties:
        id:
          type: number
        isActive:
          type: boolean
        connectionType:
          type: string
          enum:
            - CHADEMO
            - IEC_62196_T1
            - IEC_62196_T1_COMBO
            - IEC_62196_T2
            - IEC_62196_T2_COMBO
            - TESLA_R
            - TESLA_S
            - SAE_J3400
        format:
          type: string
          enum:
            - CABLE
            - SOCKET
        maxAmperage:
          type: number
          minimum: 0
        maxVoltage:
          type: number
          minimum: 0
        updatedAt:
          type: string
          format: date-time
      required:
        - id
        - isActive
        - connectionType
        - format
        - maxAmperage
        - maxVoltage
        - updatedAt
    GeoLocation:
      description: Geolocation details for the location
      type: object
      properties:
        longitude:
          type: number
          minimum: -180
          maximum: 180
        latitude:
          type: number
          minimum: -90
          maximum: 90
      required:
        - longitude
        - latitude
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth2 Client Credentials Flow
      flows:
        clientCredentials:
          tokenUrl: https://lynkwell-prod.us.auth0.com/oauth/token
          scopes:
            read:asset: Retrieve assets
            write:asset: Create and update assets
            read:assetgroup: Retrieve asset groups
            write:assetgroup: Create and update asset groups
            read:assetstatus: Retrieve asset statuses
            read:chargingstationmodel: Retrieve charging station models
            write:chargingstationmodel: Create and update charging station models
            write:network: Create and update networks
            write:sitepartner: Create and update site partners
            read:sitepartner: Retrieve site partners
            write:sitepartneruser: Create and update site partner users
            read:sitepartneruser: Retrieve site partner users
            read:networkaccessprofile: Retrieve network access profiles
            write:paymentprofile: Create payment profile
            write:onboardinglink: Create an onboarding link
            read:invoice: Retrieve an invoice
            write:session: Create or update a session
            read:session: Retrieve a session
            write:ticket: Create a ticket
            write:verificationcode: Send and confirm verification codes
            write:driver: Create and update drivers
            read:driver: Retrieve drivers
            write:token: Create and update tokens
            read:token: Retrieve tokens
            read:tokenvalue: Retrieve token by ID including its value
            write:invitecode: Create and update invite codes
            write:invitation: Create and update invitations
            read:invitation: Retrieve invitations
            read:payment_terminals_payment: Read payments from payment terminal
            abort:session: Abruptly end session
            read:paymentprofile: Retrieve payment profile from payment terminal
            write:ocpp: Sends request over OCPP
            write:ocpp.raw_request: Sends raw request over OCPP
            write:notification.email: Create and update email
            read:invoiceitem: Retrieve invoice item
            read:subscription: Retrieve subscription
            write:plugandcharge_enrollment: Update Plug and Charge enrollment status
            write:projects: Create and update projects
            read:projects: Retrieve projects
            write:project_stations: Create and update project stations
            write:panel: Create and update panels.
            read:panel: Retrieve panels.
            write:webhooks: Create, update, and delete webhooks
            read:webhooks: Retrieve webhooks

````