Registration-Server API Calls

Login

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>loginuser</command>
        <requesttime></requesttime>
        <username></username>
        <password></password>
</teamdrive>

Note

For release 1.0.003: <useroremail> instead of <username> will be accepted

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <userdata>
                <username></username>
                <email></email>
                <language></language>
                <reference></reference>
                <department></department>
        </userdata>
</teamdrive>

Changes to API release 1.0.003:

<invitecode> is not longer returned, <reference> and <department> were added.

Error Cases

User Unknown

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30100</primarycode>
                <secondarycode></secondarycode>
                <message>Username does not exists</message>
        </exception>
</teamdrive>

Wrong Password

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30101</primarycode>
                <secondarycode></secondarycode>
                <message>Wrong password</message>
        </exception>
</teamdrive>

Account not Activated

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30102</primarycode>
                <secondarycode></secondarycode>
                <message>Account not Activated by activation mail</message>
        </exception>
</teamdrive>

Account Disabled (added in 1.0.003)

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30119</primarycode>
                <secondarycode></secondarycode>
                <message>Account is disabled</message>
        </exception>
</teamdrive>

Account in Deletion (added in 1.0.003)

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30120</primarycode>
                <secondarycode></secondarycode>
                <message>Account will be deleted by the user</message>
        </exception>
</teamdrive>

Redirect to the Website of the Distributor

Users who try to login to the TeamDrive website will be redirected to the website of the distributor. The XML answer will return the URL in the <message>-Tag. You have to redirect the user to that URL.

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30004</primarycode>
                <secondarycode></secondarycode>
                <message>[URL]</message>
        </exception>
</teamdrive>

Search user

Warning

This function is for internal usage only. Do not allow public access.

You can perform a wildcard search using ‘*’, e.g. ‘Teamdrive*’ will find all data starting with ‘Teamdrive...’, ‘*Teamdrive’ will find all data ending with ‘...Teamdrive’, and ‘*Teamdrive*’ will find all data that contains ‘...Teamdrive...’. You can search by Username, Email, or both. If you search by both, the fields will be combined with an AND.

If you search without the wildcard, we will do an exact match for the string. A minimum of 3 characters (without wildcard) is required.

You can limit the search to your own users by using <onlyownusers>true</onlyownusers>. In this case you could leave username and email empty to retrieve a list with all of your users.

Currently, the answer will return a maximum of 50 records. This maximum value might change in the future. The current maximum value is included within the reply’s <maximum>-tag.

If <current> == <maximum>, there may be more records available than returned in the reply. To retrieve the next set of records, resend the same request and put the highest User-ID from the last reply into the <startid> field. For the first search request you can set``<startid>`` to 0, or omit it entirely.

If a user does not belong to your distributor their email-field will be empty.

The <devicelist> block will only be returned if you send <showdevice>true</showdevice> in your request. The <amount> field (under <devicelist> ) holds the number of devices that will be returned for this user. If the user has no TeamDrive client installations, this value will be 0.

In <searchresult> you will find statistical information about the found records:

<current>
Amount of records in this reply
<total>
Total amount of records
<maximum>
Maximum amount of records the server will return in a reply

If no records are found, <current> and <total> will be 0. In this case, the <userlist> block will not be returned.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>searchuser</command>
        <requesttime></requesttime>
        <username></username>
        <email></email>
        <startid></startid>
        <showdevice>true/false</showdevice>
        <onlyownusers>true/false</onlyownusers>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <searchresult>
                <current></current>
                <maximum></maximum>
                <total></total>
        </searchresult>
        <userlist>
                <user>
                        <userid></userid>
                        <username></username>
                        <email></email>
                        <reference></reference>
                        <department></department>
                        <distributor></distributor>
                        <usercreated></usercreated>
                        <language></language>
                        <status></status>
                        <devicelist>
                                <amount></amount>
                                <device>
                                        <deviceid></deviceid>
                                        <status></status>
                                        <licensekey></licensekey>
                                        <feature></feature>
                                        <devicecreated></devicecreated>
                                        <deviceactive></deviceactive>
                                        <version></version>
                                        <platform></platform>
                                </device>
                                <device>
                                        ...
                                </device>
                        </devicelist>
                </user>
                <user>
                        ...
                </user>
        </userlist>
</teamdrive>

Changes to API release 1.0.003:

<reference> and <department> was added.

Error Cases

Search String too Short

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30116</primarycode>
                <secondarycode></secondarycode>
                <message>Search string to short</message>
        </exception>
</teamdrive>

Get User Data

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>getuserdata</command>
        <requesttime></requesttime>
        <username></username>
        <distributor></distributor>
</teamdrive>

Changes to API release 1.0.003:

<distributor> was added. Value is optional and will only be used if allowed by the API (see APIAllowSettingDistributor).

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <userdata>
                <username></username>
                <email></email>
                <language></language>
                <distributor></distributor>
                <reference></reference>
                <department></department>
        </userdata>
        <licensedata>
                <license>
                        <created></created>
                        <productid></productid>
                        <productname></productname>
                        <type></type>
                        <number></number>
                        <featurevalue></featurevalue>
                        <featuretext></featuretext>
                        <validuntil></validuntil>
                        <limit></limit>
                        <used></used>
                        <status></status>
                        <isdefault></isdefault>
                </license>
                <license>...</license>
                <license>...</license>
        </licensedata>
        <depotdata>
                <count></count>
                <depot>
                        <hosturl></hosturl>
                        <depotid></depotid>
                        <isdefault></isdefault>
                </depot>
                <depot>...</depot>
        </ depotdata>
</teamdrive>

For a description of the fields, see Get license data for a user.

Changes to API release 1.0.003:

<invitecode> is not longer returned,

<reference> and <department> were added,

<depotdata>-block changed, because each user could have more than one depot, but only one default-depot. The amount of depots for the users could be found in <count>

A default license is normally created when the user installs their first client application. You can create a default license with the API, if no default license already exists, by setting “CreateDefaultLicense” as described in the registration server documentation.

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

Create a new Account

Note

The range of possible Usernames depend on the RegNameComplexity setting as described in the Registration Server documentation. Similary, the length of passwords can be restricted by the ClientPasswordLength setting. However, these restriction only apply when creating a new account, they will not be checked when a user attempts to log in

In case that UseEmailAsReference is defined, the username will be automatically generated and the email will be used to reference the user. All further request where username is was required can then also be sent with the user’s email in place of their username.

The user will get an activation email sent to their email address. You can change this behaviour with the AllowActivationWithoutEmail setting as described in the Registration Server documentation.

The user’s record will be assigned to the distributor. Users are mapped to distributors by either the IP-address of the request sender or the distributor-tag from the request. A Distributor can only create users belonging to them.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>registeruser</command>
        <requesttime></requesttime>
        <username></username>
        <useremail></useremail>
        <password></password>
        <language></language>
        <reference></reference>
        <department></department>
        <distributor></distributor>
</teamdrive>

Changes to API release 1.0.003:

<reference> and <department> were added

<distributor> was added. Value is optional and will only be used if allowed by the API (see APIAllowSettingDistributor).

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

Username Already Exists

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30103</primarycode>
                <secondarycode></secondarycode>
                <message>Username already exists</message>
        </exception>
</teamdrive>

Email is already is use

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30104</primarycode>
                <secondarycode></secondarycode>
                <message>Email already exists</message>
        </exception>
</teamdrive>

This error will only be returned from our own TDRS because the email field is unique there.

Username Invalid, if length == 0

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30108</primarycode>
                <secondarycode></secondarycode>
                <message>Username invalid</message>
        </exception>
</teamdrive>

Password Invalid, if length < ClientPasswordLength

The value ClientPasswordLength is described in the Registration Server documentation.

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30109</primarycode>
                <secondarycode></secondarycode>
                <message>Password invalid</message>
        </exception>
</teamdrive>

Email Invalid, if length == 0 or missing “@” and ”.”

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30110</primarycode>
                <secondarycode></secondarycode>
                <message>Email invalid</message>
        </exception>
</teamdrive>

Resend Activation (added in 1.0.004)

Will resend the activation mail to the user.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>resendactivation</command>
        <requesttime></requesttime>
        <username></username>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30100</primarycode>
                <secondarycode></secondarycode>
                <message>Username does not exists</message>
        </exception>
</teamdrive>

Account already activated

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30118</primarycode>
                <secondarycode></secondarycode>
                <message>Account already activated</message>
        </exception>
</teamdrive>

Activate User

Note

To activate the user you have to send back the activation code in <activationcode>. This is the code that was sent to the user in the activation mail.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>activateuser</command>
        <requesttime></requesttime>
        <username></username>
        <activationcode></activationcode>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30100</primarycode>
                <secondarycode></secondarycode>
                <message>Username does not exists</message>
        </exception>
</teamdrive>

Wrong Activation Code

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30106</primarycode>
                <secondarycode></secondarycode>
                <message>Wrong activation code</message>
        </exception>
</teamdrive>

Activate Client (added in 1.0.003)

If a user creates their own account using a TeamDrive client application, they will be sent a client activation email. The activation link from that email will normally lead back to the TDRS. However, if the link does not directly point to the TDRS, the following API call can be used to activate the client.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>activateclient</command>
        <requesttime></requesttime>
        <activationcode></activationcode>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

Wrong Activation Code

See above

Activation Code not Found

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30117</primarycode>
                <secondarycode></secondarycode>
                <message>Activation code not found</message>
        </exception>
</teamdrive>

Forgotten Password

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>sendpassword</command>
        <requesttime></requesttime>
        <username></username>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

Reset Password (added in 1.0.003)

Resetting a user’s password will set it to a random value. The user then had to define a new password themselves.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>resetpassword</command>
        <requesttime></requesttime>
        <username></username>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled

See above

Account in Deletion

See above

Change password

Note

<tmppassword> must contain the temporary password that was emailed to the after the sendpassword API call. The <password> filed must contain the new password chosen by the user.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>changepassword</command>
        <requesttime></requesttime>
        <username></username>
        <tmppassword></tmppassword>
        <password></password>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

Temporary password wrong

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30105</primarycode>
                <secondarycode></secondarycode>
                <message>Temporary password does not match</message>
        </exception>
</teamdrive>

Password invalid, if length < ClientPasswordLength

The ClientPasswordLength value is described in the registration server documentation.

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30109</primarycode>
                <secondarycode></secondarycode>
                <message>Password invalid</message>
        </exception>
</teamdrive>

Temporary password expired

Note

The User has 10 minutes to complete password changing operation. If the time expired, the user has to request a new password again using changepassword .

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30113</primarycode>
                <secondarycode></secondarycode>
                <message>Temporary password expired</message>
        </exception>
</teamdrive>

Update password

Note

If a user is already logged in they can change their password directly. You have to make sure that this API command is only sent for users which have already been authenticated.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>updatepassword</command>
        <requesttime></requesttime>
        <username></username>
        <newpassword></newpassword>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

Password invalid, if length < ClientPasswordLength

The ClientPasswordLength value is described in the registration server documentation.

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30109</primarycode>
                <secondarycode></secondarycode>
                <message>Password invalid</message>
        </exception>
</teamdrive>

Set reference (added in 1.0.004)

Will set the external reference for a user

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>setreference</command>
        <requesttime></requesttime>
        <username></username>
        <reference></reference>
        <distributor></distributor>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled

See above

Account in Deletion

See above

Set email (added in 1.0.003)

Note

This command will change the email for the user directly without sending a confirmation email to the user like the command changeemail.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>setemail</command>
        <requesttime></requesttime>
        <username></username>
        <newemail></newemail>
        <distributor></distributor>
</teamdrive>

The <distributor> value is optional and will only be used if allowed by the API (see APIAllowSettingDistributor).

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled

See above

Account in Deletion

See above

Email invalid, if length == 0 or “@” and ”.” are missing

See above

Change email address

Note

The change-email request will be stored until the user confirms the new email address. Until then, the old email will still be displayed.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>changeemail</command>
        <requesttime></requesttime>
        <username></username>
        <newemail></newemail>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

Email already exists (in another user’s registration or in their own registration)

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30104</primarycode>
                <secondarycode></secondarycode>
                <message>Email already exists</message>
        </exception>
</teamdrive>

This error will only be returned from our own TDRS, because the email field is unique there.

Email invalid, if length == 0 or “@” and ”.” are missing

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <
                primarycode>-30110</primarycode>
                <secondarycode></secondarycode>
                <message>Email invalid</message>
        </exception>
</teamdrive>

Confirm new email

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>confirmnewemail</command>
        <requesttime></requesttime>
        <username></username>
        <activationcode></activationcode>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

Wrong activation code

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30106</primarycode>
                <secondarycode></secondarycode>
                <message>Wrong activation code</message>
        </exception>
</teamdrive>

Email already exists in an other registration

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30104</primarycode>
                <secondarycode></secondarycode>
                <message>Email already exists</message>
        </exception>
</teamdrive>

This error will only be returned from our own TDRS, because the email field is unique there.

Change language

Note

Languages fields use valid ISO 3166 language codes (see http://en.wikipedia.org/wiki/ISO_3166-1).

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>changelanguage</command>
        <requesttime></requesttime>
        <username></username>
        <newlanguage></newlanguage>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

Invalid language

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30115</primarycode>
                <secondarycode></secondarycode>
                <message>Invalid language</message>
        </exception>
</teamdrive>

Remove user (added in 1.0.003)

This call will delete the user account immediately (as opposed to deleteuser which requires user confirmation). Set <deletelicense> to $true if you would like to delete the user’s license as well.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>removeuser</command>
        <requesttime></requesttime>
        <username></username>
        <deletelicense>$true/$false</deletelicense>
        <distributor></distributor>
</teamdrive>

<distributor> value is optional and will only be used if allowed by the API (see APIAllowSettingDistributor).

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Remove device (added in 1.0.004)

This call deletes a user’s device. The id of the device must specified in the request. The list of devices a user posses can be retrieved using searchuser.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>removedevice</command>
        <requesttime></requesttime>
        <username></username>
        <deviceid></deviceid>
        <distributor></distributor>
</teamdrive>

<distributor> value is optional and will only be used if allowed by the API (see APIAllowSettingDistributor).

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Device not found

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30121</primarycode>
                <secondarycode></secondarycode>
                <message>Device not found</message>
        </exception>
</teamdrive>

Delete user

Note

The user will be send a confirmation email. Their account will not be deleted until they confirm the operation. (see Remove user (added in 1.0.003) if you wish to delete a user without confirmation)

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>deleteuser</command>
        <requesttime></requesttime>
        <username></username>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Confirm delete user

Note

This function is not currently activated.

Note

The <activationcode> will be send to the email address of the user The User has to authenticate again with their password. Set <deletedepot> to $true to also delete the user’s default depot. Set <deletelicense> to $true to also delete the user’s licenses.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>confirmuserdelete</command>
        <requesttime></requesttime>
        <username></username>
        <password></password>
        <activationcode></activationcode>
        <deletedepot></deletedepot>
        <deletelicense></deletelicense>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Password invalid

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30101</primarycode>
                <secondarycode></secondarycode>
                <message>Wrong password</message>
        </exception>
</teamdrive>

Activation code invalid

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30106</primarycode>
                <secondarycode></secondarycode>
                <message>Wrong activation code</message>
        </exception>
</teamdrive>

Get license data for a user

Note

The <licensedata> block is identical to the reply from a login.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>getlicensedata</command>
        <requesttime></requesttime>
        <username></username>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <licensedata>
                <license>
                        <created></created>
                        <productid></productid>
                        <productname></productname>
                        <type></type>
                        <number></number>
                        <featurevalue></featurevalue>
                        <featuretext></featuretext>
                        <validuntil></validuntil>
                        <limit></limit>
                        <used></used>
                        <status></status>
                        <isdefault></isdefault>
                </license>
                <license>...</license>
                <license>...</license>
        </licensedata>
</teamdrive>

Description of the fields and values:

  • created: Creation date, format DD.MM.YYYY
  • productid: 1 or 2 (see productname)
  • productname: client (1) or server (2)
  • type: 0 = permanent, 1 = monthly payment, 2 = not for resale, 3 = yearly payment
  • number: license number
  • featurevalue: sum of the numbers as described in featuretext
  • featuretext: Banner (1), WebDAVs (2), Personal (4), Professional (8), Enterprise (16)
  • validuntil: license valid until, Format DD.MM.YYYY
  • limit: License amount
  • used: Used licenses
  • status: 0 = active, 1 = deactivated, 2 = deleted (records with status “deleted” will not be returned using the API)
  • isdefault: Is it a default license for the user (only possible for productid = 1). The user will be downgraded to their default license if a foreign license will be rejected from their installation.

Changes to API release 1.0.003:

A default license will normally be created when the user installs their first client application. The API could create a default license, if no default license exists, by setting “CreateDefaultLicense” as described in the registration server documentation.

Error Cases

User Unknown

See above

License unknown, deactivated or deleted

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30201</primarycode>
                <secondarycode></secondarycode>
                <message>Unknown License</message>
        </exception>
</teamdrive>

Get default-license for a user

Note

The reply will return the same <licensedata>-Block as the command getlicensedata.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>getdefaultlicense</command>
        <requesttime></requesttime>
        <username></username>
</teamdrive>

Reply:

see Reply in getlicensedata

Get default depot URL by username

Note

The reply return the same <depotdata> block as described for the "login" command.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>getdefaultdepotdata</command>
        <requesttime></requesttime>
        <username></username>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <depotdata>
                <depot>
                        <depotid></depotid>
                        <name></name>
                        <status></status>
                        <accountnumber></accountnumber>
                        <created></created>
                        <storagelimit></storagelimit>
                        <storageused></storageused>
                        <transferlimit></transferlimit>
                        <transferused></transferused>
                        <userlist></userlist>
                </depot>
                <depot>...</depot>
                <depot>...</depot>
        </depotdata>
</teamdrive>

Error Cases

User Unknown

See above

Depot unknown

Note

Users without a TeamDrive Client installation might have no depot.

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30107</primarycode>
                <secondarycode></secondarycode>
                <message>No Default Depot</message>
        </exception>
</teamdrive>

Get url for the default depot server (added in 1.0.004)

Note

This call could be used to get the current default depot server which is selected in the admin console to create depots on the host server using the API

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>gethostfordepot</command>
        <requesttime></requesttime>
        <distributor></distributor>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <hosturl></hosturl>
</teamdrive>

Error Cases

No default depot server

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30107</primarycode>
                <secondarycode></secondarycode>
                <message>No default depot server</message>
        </exception>
</teamdrive>

Set depot for user (added in 1.0.003)

<sendtoclient> is an optional parameter and will do the sendinvitation call as described below (added in 1.0.004)

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>setdepotforuser</command>
        <requesttime></requesttime>
        <username></username>
        <depot></depot>
        <isdefault></isdefault>
        <sendtoclient></sendtoclient>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled

See above

Account in Deletion

See above

Depot already exists

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30307</primarycode>
                <secondarycode></secondarycode>
                <message>Depot already exists</message>
        </exception>
</teamdrive>

Remove depot from user (added in 1.0.005)

Note

In case of deleting the default depot of a user and the user has still an other depot in his list, the oldest depot will become the default depot

<sendtoclient> is an optional parameter and will do the sendinvitation call as described below

There are different calls possible:

  • Sending the depot file like in setdepotforuser
  • Sending HostURL and depot id
<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>removedepotfromuser</command>
        <requesttime></requesttime>
        <username></username>
        <depot></depot>
        <sendtoclient></sendtoclient>
</teamdrive>

OR

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>removedepotfromuser</command>
        <requesttime></requesttime>
        <username></username>
        <hosturl></hosturl>
        <depotid></depotid>
        <sendtoclient></sendtoclient>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled

See above

Account in Deletion

See above

Depot data missing or invalid

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30123</primarycode>
                <secondarycode></secondarycode>
                <message>Depot data missing or invalid</message>
        </exception>
</teamdrive>

Depot not found

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30124</primarycode>
                <secondarycode></secondarycode>
                <message>Depot not found</message>
        </exception>
</teamdrive>

Send invitation

Note

Will be used for business users to distribute or delete a company depot to other users.

<type> is INV_TYPE_CREATEDEPOT or INV_TYPE_DELETEDEPOT

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>sendinvitation</command>
        <requesttime></requesttime>
        <username></username>
        <userlist></userlist>
        <type></type>
        <invitation></invitation>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

Type unknown

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30111</primarycode>
                <secondarycode></secondarycode>
                <message>Invitation type unknown</message>
        </exception>
</teamdrive>

Set invited user

Note

Will be used for the referral program. (see
REFERRAL Settings).

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>setinviteduser</command>
        <requesttime></requesttime>
        <username></username>
        <inviteduser></inviteduser>
        <sendmail></sendmail>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

Username invalid

The invited user could not be found

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30108</primarycode>
                <secondarycode></secondarycode>
                <message>Unknown user: xxx</message>
        </exception>
</teamdrive>

Set invited user failed

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30209</primarycode>
                <secondarycode></secondarycode>
                <message>Setinvited user failed</message>
        </exception>
</teamdrive>

Create license

Parameters:

  • <productname> : server, client

  • <type> : monthly, yearly, permanent

  • <featurevalue> : One of the following values: webdavs, personal, professional, enterprise, banner (only for client licenses)

  • <limit> : Amount (for a client license), 0000 = unlimited (for a server license)

    Added with version 1.0.004:

  • <licensereference>: An optional external reference (free text field with 100 char)

  • <contractnumber>: An optional contract number (free text field with 255 char)

  • <validuntil>: An optional valid-until date. Format must be DD.MM.YYYY

  • <changeid>: An optional change id for license changes

  • <sendemail>: Currently not used

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>createlicense</command>
        <requesttime></requesttime>
        <username></username>
        <productname></productname>
        <type></type>
        <featurevalue></featurevalue>
        <limit></limit>
        <licensereference></licensereference>
        <contractnumber></contractnumber>
        <validuntil></validuntil>
        <changeid></changeid>
        <sendemail></sendemail>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

Productname unknown

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30203</primarycode>
                <secondarycode></secondarycode>
                <message>Productname unknown</message>
        </exception>
</teamdrive>

Type unknown

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30204</primarycode>
                <secondarycode></secondarycode>
                <message>Type unknown</message>
        </exception>
</teamdrive>

Feature unknown

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30205</primarycode>
                <secondarycode></secondarycode>
                <message>Feature unknown</message>
        </exception>
</teamdrive>

Limit unknown / invalid

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30206</primarycode>
                <secondarycode></secondarycode>
                <message>Limit unknown</message>
        </exception>
</teamdrive>

Invalid date (added in 1.0.004)

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30122</primarycode>
                <secondarycode></secondarycode>
                <message>Invalid date</message>
        </exception>
</teamdrive>

Create license without user (added in 1.0.003)

Similar to createlicense, but without setting a reference to a specific user. Might be useful if a shop application wanted to retrieve a license before the user has an account in the shop.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>createlicensewithoutuser</command>
        <requesttime></requesttime>
        <username></username>
        <productname></productname>
        <type></type>
        <featurevalue></featurevalue>
        <limit></limit>
        <licensereference></licensereference>
        <contractnumber></contractnumber>
        <validuntil></validuntil>
        <changeid></changeid>
        <sendemail></sendemail>
</teamdrive>

Reply and errors identical to createlicense.

Assign user to license (added in 1.0.003)

If createlicensewithoutuser was used then this command can be used to assign the license to a user. The user’s record information will be used to update the values in the license table.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>assignusertolicense</command>
        <requesttime></requesttime>
        <username></username>
        <number></number>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

License unknown

See above

Assign license to client (added in 1.0.004)

Assigns a license to a teamdrive client. <devicelist> is an optional list of devices the user posses. If empty, all of the user’s devices will be used. This function can only be used if the user has at least one device.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>assignlicensetoclient</command>
        <requesttime></requesttime>
        <username></username>
        <devicelist></devicelist>
        <number></number>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled

See above

Account in Deletion

See above

License unknown

See above

Device not found

See above

Remove user from license (added in 1.0.003)

The complement to assignusertolicense which can remove a user’s license.

Important

This will not remove the license from any installations!

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>removeuserfromlicense</command>
        <requesttime></requesttime>
        <username></username>
        <number></number>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

Account Disabled (added in 1.0.003)

See above

Account in Deletion (added in 1.0.003)

See above

License unknown

See above

Invalid distributor

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30114</primarycode>
                <secondarycode></secondarycode>
                <message>Invalid Distributor</message>
        </exception>
</teamdrive>

Deactivate license (added in 1.0.003)

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>deactivatelicense</command>
        <requesttime></requesttime>
        <number></number>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

License unknown

See above

Invalid distributor

See above

License change failed

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30210</primarycode>
                <secondarycode></secondarycode>
                <message>License already disabled</message>
        </exception>
</teamdrive>

Activate license (added in 1.0.003)

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>activatelicense</command>
        <requesttime></requesttime>
        <number></number>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

License unknown

See above

Invalid distributor

See above

License change failed

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30210</primarycode>
                <secondarycode></secondarycode>
                <message>License not disabled</message>
        </exception>
</teamdrive>

Upgrade license

Fixed in version 1.0.004: The current feature was ignored.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>upgradelicense</command>
        <requesttime></requesttime>
        <username></username>
        <number></number>
        <featurevalue></featurevalue>
        <limit></limit>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

License unknown

See above

License upgrade not possible

Note

This error occurs in cases such as when the license is deactivated or deleted.

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30202</primarycode>
                <secondarycode></secondarycode>
                <message>License upgrade failed</message>
        </exception>
</teamdrive>

Upgrade default-license

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>upgradedefaultlicense</command>
        <requesttime></requesttime>
        <username></username>
        <number></number>
        <featurevalue></featurevalue>
        <limit></limit>
</teamdrive>

Reply:

For form of reply and possible errors see upgradelicense.

Downgrade license

Fixed in version 1.0.004: Downgrading a license was not working

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>downgradelicense</command>
        <requesttime></requesttime>
        <username></username>
        <number></number>
        <featurevalue></featurevalue>
        <decreaselimit></decreaselimit>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

License unknown

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30201</primarycode>
                <secondarycode></secondarycode>
                <message>Unknown License</message>
        </exception>
</teamdrive>

Downgrade not possible

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30208</primarycode>
                <secondarycode></secondarycode>
                <message>License downgrade failed</message>
        </exception>
</teamdrive>

Downgrade default-license

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>downgradedefaultlicense</command>
        <requesttime></requesttime>
        <username></username>
        <number></number>
        <featurevalue></featurevalue>
        <limit></limit>
</teamdrive>

Reply:

For reply and errors see downgradelicense.

Show used client licenses

Note

<licensenumber> is optional.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>getusedlicense</command>
        <requesttime></requesttime>
        <username></username>
        <licensenumber></licensenumber>
</teamdrive>

Reply:

Note

<userlist> is a comma separated list with user names. Only active license will be returned (not inactive or deleted licenses). If no license data could be found, error-30201 will be returned (see below).

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <licensedata>
                <license>
                        <number></number>
                        <used></used>
                        <limit></limit>
                        <userlist></userlist>
                </license>
                <license>...</license>
                <license>...</license>
        </licensedata>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

License unknown, deactivated or deleted

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30201</primarycode>
                <secondarycode></secondarycode>
                <message>Unknown License</message>
        </exception>
</teamdrive>

Set license reference (added in 1.0.004)

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>setlicensereference</command>
        <requesttime></requesttime>
        <licensenumber></licensenumber>
        <licensereference></licensereference>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

License unknown, deactivated or deleted

See above

Remove license from a user

Note

<userlist> is a comma separated list with user names.

Added in version 1.0.004:
<devicelist> is an optional list of devices belonging to the user. If it is empty or unspecified, all of the user’s devices will be used.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>removelicense</command>
        <requesttime></requesttime>
        <username></username>
        <licensenumber></licensenumber>
        <userlist></userlist>
        <devicelist></devicelist>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

License unknown, deactivated or deleted

See above

Delete / cancel license

Note

If no license data could be found, you will get an “Unknown License” error. Use the field <decreaselimit> to define the amount of licenses. To delete / cancel the license completely, send 0 in the field, otherwise a value > 0.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>cancellicense</command>
        <requesttime></requesttime>
        <username></username>
        <licensenumber></licensenumber>
        <decreaselimit></decreaselimit>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

User Unknown

See above

Account not Activated

See above

License could not be reduced, because they are still in use

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30207</primarycode>
                <secondarycode></secondarycode>
                <message>Cancel license failed</message>
        </exception>
</teamdrive>

License unknown, deactivated or deleted

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <exception>
                <primarycode>-30201</primarycode>
                <secondarycode></secondarycode>
                <message>Unknown License</message>
        </exception>
</teamdrive>

Set distributor

Note

This function can currently only be accessed by the default distributor. Only registered distributors can be used.

Request:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <command>setdistributor</command>
        <requesttime></requesttime>
        <username></username>
        <distributor></distributor>
</teamdrive>

Reply:

<?xml version='1.0' encoding='UTF-8' ?>
<teamdrive>
        <apiversion>1.0.005</apiversion>
        <intresult>0</intresult>
</teamdrive>

Error Cases

Access denied

See above

Invalid Distributor

See above