Table of Contents
User management API
API to create internal BDOM user
Generic reference:
/user/OPCODE/OWNER_ID/USER_ID/
Where:
| OPCODE(operation type) availables values:create,update |
| OWNER_ID: Your specific owner id assigned by BDOM system |
| USER_ID: The id assigned to user by BDOM system |
Description: Create a new User.
Reference: /bdom/user/create/OWNERID/-/
Operation Type: PUT
Validation XSD
Validator
Example 7.1. User validation XSD:
Source:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xs:element name="request">
<xs:complexType>
<xs:all>
<xs:element name="first-name" type="xs:string" />
<xs:element name="last-name" type="xs:string" />
<xs:element name="middle-name" type="xs:string" minOccurs="0"/>
<xs:element name="sex" type="SexType" />
<xs:element name="organisation" type="xs:string" />
<xs:element name="type" type="ContactType" />
<xs:element name="street" type="xs:string" />
<xs:element name="number" type="xs:string" />
<xs:element name="postcode" type="xs:string" />
<xs:element name="city" type="xs:string" />
<xs:element name="region" type="xs:string" minOccurs="0"/>
<xs:element name="country" type="CountryType" />
<xs:element name="phone" type="PhoneType" />
<xs:element name="extension" type="xs:string" minOccurs="0"/>
<xs:element name="fax" type="PhoneType" minOccurs="0"/>
<xs:element name="email" type="EmailType"/>
<!-- the email for robot communications - optional -->
<xs:element name="robomail" type="EmailType" minOccurs="0"/>
<xs:element name="bank" type="xs:string" minOccurs="0"/>
<xs:element name="account" type="xs:string" minOccurs="0"/>
<!-- BLZ -->
<xs:element name="bank_code_nr" type="xs:string" minOccurs="0"/>
<xs:element name="account_owner" type="xs:string" minOccurs="0"/>
<xs:element name="vat" type="xs:string" minOccurs="0"/>
<xs:element name="blocked" type="xs:int" />
<xs:element name="password" type="PasswordType"/>
<xs:element name="class" type="ClassType"/>
<xs:element name="owner_id" type="xs:int"/>
<!-- default 1 -->
<xs:element name="need_conf" type="xs:int" minOccurs="0"/>
<!-- default 0 -->
<xs:element name="create_conf" type="xs:int" minOccurs="0"/>
<!-- kunden id -->
<xs:element name="kd_id" type="xs:int" minOccurs="0"/>
<!-- default 1 -->
<xs:element name="notified" type="xs:string" minOccurs="0"/>
<!-- default 1 -->
<xs:element name="owner_notified" type="xs:string" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:simpleType name="ClassType">
<xs:restriction base="xs:string">
<xs:enumeration value="subuser" />
<xs:enumeration value="user" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PasswordType">
<xs:restriction base="xs:string">
<xs:pattern value=".{6,50}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BoolType">
<xs:restriction base="xs:string">
<xs:enumeration value="YES" />
<xs:enumeration value="NO" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CountryType">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NonEmptyString">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EmailType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9a-zA-Z\-_\.]{1,64}@[0-9a-zA-Z\-_\.]{3,64}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PhoneType">
<xs:restriction base="xs:string">
<xs:pattern value="\+\d+\.\d+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ContactType">
<xs:restriction base="xs:string">
<xs:enumeration value="PERS" />
<xs:enumeration value="ORG" />
<xs:enumeration value="ROLE" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SexType">
<xs:restriction base="xs:string">
<xs:enumeration value="MALE" />
<xs:enumeration value="FEMALE" />
<xs:enumeration value="NA" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
![]() | Important | |
|---|---|---|
|
Example 7.2. User Create:valid request
Minimal tags required to create a user.
REQUEST:
Generic Operation: PUT(http://backend.antagus.de/bdom/user/create/1/-/,xml)
Where xml:
<?xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<first-name>Otto</first-name>
<last-name>Normalverbraucher</last-name>
<sex>MALE</sex>
<organisation>Acme CO</organisation>
<type>PERS</type>
<street>Main Street</street>
<number>13</number>
<postcode>55555</postcode>
<city>New Stad</city>
<country>DE</country>
<phone>+040.012345678</phone>
<email>otto@nictest.de</email>
<blocked>0</blocked>
<password>pass_test</password>
<class>subuser</class>
<owner_id>1</owner_id>
</request>
RESPONSE:
<response><user_id>13048</user_id><username>noota0001</username></response>
Example 7.3. User Create:invalid
Xml content from request fails to provide all requested tags
REQUEST:
Generic Operation: PUT(http://backend.antagus.de/bdom/user/create/1/-/,xml)
Where xml:
<?xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<type>PERS</type>
<sex>MALE</sex>
<first-name>John</first-name>
<last-name>Doe</last-name>
<middle-name></middle-name>
<organisation>Acme CO</organisation>
<street>Main Street</street>
<number>13/Z</number>
<postcode>55555</postcode>
<city>New City</city>
<region></region>
<country>Germany</country>
<phone>+040.0123456789</phone>
<extension>11</extension>
<fax>+40.1234567890</fax>
<email>john@nictest.de</email>
<bank>First Bank</bank>
<account>0000001</account>
<vat>19</vat>
<blocked>0</blocked>
<username>tstoonc</username>
<password>pass_test</password>
<class>user</class>
<owner_id>1</owner_id>
<need_conf>1</need_conf>
<create_conf>0</create_conf>
</request>
RESPONSE:
<error-list>
<umsg>[XML_ERROR] XML error Validation error: Contents of element request do
not match content model
(userid?;first-name;last-name;middle-name?;sex;organisation;type;street;number;postcode;city;region?;country;phone;extension?;fax?;email;robomail?;bank?;account?;bank_code_nr?;account_owner?;vat?;blocked;username?;password?;class?;owner_id?;need_conf?;create_conf?;kd_id?;pgp_pubkey?;pgp_name?;active?;notified?)
.</umsg>
<error>
<code>406</code>
<msg>[OBJECT_ERROR] Error [XML_ERROR] XML error Validation error:
Contents of element request do not match content model
(userid?;first-name;last-name;middle-name?;sex;organisation;type;street;number;postcode;city;region?;country;phone;extension?;fax?;email;robomail?;bank?;account?;bank_code_nr?;account_owner?;vat?;blocked;username?;password?;class?;owner_id?;need_conf?;create_conf?;kd_id?;pgp_pubkey?;pgp_name?;active?;notified?)
.</msg>
</error>
</error-list>
Description: Update a User data
Reference: /bdom/user/update/USER_ID/OWNER_ID/
Operation Type: POST
Where:
| OWNER_ID: Your specific owner id assigned by BDOM system |
| USER_ID: The id assigned to user by BDOM system |
Validation XSD:
Validator
Example 7.4. Contact Update validation XSD:
Source:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xs:element name="request">
<xs:complexType>
<xs:all>
<xs:element name="userid" type="xs:int"/>
<xs:element name="first-name" type="xs:string" />
<xs:element name="last-name" type="xs:string" />
<xs:element name="middle-name" type="xs:string" minOccurs="0"/>
<xs:element name="sex" type="SexType" />
<xs:element name="organisation" type="xs:string" />
<xs:element name="type" type="ContactType" />
<xs:element name="street" type="xs:string" />
<xs:element name="number" type="xs:string" />
<xs:element name="postcode" type="xs:string" />
<xs:element name="city" type="xs:string" />
<xs:element name="region" type="xs:string" minOccurs="0"/>
<xs:element name="country" type="CountryType" />
<xs:element name="phone" type="PhoneType" />
<xs:element name="extension" type="xs:string" minOccurs="0"/>
<xs:element name="fax" type="PhoneType" minOccurs="0"/>
<xs:element name="email" type="EmailType"/>
<!-- the email for robot communications - optional -->
<xs:element name="robomail" type="EmailType" minOccurs="0"/>
<xs:element name="bank" type="xs:string" minOccurs="0"/>
<xs:element name="account" type="xs:string" minOccurs="0"/>
<!-- BLZ -->
<xs:element name="bank_code_nr" type="xs:string" minOccurs="0"/>
<xs:element name="account_owner" type="xs:string" minOccurs="0"/>
<xs:element name="vat" type="xs:string" minOccurs="0"/>
<xs:element name="blocked" type="xs:int" />
<xs:element name="password" type="PasswordType"/>
<xs:element name="owner_id" type="xs:int"/>
<xs:element name="need_conf" type="xs:int"/>
<!-- kunden id -->
<xs:element name="kd_id" type="xs:int" minOccurs="0"/>
<xs:element name="notified" type="xs:string"/>
<xs:element name="owner_notified" type="xs:string"/>
<xs:element name="active" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:simpleType name="PasswordType">
<xs:restriction base="xs:string">
<xs:pattern value=".{6,50}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BoolType">
<xs:restriction base="xs:string">
<xs:enumeration value="YES" />
<xs:enumeration value="NO" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CountryType">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NonEmptyString">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EmailType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9a-zA-Z\-_\.]{1,64}@[0-9a-zA-Z\-_\.]{3,64}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PhoneType">
<xs:restriction base="xs:string">
<xs:pattern value="\+\d+\.\d+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ContactType">
<xs:restriction base="xs:string">
<xs:enumeration value="PERS" />
<xs:enumeration value="ORG" />
<xs:enumeration value="ROLE" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SexType">
<xs:restriction base="xs:string">
<xs:enumeration value="MALE" />
<xs:enumeration value="FEMALE" />
<xs:enumeration value="NA" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
![]() | Important | |
|---|---|---|
|
Example 7.5. User Update:valid(change password)
Change password from pass_test to new_pass_test
REQUEST:
Generic Operation: POST(http://backend.antagus.de/bdom/user/update/1/13048/,xml)
Where xml:
<?xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<userid>13048</userid>
<first-name>Otto</first-name>
<last-name>Normalverbraucher</last-name>
<sex>MALE</sex>
<organisation>Acme Gmbh</organisation>
<type>PERS</type>
<street>Main Strasse</street>
<number>13</number>
<postcode>555555</postcode>
<city>Newe Stad</city>
<country>DE</country>
<phone>+040.0123456789</phone>
<email>otto@nictest.de</email>
<blocked>0</blocked>
<password>new_pass</password>
<class>subuser</class>
<owner_id>1</owner_id>
<need_conf>0</need_conf>
<notified>0</notified>
<owner_notified>0</owner_notified>
<active>1</active>
</request>
RESPONSE:
<response>1 updated</response>
Example 7.6. User Update:invalid
Wrong http method used in call
REQUEST:
Generic Operation: PUT(http://backend.antagus.de/bdom/user/update/1/13048/,xml)
Where xml:
<?xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<userid>13048</userid>
<first-name>Otto</first-name>
<last-name>Normalverbraucher</last-name>
<sex>MALE</sex>
<organisation>Acme Gmbh</organisation>
<type>PERS</type>
<street>Main Strasse</street>
<number>13</number>
<postcode>555555</postcode>
<city>Newe Stad</city>
<country>DE</country>
<phone>+040.0123456789</phone>
<email>otto@nictest.de</email>
<blocked>0</blocked>
<password>new_new_pass</password>
<class>subuser</class>
<owner_id>1</owner_id>
<need_conf>0</need_conf>
<notified>0</notified>
<owner_notified>0</owner_notified>
<active>1</active>
</request>
RESPONSE:
<error-list>
<umsg>Wrong opcode for method or invalid opcode in uri /bdom/user/update/1/13048/</umsg>
<error>
<code>400</code>
<msg>[OBJECT_ERROR] Error Wrong opcode for method or invalid opcode in uri /bdom/user/update/1/13048/</msg>
</error>
</error-list>
Description: Get data for an existing user User.
Reference: /bdom/user/status/OWNER_ID/USER_ID/
Operation Type: GET
Where:
| USER_ID: valid id assigned by BDOM system |
| OWNER_ID: valid id assigned by BDOM system |
Example 7.7. User Status: Valid request
REQUEST
Generic Operation:
Request: GET(http:http://backend.antagus.de/bdom/user/status/1/13048/)
RESPONSE:
<response >
<account></account>
<active>1</active>
<bank></bank>
<blocked>0</blocked>
<city>Newe Stad</city>
<class>subuser</class>
<country>DE</country>
<email>otto@nictest.de</email>
<first-name>Otto</first-name>
<last-name>Normalverbraucher</last-name>
<level>2</level>
<need_conf>0</need_conf>
<notified>0</notified>
<number>13</number>
<organisation>Acme Gmbh</organisation>
<owner_id>1</owner_id>
<owner_notified>0</owner_notified>
<password>new_pass</password>
<phone>+040.0123456789</phone>
<postcode>555555</postcode>
<region></region>
<sex>MALE</sex>
<street>Main Strasse</street>
<type>PERS</type>
<user_id>13048</user_id>
<username>noota0001</username>
</response>
Example 7.8. User Status: Invalid request
REQUEST
Generic Operation:
Request: GET(http:http://backend.antagus.de/bdom/user/status/2/13048/)
RESPONSE:
<error-list><umsg>User belongs to different owner</umsg><error><code>401</code><msg>[OBJECT_ERROR] Error User belongs to different owner</msg></error></error-list>
Description: Get all subusers of an existing user.
Reference: /bdom/user/all/OWNER_ID/-/
Operation Type: GET
Where:
| OWNER_ID: valid id assigned by BDOM system |
Example 7.7. User list: Valid request
REQUEST
Generic Operation:
Request: GET(http://backend.antagus.de/bdom/user/all/13048/-/)
RESPONSE:
<multiresponse> <response > <blocked>1</blocked> <class>subuser</class> <first_name>John</first_name> <kd_id></kd_id> <last_name>Doe</last_name> <organisation>johnDoe INC</organisation> <owner_id>13408</owner_id> <user_id>999999</user_id> <username>xxxx00001</username> </response> <response > <blocked></blocked> <class>subuser</class> <first_name>Jane</first_name> <kd_id></kd_id> <last_name>Doe</last_name> <organisation>NA</organisation> <owner_id>13408</owner_id> <user_id>999998</user_id> <username>xxxx00002</username> </response> </multiresponse>
Description: Get all inactive subusers of an existing user.
Reference: /bdom/user/inactive/OWNER_ID/-/
Operation Type: GET
Where:
| OWNER_ID: valid id assigned by BDOM system |
Example 7.7. User list: Valid request
REQUEST
Generic Operation:
Request: GET(http://backend.antagus.de/bdom/user/inactive/13048/-/)
RESPONSE:
<multiresponse>
<response >
<blocked>1</blocked>
<class>subuser</class>
<first_name>John</first_name>
<kd_id></kd_id>
<last_name>Doe</last_name>
<organisation>johnDoe INC</organisation>
<owner_id>13408</owner_id>
<user_id>999999</user_id>
<username>xxxx00001</username>
</response>
<response >
<blocked></blocked>
<class>subuser</class>
<first_name>Jane</first_name>
<kd_id></kd_id>
<last_name>Doe</last_name>
<organisation>NA</organisation>
<owner_id>13408</owner_id>
<user_id>999998</user_id>
<username>xxxx00002</username>
</response>
</multiresponse>
Description: Get a paged list of all subusers of an existing user.
Reference: /bdom/user/list/OWNER_ID/-/
Operation Type: POST
Where:
| OWNER_ID: valid id assigned by BDOM system |
Validation XSD
Validator
Example 7.1. User validation XSD:
Source:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xs:element name="request">
<xs:complexType>
<xs:all>
<xs:element name="userid" type="xs:int" />
<xs:element name="offset" type="xs:int" />
<xs:element name="limit" type="xs:int" />
<xs:element name="order-by" type="xs:string" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Example 7.7. User list: Valid request
REQUEST
Generic Operation:
Request: POST(http://backend.antagus.de/bdom/user/list/13048/-/,xml)
Where xml:
<?xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<userid>13048</userid>
<offset>10</offset>
<limit>5</limit>
<order-by>first_name,last_name</order-by>
</request>
RESPONSE:
</multiresponse> <response > <account></account> <account_owner></account_owner> <active>1</active> <active_bill>1</active_bill> <allow_at_hold></allow_at_hold> <allow_dup_cont></allow_dup_cont> <bank></bank> <bank_code_nr></bank_code_nr> <block_comment></block_comment> <blocked></blocked> <check_count></check_count> <city>Nui</city> <class>subuser</class> <confirm_notification>1</confirm_notification> <country>NA</country> <del_on_renew></del_on_renew> <direct_domain_delete>1</direct_domain_delete> <dom1></dom1> <email>nare@nici.unu</email> <extension></extension> <fax>+11.111111</fax> <first_name>Cam</first_name> <from_for_owners></from_for_owners> <icann_mails>1</icann_mails> <kd_id></kd_id> <last_name>Mai</last_name> <level>2</level> <max_check_count>3000</max_check_count> <middle_name></middle_name> <monthlyrenew></monthlyrenew> <need_conf>1</need_conf> <notified>1</notified> <nsi></nsi> <number>1</number> <ocd_prerenew_mail>1</ocd_prerenew_mail> <ocd_prerenew_mail_for_owner>1</ocd_prerenew_mail_for_owner> <organisation>Notified</organisation> <owner_id>19</owner_id> <owner_notified>1</owner_notified> <pass_reset_code></pass_reset_code> <phone>+11.111111</phone> <postcode>1111</postcode> <region></region> <robomail></robomail> <sedomls></sedomls> <sex>MALE</sex> <signature_for_icann_mails></signature_for_icann_mails> <street>Nare</street> <subuser_renew_notify></subuser_renew_notify> <test_user></test_user> <type>PERS</type> <user_id>9999999</user_id> <username>xxxx0002</username> <vat></vat> </response> <response > <account></account> <account_owner></account_owner> <active>1</active> <active_bill>1</active_bill> <allow_at_hold></allow_at_hold> <allow_dup_cont></allow_dup_cont> <bank></bank> <bank_code_nr></bank_code_nr> <block_comment></block_comment> <blocked></blocked> <check_count></check_count> <city>Nui</city> <class>subuser</class> <confirm_notification>1</confirm_notification> <country>NA</country> <del_on_renew></del_on_renew> <direct_domain_delete>1</direct_domain_delete> <dom1></dom1> <email>nare@nici.unu</email> <extension></extension> <fax>+11.111111</fax> <first_name>Cam</first_name> <from_for_owners></from_for_owners> <icann_mails>1</icann_mails> <kd_id></kd_id> <last_name>Mai</last_name> <level>2</level> <max_check_count>3000</max_check_count> <middle_name></middle_name> <monthlyrenew></monthlyrenew> <need_conf>1</need_conf> <notified>1</notified> <nsi></nsi> <number>1</number> <ocd_prerenew_mail>1</ocd_prerenew_mail> <ocd_prerenew_mail_for_owner>1</ocd_prerenew_mail_for_owner> <organisation>Notified</organisation> <owner_id>19</owner_id> <owner_notified>1</owner_notified> <pass_reset_code></pass_reset_code> <phone>+11.111111</phone> <postcode>1111</postcode> <region></region> <robomail></robomail> <sedomls></sedomls> <sex>MALE</sex> <signature_for_icann_mails></signature_for_icann_mails> <street>Nare</street> <subuser_renew_notify></subuser_renew_notify> <test_user></test_user> <type>PERS</type> <user_id>9999999</user_id> <username>xxxx0002</username> <vat></vat> </response> </multiresponse>