| URL | 
http://<Impact_URL>/m2m/endpoints | 
| Method | 
POST | 
| Content-Type | 
application/json | 
| URL Params | 
 The URL parameters are: 
- 
serialNumber:[string]: Specifies the serial number of LWM2M device.
          This parameter is mandatory. 
 
- 
identifier:[string]: Specifies the name that uniquely identifies the
          LWM2M device. 
 
- 
address:[string]: Specifies the MSISDN associated with the
          device. 
 
- 
protocol:[string]: Specifies the communication protocol of the
          device. For LWM2M device, use LWM2M. This parameter is mandatory. 
 
- 
groupName:[string]: Specifies the name of the IMPACT group to which
          the device registers. This parameter is mandatory. 
 
- 
additionalParams:[composite]: Specifies the additional parameters for
          LWM2M Payload. This must be passed empty, if no additional parameters are specified.
          Example: "additionalParams":{}. 
secMode: Specifies the security mode used by the LWM2M client for
          device registration. It can take either the value Pre-Shared Key (PSK) or Raw Public Key
          (RPK). 
The bootstrap.secMode, bootstrap.psk,
           bootstrap.pskIdentity, bootstrap.publicKey are the
          bootstrap credentials provided during pre-provisioning of the device. 
A sample format PSK bootstrap credentials is as
          follows: {
"additionalParams":{
"bootstrap.secMode": "PSK",
"bootstrap.pskIdentity": "test1"
"bootstrap.psk": "dGVzdDE="
},
"groupName": "abcdxyz",
"protocol": "LWM2M",
"serialNumber": "511224901110663",
"identifier":"511224901110663"
}
  
A sample format for RPK bootstrap credentials is as
          follows: {
"additionalParams":{
"bootstrap.secMode": "RPK",
"bootstrap.publicKey": "
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEji9A5dNme
8imybyECI7q+vWi+
Sj0YVnNgPvT998DyQc+gxIg9veWkQAebvLT
uUsWAaHOq4PldS9WToCgjFwawQ==
-----END PUBLIC KEY-----",
},
"groupName": "abcdxyz",
"protocol": "LWM2M",
"serialNumber": "511224901110666",
"identifier":"511224901110666"
}
  
- If the value is PSK, the following parameters must be filled
- 
psk:[string]: Specifies the value of the Secret Key
               resource that is used by the LWM2M client as per LWM2M Object: LWM2M Security. The
               PSK must be b64 encoded. It is mandatory to provide psk, if
                pskIdentity is provided, and vice versa. 
 
- 
pskIdentity:[string]: Specifies the value of the Public Key
                or Identity Resource that the LWM2M client uses. 
Note: Non-ASCII characters are supported for PSK Identity and PSK password
               parameters. 
Note: In IMPACT, the Pre-Shared Key (PSK) uses
               a Base64 encoded binary data format at all levels (Device and tenant). 
A sample format PSK registration credentials is as
               follows: {
"additionalParams":{
"secMode": "PSK",
"pskIdentity": "test",
"psk: "dGVzdA=="
},
"groupName": "abcdxyz",
"protocol": "LWM2M",
"serialNumber": "511224901110666",
"identifier":"511224901110666"
}
  
 
  
- If the value is RPK, the following parameter must be
             filled:
publicKey:[string]: Specifies the public key of the LWM2M
             client. A sample format is as
             follows: {
"additionalParams":{
"secMode": "RPK",
"publicKey": "-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEji
9A5dNme8imybyECI7q+vWi+
Sj0YVnNgPvT998DyQc+gxIg9veWkQAebvLTuUsWAa
HOq4PldS9WToCgjFwawQ==
-----END PUBLIC KEY-----",
},
"groupName": "abcdxyz",
"protocol": "LWM2M",
"serialNumber": "511224901110666",
"identifier":"511224901110666"
}
  
            When an LWM2M device is pre-provisioned over SCEF with valid
               externalId or  scefmsisdn, following is the sample
             format to be
             filled: 
{
"serialNumber":"urn:nai:20100775092020",
"protocol":"LWM2M",
"groupName":"sep.sepp",
"additionalParams":{
"externalId": "ext-201102300920207"
}
}
 or {
"serialNumber":"ntc-kjio",
"protocol":"LWM2M",
"groupName":"sep.sepp",
"additionalParams":{
"scefMsisdn": "+3220100775092020"
}
}
  
 
 
         
 
- customAttributes: Specifies the custom
         attributes with designated values. This can take a maximum value of 512 varchar. This is an
         optional parameter. 
Custom attributes are part of call back URL notification as shown in
          the following sample report: {"reports":[{"serialNumber":"urn:imei:test",
"timestamp":1540825091125,"subscriptionId":"b4274172-
0c5b-4aae-8447-4b6a1486d815",
"resourcePath":"3/0/10","value":"15.0",
"customAttributes":{"Key2":"Value2","Key1":"Value1"}}],
"registrations":[],"deregistrations":[],
"updates":[],"expirations":[],"responses":[]}Note: 
- When a customAttribute is provided, a new column for
            CUSTOM_ATTRIBUTES is created in DC_DEVICE table.
 
- In GET http://<impact_url>/m2m/endpoints/\{SerialNumber}  REST API, the
            custom attributes are not part of response payload.
 
 
  
 
 | 
| Data Params | 
 msg:[string] : info/warning/error message 
 | 
| Success Code | 
Response Code: 200 
 | 
| Error Code | 
400 : Bad Request  
401 : Unauthorized  
404 : Not Found  
 | 
| Sample Call | 
Curl:curl -X POST --header 'Content-Type: application/json' 
--header 'Accept: application/json'  --header 'Authorization: Basic ZG9jdXNlcjpBc2RmMSM=' -d 
{
"additionalParams":{
"secMode": "PSK",
"pskIdentity": "test1"
"psk": "dGVzdDE="
},
"groupName": "test",
"protocol": "LWM2M",
"serialNumber": "511224901110663",
"identifier":"511224901110663"
}
 curl -X POST --header 'Content-Type: application/json' 
--header 'Accept: application/json'  --header 'Authorization: Basic ZG9jdXNlcjpBc2RmMSM=' -d 
{
"additionalParams":{
"bootstrap.secMode": "RPK",
"bootstrap.publicKey": "-----BEGIN PUBLIC KEY-----MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEji
9A5dNme8imybyECI7q+vWi+Sj0YVnNgPvT998DyQc+gxIg9veWkQAebvLTuUsWAaHOq4PldS9WToCgjFwawQ==
-----END PUBLIC KEY-----",
},
"groupName": "test",
"protocol": "LWM2M",
"serialNumber": "511224901110666",
"identifier":"511224901110666"
}Response
        Body:{
"msg": "Device Added Successfully", "Code": 3000
}
  | 
| Notes | 
 In case of No Security
additionalParams are not required. 
serialNumber, protocol, and
         groupName are mandatory parameters. 
 |