The HTTP request to AXL would use the <updateAppUser> request:
POST https://10.88.131.141:8443/axl/ HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "CUCM

B ver=8.0 updateAppUser"
User-Agent: Jakarta Commons-HttpClient/3.1
Content-Length: 449
Authorization: Basic QWRtaW5pc3RyYXRvcjpjaXNjbyExMjM=
Host: 10.88.131.141:8443
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/8.0">
<soapenv:Header/>
<soapenv:Body>
<ns:updateAppUser sequence="1">
<userid>testAppUser</userid>
<associatedDevices>
<!--Zero or more repetitions:-->
<device>SEP123456789012</device>
</associatedDevices>
</ns:updateAppUser>
</soapenv:Body>
</soapenv:Envelope>
Note that the <associatedDevices> list must be complete - i.e. the entire list of devices for the user will be replaced by this list.