Skip to content

Create

Purpose

Create a new Domain Name Record.

Authority

Any AR can submit a Create Domain Request.

Result

After passing registry validation, new request is created. AR receive Pending response. Request will wait in queue for processing.

When processing is completed, a new Domain Name Record is created for an initial one Registration Period, with the submitting AR as the Managing Registrar.

Response can be requested by <poll> request

Attributes and Objects in a Domain Name Record

As outlined in the schematic view of Domain Name Record and Objects a Domain Name Record contains 3 Attributes, and 3 referrals to Contact Objects.

The Attributes of a Domain Name Record are:

  1. Registrant.
  2. Managing AR.
  3. DNS Information.
  4. DNSSEC Information.

The referrals to Contact Objects in a Domain Name Record are:

  1. Administrative Contact
  2. Technical Contact
  3. Zone Contact

Relating to an existing Object in a Create Domain Request

Relating to existing Objects is done by including the Object's Handle, between the appropriate tags.

For example:

(...)
    <domain:contact type="admin">AB-BL1234-IL</domain:contact>
(...)

The above example will cause the Contact Object AB-BL1234-IL to be the Administrative Contact of the Domain Name Record created.

Creation of new Contact Objects in a Create Domain Request

The Create Domain command allows for the creation of new Contact Objects within the Request.

This is done by writing a reference label ("Reference Label") between the <domain:contact> tags in the Standard EPP Block, and including the details referring to that label in the Extensions Block, between the tags <isocil:contact>.

Example: Creating a new Contact Object within a Create Domain Request

(...Standard EPP Block...)

<domain:contact type="admin">NEW3</domain:contact>
<domain:contact type="tech">NEW3</domain:contact>

(...Extensions Block ...)

<isocil:contact>
  <contact:id>NEW3</contact:id>
  <contact:type>domain</contact:type>
  <contact:postalInfo type="int">
    <contact:name>Israel Israeli</contact:name>
    <contact:org>Some Company Ltd.</contact:org>
    <contact:addr>
      <contact:street>7 Herzl St.</contact:street>
      <contact:city>Haifa</contact:city>
      <contact:sp></contact:sp>
      <contact:pc>12345</contact:pc>
      <contact:cc>IL</contact:cc>
    </contact:addr>
  </contact:postalInfo>
  <contact:voice>+972 4 8095001</contact:voice>
  <contact:fax>+972 8 8870432</contact:fax>
  <contact:email>israel@example.co.il</contact:email>
</isocil:contact>

In the above example – "NEW3" is the Reference Label of the new Contact Object to be created. The details of the Contact are those between the tags <isocil:contact>, identified by including the label "NEW3" between the tags <contact:id>.

The Reference Label MUST be of the following format: the string "NEW[digit]".

Any mismatch between Reference Labels included in the Standard EPP Block and the Extension Block will result in an error. An appropriate error message will be sent by the EPP Server, and the Request will not be processed.

As explained in API Basics above, a Contact Object can be listed under different Roles. The result of the above example is the creation of one new Object. This Object will be listed as the Administrative and Technical Contact for the Domain Name Record created. This Object will have its unique Handle, for future reference.

The API Server does not check whether an existing Object in the Registry has identical details. A new Handle will be created every time this option is used.

Defining a Registrant Attribute

Defining the Domain Name Registrant is done using the labeling method explained in the previous section, except < contact:org >< /contact:org >.

The <contact type> tag is "Registrant".

The Registrant Attribute is mandatory.

(...Standard EPP Block...)

<domain:contact type="registrant">NEW1</domain:contact>

(...Extensions Block ...)

<isocil:contact>
<contact:id>NEW1</contact:id>
<contact:type>registrant</contact:type>
<contact:postalInfo type="int">
  <contact:name>Israel Israeli</contact:name>
  <contact:addr>
    <contact:street>7 Herzl St.</contact:street>
    <contact:city>Haifa</contact:city>
    <contact:sp></contact:sp>
    <contact:pc>12345</contact:pc>
    <contact:cc>IL</contact:cc>
  </contact:addr>
</contact:postalInfo>
<contact:voice>+972 4 8095001</contact:voice>
<contact:fax>+972 8 8870432</contact:fax>
<contact:email>israel@example.co.il</contact:email>
</isocil:contact>

Lock Transfer Option

The Lock Transfer option, when turned on, will cause the immediate rejection of any Transfer requests (see Domain Transfer Prerequisite Conditions) submitted to the Domain Name Record. This option can be turned off exclusively by the Managing AR, by submitting an Update Domain Request.

The circumstances under which the Lock Transfer should be used are outside the scope of this document. To turn the Lock Transfer on the string "true" should be typed between the tags <domain:locktransfer> and </domain:locktransfer>.

The default value assumed by the API Server is false.

The Lock Transfer tags are not mandatory, and should be used in a Create Domain Request only if changing the default value is needed.

Creation of new DNSSEC Object in a Create Domain Request

The Domain Name System Security Extensions (DNSSEC) is a suite of specifications for securing information provided by the Domain Name System (DNS).

Delegation Signer (DS) record refers to a DNSKEY record published in the child domain. A DS refers to a DNSKEY by storing the key tag, algorithm number, digest type and a digest of the DNSKEY.

A domain owner interested in using DNSSEC should publish signed zonedata (sign his/her domain) and provide information about DS record(s) in the EPP request. See RFC59101

Example: Creation of new DNSSEC Object in a Create Domain Request

(...Extensions Block ...)

<secDNS:create xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
  <secDNS:dsData>
    <secDNS:keyTag>25845</secDNS:keyTag>
    <secDNS:alg>8</secDNS:alg>
    <secDNS:digestType>2</secDNS:digestType>
    <secDNS:digest>1D368C0FDFBC6F1E28...A75C110F84C3</secDNS:digest>
    <secDNS:keyData>
      <secDNS:flags>257</secDNS:flags>
      <secDNS:protocol>3</secDNS:protocol>
      <secDNS:alg>8</secDNS:alg>
      <secDNS:pubKey>AwEAAb0zrO9XnrlgoN0RYKkDPAfV0RIZsKtXl2Y3 qvz5ERjCsYkXVnX bRiTNarV4DtBOWHGKTr0q8zS7ZVsA5FyKwMmrQlvYyzzCS1 1dpDxhLnqr hc4ACDYoA6H01FM+PNOXqDsdrkYet0jU6U8yDh1FZZzPJV9uP5RqBcuR</secDNS:pubKey>
    </secDNS:keyData>
  </secDNS:dsData>
</secDNS:create>

Create Domain Request Example

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
xmlns:isocil="http://www.isoc.org.il/xml/epp/isocil-1.0"
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
xmlns:domainrequest="http://www.isoc.org.il/xml/epp/isocil-domainrequest-1.0"
xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd
http://www.isoc.org.il/xml/epp/isocil-1.0 isocil-1.0.xsd
urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd
http://www.isoc.org.il/xml/epp/isocil-domainrequest-1.0 isocil-domainrequest-1.0.xsd
urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
  <command>
    <create>
      <domain:create>
        <domain:name>example.co.il</domain:name>
        <domain:ns>
          <domain:hostAttr>
            <domain:hostName>ns.hostingcompany.co.il</domain:hostName>
          </domain:hostAttr>
          <domain:hostAttr>
            <domain:hostName>ns.example.co.il</domain:hostName>
            <domain:hostAddr ip="v4">193.168.0.1</domain:hostAddr>
            <domain:hostAddr ip="v6">::b:0:1</domain:hostAddr>
          </domain:hostAttr>
        </domain:ns>
        <domain:registrant>NEW1</domain:registrant>
        <domain:contact type="admin">AB-SS15170-IL</domain:contact>
        <domain:contact type="tech">NEW2</domain:contact>
        <domain:contact type="zone">AB-SS15170-IL</domain:contact>
        <domain:locktransfer>true</domain:locktransfer>
        <domain:period unit="y">2</domain:period>
      </domain:create>
    </create>
    <extension>
      <isocil:ext>
        <isocil:create>
          <isocil:contact>
            <contact:id>NEW1</contact:id>
            <contact:type>registrant</contact:type>
            <contact:postalInfo type="int">
              <contact:name>Israel Israeli</contact:name>
              <contact:addr>
                <contact:street>7 Herzl</contact:street>
                <contact:city>Tel Aviv</contact:city>
                <contact:sp></contact:sp>
                <contact:pc>33233</contact:pc>
                <contact:cc>IL</contact:cc>
              </contact:addr>
            </contact:postalInfo>
            <contact:voice>+972 3 9883301</contact:voice>
            <contact:fax>+972 8 9770002</contact:fax>
            <contact:email>registrant@example.co.il</contact:email>
          </isocil:contact>
          <isocil:contact>
            <contact:id>NEW2</contact:id>
            <contact:type>domain</contact:type>
            <contact:postalInfo type="int">
              <contact:name>Israel Israeli</contact:name>
              <contact:org>Some Company Ltd.</contact:org>
              <contact:addr>
                <contact:street>100 Herzl Avenue</contact:street>
                <contact:city>Jerusalem</contact:city>
                <contact:sp></contact:sp>
                <contact:pc>12345</contact:pc>
                <contact:cc>IL</contact:cc>
              </contact:addr>
            </contact:postalInfo>
            <contact:voice>+972 4 8095001</contact:voice>
            <contact:fax>+972 8 8870432</contact:fax>
            <contact:email>admin@example.co.il</contact:email>
          </isocil:contact>
        </isocil:create>
      </isocil:ext>
      <secDNS:create xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
        <secDNS:dsData>
          <secDNS:keyTag>25845</secDNS:keyTag>
          <secDNS:alg>8</secDNS:alg>
          <secDNS:digestType>2</secDNS:digestType>
          <secDNS:digest>1D368C0FDFBC6F1E28...A75C110F84C3</secDNS:digest>
        </secDNS:dsData>
      </secDNS:create>
    </extension>
    <clTRID>AB-1971</clTRID>
  </command>
</epp>

Create Domain Request Tags Legend

  • <domain:create>: Defines that the desired Registration Action is Create Domain, where:

    • <domain:name>: Defines the Domain Name to be created.
    • <domain:ns>: Defines a DNS Information block, where <domain:hostAttr> defines the details of one DNS server:
      • <domain:hostName> - contains the DNS server's host name.
      • <domain:hostAddr> - contains the DNS server's IP address. The <domain: hostAddr> tag attribute ip – defines the IP version, which is one of the following:
        • "v4" – for IPV4 address
        • "v6" – for IPV6 address. More information can be found at RFC5732.
    • <domain:registrant>: Contains the Reference Label to the Extension Block, where the Regsitrant's details are listed.
    • <domain:contact>: Contains either an already existing Contact Object Handle (managed by the submitting AR), or a Reference Label to the Extension Block where a new contact's details are listed.

      The <domain:contact> tag attribute "type" – defines the Contact's Role, which is one of the following:

      • "admin" – Administrative Contact.
      • "tech" – Technical Contact.
      • "zone" – Zone Contact.
    • <domain:locktransfer>: Controlling the Lock Transfer option. (see sub-sec. Lock Transfer Option above).

    • <domain:period ...>: The registration period requested, up to and including the Maximal Registration Period, expressed in Registration Units.
  • <isocil:ext>: Defines the IL Extension Block.

  • <isocil:contact>: A Contact Object creation block.

    • <contact:id>: Contains a Reference Label declared in the Standard EPP Block.
    • <contact:type>: Contains one of the following:

      • "registrant" – to indicate that the details are of the Registrant (a Domain Name Record Attribute). This one is mandatory.
      • "domain" – to indicate that the details are of a Contact Object.
  • <contact:postalInfo>: Contains a block defining the Contact's details. The Tag attribute type="int" should be included as specified in the example.

    • <contact:name>: Contains the Contact's full name. In case of a person, name and surname separated by a space. In case of a legal-entity, e.g, a company, the company's full name, including appropriate suffix, e.g., "Ltd." – separated by spaces.
    • <contact:org>: Contains the Contact's organization. Only(!) for domain contact type
    • <contact:addr>: A block containing the postal information associated with the Contact:

      • <contact:street>...<contact:street> - Contains the street and number of the Contact's address.
      • <contact:city> - Contact's city.
      • <contact:sp> - Contact's State/Province.
      • <contact:pc> - Contact's postal code.
      • <contact:cc> - Contact's two-letter country code, according to ISO-3166.
    • <contact:voice>: Contact's telephone number, in the following format: +[country code] [area code] [phone number].

    • <contact:fax>: Contact's facsimile number, in +[country code] [area code] [phone number].
    • <contact:email>: Contact's direct mail address.
  • <secDNS:create>: A DNSSEC object creation block.

    • <secDNS:dsData>: Contains all Delegation Signer (DS) record elements of the domain. DNS name must be defined. Information about the DS resource record can be found at RFC4034 section 5.1. For detailed requirements please check Appendix D
      • <secDNS:keyTag> - The key tag of the DNSKEY RR referred to by the DS record.
      • <secDNS:alg> - The algorithm number of the DNSKEY RR referred to by the DS record.
      • <secDNS:digestType> - The Digest Type field identifies the algorithm used to construct the digest.
      • <secDNS:digest> - The DS record refers to a DNSKEY RR by including a digest of that DNSKEY RR.
      • <secDNS:keyData> - OPTIONAL. DNSKEY info. Information about the DNSKEY resource record can be found at RFC4034 section 2.1.
        • <secDNS:flags> - Zone Key flag.
        • <secDNS:protocol> - Protocol field. MUST be 3.
        • <secDNS:alg> - Algorithm use to determine the format of the Public Key field.
        • <secDNS:pubKey> - The Public Key Field holds the public key material.

Tags occurrence table

Tag Occurrences
(MIN-MAX)
Size + Remarks
<epp> 1
<command> 1
<create> 1
<domain:create> 1
<domain:name> 1 Token: 9-73.
<domain:ns> 1 Token.
<domain:hostAttr> 0-13
<domain:hostname> Token: 1-100.
<domain:hostAddr> Obligatory when Glue record needed.
<domain:contact type="admin"> 1
<domain:contact type="tech"> 1
<domain:contact type="zone"> 1
<domain:locktransfer> 0-1
<domain:period> 1 1-5 years
<extension> 1
<isocil:ext> 1
<isocil:create> 1
<isocil:contact> 1-4 All subtags but: <contact:org> <contact:sp> <contact:pc> <contact:voice> <contact:fax> are mandatory.
<secDNS:create> 1
<secDNS:dsData> 1-6 All subtags but: <secDNS:keyData> are mandatory
<secDNS:keyData> 1 All subtags are mandatory.
<clTRID> 1 token: 4-64

Additional Response Data (<resData> block) – in a SUCCESS message

The API Server's response upon the successful completion of a Create Domain Request:

<?xml version="1.0" encoding="UTF-8" ?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:isocil="http://www.isoc.org.il/xml/epp/isocil-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
epp-1.0.xsdurn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsdurn:ietf:params:xml:ns:domain-1.0 domain-
1.0.xsdhttp://www.isoc.org.il/xml/epp/isocil-1.0">
  <response>
    <result>
      <code>1000</code>
      <msg>Command completed successfully (domain requestid=D323957)</msg>
    </result>
    <resData>
      <domain:creData>
        <domain:name>example222.co.il</domain:name>
        <domain:crDate>2006-07-12T11:31:03.000Z</domain:crDate>
        <domain:expDate>2007-07-12T23:59:59.000Z</domain:expDate>
        <domain:contact type="admin">BL-II13-IL</domain:contact>
        <domain:contact type="tech">BL-BS11-IL</domain:contact>
        <domain:contact type="zone">BL-BS11-IL</domain:contact>
        <domain:transferlocked>true</domain:transferlocked>
        <domain:ns>
          <domain:hostAttr>
            <domain:hostName>ns.hostingcompany.co.il</domain:hostName>
            <domain:hostAddr />
          </domain:hostAttr>
          <domain:hostAttr>
            <domain:hostName>ns.example.co.il</domain:hostName>
            <domain:hostAddr />
          </domain:hostAttr>
        </domain:ns>
      </domain:creData>
    </resData>
    <extension>
      <secDNS:infData xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
        <secDNS:dsData>
          <secDNS:keyTag>25845</secDNS:keyTag>
          <secDNS:alg>8</secDNS:alg>
          <secDNS:digestType>2</secDNS:digestType>
          <secDNS:digest>1D368C0FDFBC6F1E28...A75C110F84C3</secDNS:digest>
        </secDNS:dsData>
      </secDNS:infData>
    </extension>
    <trID>
      <clTRID>BL-1111</clTRID>
      <svTRID>ISOCIL-BL146 20060712113302</svTRID>
    </trID>
  </response>
</epp>

Legend for response to Create Domain Request

  • <domain:creData>: Information on the creation of the Domain Name Record, where:
    • <domain:name>: Specifies the Domain Name Record created
    • <domain:crDate>: Specifies the creation time of the Domain Name, in XML dateTime format.
    • <domain:expDate>: Specifies current expiry date of the Domain Name, in XML dateTime format.
    • <domain:contact>: Specifies the Handles of the different contacts registered for the Domain Name.
    • <extension>: Specifies the defined DS RR data under <secDNS:infData>.
    • <domain:transferlocked> true – indicates that the locktransfer option for the Domain Name is turned on. false – turned off.
    • <domain:ns>: Indicates the DNS servers registered for the Domain Name.
    • <trID> Indicates transaction ID. Comprised of the client trID and the server trID.