Knowledge Base
Introduction Session handling Domain management Contact management Check Contact availability Create Contact Query Contact info Update Contact Delete Contact Response codes Host management Message polling Extensions Registrars Domains REST API

Contact management

The management of contacts via the EPP Gateway allows for easy checking, creation, deleting, and updating of domain contact handles.

Check Contact availability

The EPP <contact:check> command is used to determine if a contact exists. It provides a hint that allows a client to anticipate the success or failure of provisioning, changing or deleting an object.

Command provide possibility to check single and/or multiple contact(s) within single request.

Command request contain following element:

  • <contact:id> – contact identifier to be checked. Registrar is able to provide multiple <contact:id> in a single request.

After successful command execution response will include all <contact:id> provided in request with attribute “avail” and value “0” or “1”. “0” mean that contact with such ID is already available and cannot be created, “1” mean that ID syntax is correct and available for registration.

Request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp
    xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <check>
            <contact:check
                xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
                <contact:id>ID-111</contact:id>
                <contact:id>ID-222</contact:id>
                <contact:id>ID-333</contact:id>
            </contact:check>
        </check>
        <clTRID>53cfb0544d22f</clTRID>
    </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData>
      <contact:chkData xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
        <contact:cd>
          <contact:id avail="0">ID111</contact:id>
          <contact:reason>In use</domain:reason>
        </contact:cd>
        <contact:cd>
          <contact:id avail="0">ID222</contact:id>
          <contact:reason>In use</domain:reason>
        </contact:cd>
        <contact:cd>
          <contact:id avail="1">ID333</contact:id>
        </contact:cd>
      </contact:chkData>
    </resData>
    <trID>
      <clTRID>53cfb0544d22f</clTRID>
      <svTRID>53cfb07c20d4b</svTRID>
    </trID>
  </response>
</epp>

Create Contact

The EPP <contact:create> command is supposed to be used to create Contact object.

Contact object is used to identify registrant, administrative, technical and/or billing contact for domain.

This command contain elements:

  • <contac:id> – unique identifier for the contact. If value is empty – ST Registry will generate new ID.
  • <contact:postalInfo> – one or two elements with address information. There is possibility to use element <contact:postalinfo> one of two types (or both) – “int” and/or “loc”. Usage of two elements of same type is disallowed.
    type=”int” – text only in Latin.
    type=”loc” – text on national language in UTF-8.
    <contact:postalInfo> include following subelements:
    <contact:name> – name (obligatory element).
    <contact:org> – organisation (optional).
    <contact:addr> – address, contain of subelements:
    <contact:street> – up to 3 string (optional).
    <contact:city> – city (optional).
    <contact:sp> – province (optional).
    <contact:pc> – postal code (optional).
    <contact:cc> – country code according to the ISO 3166.
  • <contact:voice> – telephone number (optional). Contact telephone number structure is derived from structures defined in [ITU.E164.2005]. Telephone numbers described in this mapping are character strings that MUST begin with a plus sign (“+”, ASCII value 0x002B), followed by a country code defined in [ITU.E164.2005], followed by a dot (“.”, ASCII value 0x002E), followed by a sequence of digits representing the telephone number. An optional “x” attribute is provided to note telephone extension information.
  • <contact:fax> – fax number (optional). Fax number format requirements are identical to the <contact:voice>.
  • <contact:email> – email address (obligatory element).
  • <contact:authInfo><pw> – AuthInfo (also known as AuthCode or EPPCode). If element is empty then ST Registry will generate it automatically. Requirements for AuthInfo:
    minimum length – 6 symbols
    maximum length – 16 symbols
    both upper and lower case should be used
    should include digit(s)
Request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp
    xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <create>
            <contact:create
                xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
                <contact:id>ID-123</contact:id>
                <contact:postalInfo type="int">
                    <contact:name>contact name</contact:name>
                    <contact:org>contact organization</contact:org>
                    <contact:addr>
                        <contact:street>street1</contact:street>
                        <contact:street>street2</contact:street>
                        <contact:street>street3</contact:street>
                        <contact:city>contact City</contact:city>
                        <contact:sp>province</contact:sp>
                        <contact:pc>11011</contact:pc>
                        <contact:cc>US</contact:cc>
                    </contact:addr>
                </contact:postalInfo>
                <contact:voice>+1.12312332</contact:voice>
                <contact:fax>+1.12312332</contact:fax>
                <contact:email>contact@my.domain.st</contact:email>
                <contact:authInfo>
                    <contact:pw><![CDATA[53cfb37a3f4f6]]></contact:pw>
                </contact:authInfo>
            </contact:create>
        </create>
        <clTRID>53cfb37a42cbc</clTRID>
    </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData>
      <contact:creData xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
        <contact:name>ID-123</contact:name>
        <contact:crDate>2014-01-01T13:52:40+00:00</contact:crDate>
      </contact:creData>
    </resData>
    <trID>
      <clTRID>53cfbe1de7713</clTRID>
      <svTRID>a64bde94-cc3b-42cb-8628-88b647600d05</svTRID>
    </trID>
  </response>
</epp>

Query Contact info

The EPP <contact:info> command is used to retrieve complete information about Contact object.

Command request contain following element:

  • <contact:id> – contact identifier to be checked. Registrar is able to provide multiple <contact:id> in a single request.

This command response contain elements:

  • <contac:id> – unique identifier for the contact. If value is empty – ST Registry will generate new ID.
  • <contact:postalInfo> – one or two elements with address information (“int” or “loc”.
    type=”int” – text only in Latin.
    type=”loc” – text on national language in UTF-8.
    <contact:postalInfo> include following subelements:
    <contact:name> – name.
    <contact:org> – organisation.
    <contact:addr> – address, contain of subelements:
    <contact:street> – up to 3 string.
    <contact:city> – city.
    <contact:sp> – province.
    <contact:pc> – postal code.
    <contact:cc> – country code according to the ISO 3166.
  • <contact:voice> – telephone number. Contact telephone number structure is derived from structures defined in [ITU.E164.2005]. Telephone numbers described in this mapping are character strings that MUST begin with a plus sign (“+”, ASCII value 0x002B), followed by a country code defined in [ITU.E164.2005], followed by a dot (“.”, ASCII value 0x002E), followed by a sequence of digits representing the telephone number. An optional “x” attribute is provided to note telephone extension information.
  • <contact:fax> – fax number (optional). Fax number format is identical to the <contact:voice>.
  • <contact:email> – email address.
  • <contact:authInfo><pw> – AuthInfo (also known as AuthCode or EPPCode).
Request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp
    xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <info>
            <contact:info
                xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
                <contact:id>ID-123</contact:id>
            </contact:info>
        </info>
        <clTRID>53cfbefca8017</clTRID>
    </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData>
      <contact:infData xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
        <contact:id>ID-123</contact:id>
        <contact:roid>ST-ID-123</contact:roid>
        <contact:status s="ok"></contact:status>
        <contact:postalInfo type="int">
          <contact:name>contact name</contact:name>
          <contact:org>contact organization</contact:org>
          <contact:addr>
            <contact:street>street1</contact:street>
            <contact:street>street2</contact:street>
            <contact:street>street3</contact:street>
            <contact:city>contact City</contact:city>
            <contact:pc>11011</contact:pc>
            <contact:sp>province</contact:sp>
            <contact:cc>US</contact:cc>
          </contact:addr>
        </contact:postalInfo>
        <contact:voice>+1.12312332</contact:voice>
        <contact:fax>+1.12312332</contact:fax>
        <contact:email>contact@my.domain.st</contact:email>
        <contact:clID>ABC123</contact:clID>
        <contact:crID>ABC123</contact:crID>
        <contact:crDate>2014-01-01T13:09:06+00:00</contact:crDate>
      </contact:infData>
      <authInfo>
        <pw>S5d9I12DkiQBEnqc</pw>
      </authInfo>
    </resData>
    <trID>
      <clTRID>53cfbefca8017</clTRID>
      <svTRID>3ba93147-4c33-4a95-9ebb-763e0f8bff9a</svTRID>
    </trID>
  </response>
</epp>

Update Contact

The EPP <contact:update> command is supposed to be used to update Contact object details. Only object sponsor/owner may update it.

This command contain elements:

  • <contac:id> – unique identifier for the contact. If value is empty – ST Registry will generate new ID.
  • <contact:add> – optional element. Contain of elements which should be added to the object.
  • <contact:rem> – optional element. Contain of elements which should be removed from the object.
  • <contact:chg> – optional element. Contain of elements which should be updated.

The EPP <contact:update> command should include at least one of element(s): <contact:add>, <contact:rem>, <contact:chg>

Request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp
    xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <update>
            <contact:update
                xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
                <contact:id>ID-123</contact:id>
                <contact:chg>
                    <contact:postalInfo type="int">
                        <contact:name>New name</contact:name>
                        <contact:org>New organization</contact:org>
                        <contact:addr>
                            <contact:street>New street</contact:street>
                            <contact:street></contact:street>
                            <contact:street></contact:street>
                            <contact:city>New city</contact:city>
                            <contact:sp></contact:sp>
                        </contact:addr>
                    </contact:postalInfo>
                    <contact:voice></contact:voice>
                    <contact:fax></contact:fax>
                    <contact:authInfo>
                        <contact:pw><![CDATA[AbC123456]]></contact:pw>
                    </contact:authInfo>
                </contact:chg>
            </contact:update>
        </update>
        <clTRID>53cfc1343ce8e</clTRID>
    </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>53cfc1343ce8e</clTRID>
      <svTRID>867ef3c4-2b0f-411c-ab03-150500153596</svTRID>
    </trID>
  </response>
</epp>

Delete Contact

The EPP <contact:delete> command is supposed to be used to delete Contact object. Only object sponsor/owner may delete it.

This command contain only one element:

  • <contac:id> – unique identifier for the contact. If value is empty – ST Registry will generate new ID.

If contact have a status “clientDeleteProhibited” or “serverDeleteProhibited” then <contact:delete> request will be rejected. Also, request will be rejected if contact is linked with another object in a Registry repository.

Request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp
    xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <delete>
            <contact:delete
                xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
                <contact:id>ID-123</contact:id>
            </contact:delete>
        </delete>
        <clTRID>53cfce7aab5fc</clTRID>
    </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>53cfce7aab5fc</clTRID>
      <svTRID>1ba9dda3-9778-4d8d-9441-50c0528c1fd0</svTRID>
    </trID>
  </response>
</epp>

Response codes

To simplify initial integration process, instead of general error messages, ST Registry provide different response messages for same response code depending from exception which generated corresponding response code. Below you can find list of all possible response codes and their messages for contact related operations.

Response codeMessage
1000Command completed successfully
2003Missing contact id
2003Missing contact:postalInfo:name
2003Missing contact:postalInfo
2004Abstract client and object identifier type minLength value=3, maxLength value=16
2005Invalid contact:postalInfo:name; Name value length must be grater than 5 and do not start with special chars like dot, hyphen and comma
2005Invalid contact:postalInfo:org; Organization value length must be grater than 2 and do not start with special chars like dot, hyphen and comma
2005Invalid contact:postalInfo:addr:street; Street value length must be grater than 2 and do not start with special chars like dot, hyphen and comma
2005Invalid contact:postalInfo:city; City value length must be grater than 1 and do not start with special chars like dot, hyphen and comma
2005Invalid contact:postalInfo:sp; Province value length must be grater than 1 and do not start with special chars like dot, hyphen and comma
2005Invalid contact:postalInfo:pc; Postal code value have invalid format
2005Invalid contact:postalInfo:cc; Country code should be according to ISO 3166
2005Phone format is +1.123456789 (+[country_code].[regional_code][phone_number])
2005Email validation failed
2203Operation not permitted; Contact object not in client repository
2302Contact ID already exists
2303contact:id does not exists
2305Object association prohibits operation