.UA ccTLD Domain Network Information Centre
Сервер призначений для тестування роботи EPP

DOMAIN:CREATE

Команда EPP <create> domain призначена для створення об'єкта Домен.

Команда містить наступні елементи:

  • <domain:name> - повністю визначене доменне ім'я.
  • <domain:period> - необов'язковий елемент, що визначає термін, на який реєструється домен (в роках). Якщо елемент не вказаний, реєстр встановлює термін, прийнятий як мінімальний для даного публічного домену.
  • <domain:ns> - необов'язковий елемент, що містить список серверів, на яких буде делегований домен. Сервери можуть бути вказані у вигляді посилань на вже створені об'єкти "Хост" (<domain:hostObj>) або у вигляді описів нових серверів (<domain:hostAttr>).
  • <domain:registrant> - обов'язковий елемент, що визначає реєстранта домену. Це має бути посилання на об'єкт Контакт, який уже існує (заздалегідь зареєстрований) в реєстрі.
  • <domain:contact> - один або декілька елементів, що вказують на адміністративні, технічні контакти домену. Це мають бути посилання на об'єкти Контакт, які вже існують (заздалегідь зареєстровані) в реєстрі.
  • <domain:authInfo> - authInfo (пароль до об'єкту). Значення ігнорується. При створенні домену пароль не встановлюється.

Для реєстрації домену з DS-записами використовується розширення secDNS.

Приклади

Приклади команди <create>

  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
      <create>
        <domain:create xmlns:domain="http://hostmaster.ua/epp/domain-1.1">
          <domain:name>example1.epp1.ua</domain:name>
          <domain:period unit="y">2</domain:period>
          <domain:ns>
            <domain:hostObj>ns1.domain.epp1.ua</domain:hostObj>
            <domain:hostObj>ns2.domain.epp1.ua</domain:hostObj>
          </domain:ns>
          <domain:registrant>ex123</domain:registrant>
          <domain:contact type="admin">ex11</domain:contact>
          <domain:contact type="tech">ex11</domain:contact>
        </domain:create>
      </create>
      <clTRID>USER-1276171392</clTRID>
    </command>
  </epp>

Для задання елементу <domain:ns> можна використовувати один із двох способів:

  • як посилання на вже існуючі в реєстрі об'єкти "Хост":
       <domain:ns>
          <domain:hostObj>ns1.example.epp1.ua</domain:hostObj>
          <domain:hostObj>ns2.example.epp1.ua</domain:hostObj>
       </domain:ns>
    
  • як опис для створення нових об'єктів "Хост". Цей спосіб використовується, як правило, при вказуванні серверів у самому реєстрованому домені (glue-серверів):
       <domain:ns>
         <domain:hostAttr>
           <domain:hostName>ns1.example1.epp1.ua</domain:hostName>
           <domain:hostAddr ip="v4">192.0.2.2</domain:hostAddr>
           <domain:hostAddr ip="v6">1080:0:0:0:8:800:200C:417A</domain:hostAddr>
         </domain:hostAttr>
         <domain:hostAttr>
           <domain:hostName>ns2.example.net</domain:hostName>
         </domain:hostAttr>
       </domain:ns>
    

Правила створення нових серверів у команді <create> domain підлягають загальним правилам створення об'єктів "Хост"

При прийомі команди <create> domain відбуваються наступні перевірки:

  • Доменне ім'я відповідає [RFC1034].
    Якщо ні - помилка 2005 "Parameter value syntax error"
  • Інформації про домен немає в Реєстрі.
    Якщо ні - помилка 2302 "Object exists"
  • Публічний домен, у якому реєструється новий домен, обслуговується Реєстром.
    Якщо ні - помилка 2307 "Unimplemented object service"
  • Реєстратор має право на реєстрацію в даному публічному домені.
    Якщо ні - помилка 2307 "Unimplemented object service"
  • Задано обов'язкове поле <domain:registrant>.
    Якщо ні - помилка 2001 "Command syntax error"
  • Ідентифікатори контактів, задані в полях <domain:registrant> та <domain:contact>, зареєстровані в Реєстрі.
    Якщо ні - помилка 2303 "Object not exists"
  • Загальна кількість контактів в домені не перевищує максимального (16).
    Якщо ні - помилка 2001 "Command syntax error"
  • Кількість контактів одного типу не перевищує максимального (8).
    Якщо ні - помилка 2001 "Command syntax error"
  • Ідентифікатори контактів одного типа не дублюються.
    Якщо ні - помилка 2005 "Parameter value syntax error"
  • Хости, задані в полях <domain:hostObj>, зареєстровані в Реєстрі.
    Якщо ні - помилка 2303 "Object not exists"
  • Хости, задані в полях <domain:hostAttr>, зареєстровані в Реєстрі.
    Якщо ні - реєструються в Реєстрі.
    Якщо операція не проходить успішно - помилка 2005 "Parameter value syntax error"
  • Хости, задані в полях <domain:hostObj> та <domain:hostAttr>, не дублюються.
    Якщо ні - помилка 2005 "Parameter value syntax error"
  • Загальна кількість хостів (nameservers) в домені не перевіщує максимального (13).
    Якщо ні - помилка 2001 "Command syntax error"
  • Термін реєстрації домену задано.
    Якщо немає - встановлюється мінімальний термін реєстрації для даного публічного домену
  • Заданий термін реєстрації домену не перевищує максимального.
    Якщо більше - помилка 2004 "Parameter value range error"
  • На балансі реєстратора досить коштів для здійснення операції.
    Якщо ні - помилка 2309 "Application rejected"
  • Заявка відповідає правилам публічного домену (якщо вони додатково встановлені).
    Якщо ні - помилка - 2309 "Application rejected"

top


Приклад відповіді сервера на команду <create>

Якщо команда <create> відпрацьована успішно, відповідь сервера містить елемент <resData> з піделементом <domain:creData>.

Елемент <domain:creData> містить піделементи:

  • <domain:name> - повністю визначене ім'я створеного доменного об'єкту.
  • <domain:crDate> - дата та час створення доменного об'єкту (локальне).
  • <domain:exDate> - дата та час закінчення реєстрації домену (локальне).
 <?xml version="1.0" encoding="UTF-8"?>
 <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   <response>
     <result code="1000">
       <msg lang="en">Command completed successfully</msg>
     </result>
     <resData>
      <domain:creData xmlns:domain="http://hostmaster.ua/epp/domain-1.1">
        <domain:name>example1.epp1.ua</domain:name>
        <domain:crDate>2010-06-10T15:03:12+03:00</domain:crDate>
        <domain:exDate>2012-06-10T15:03:12+03:00</domain:exDate>
      </domain:creData>
    </resData>
    <trID>
      <clTRID>USER-1276171392</clTRID>
      <svTRID>UA-20100610150312-508777-00002</svTRID>
    </trID>
   </response>
 </epp>

top


Приклад відповіді сервера з помилкою обробки команди

Приклад відповіді сервера на запит, в якому вказаний невідомий реєстру сервер <domain:hostObj>

<?xml version="1.0" encoding="UTF-8"?>   <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
     <response>
       <result code="2303">
         <msg lang="en">Object does not exist</msg>
         <extValue>
           <value><domain:hostObj 
             xmlns:domain="http://hostmaster.ua/epp/domain-1.1">
             ns2.example.epp1.ua</domain:hostObj>
           </value>
           <reason lang="en">incorrect element domain:hostObj</reason>
         </extValue>
       </result>
       <trID>
         <clTRID>USER-1276172390</clTRID>
         <svTRID>UA-20100610151950-773873-00002</svTRID>
       </trID>
     </response>
   </epp>

top


 Обробка заявки, що вимагає додаткової автономної перевірки (приватні домени UA другого рівня)

Для реєстрації приватного домену другого рівня необхідно вказати обов'язкове поле license, що містить номер свідоцтва на знак для товарів і послуг. Вказати його можна в додатковому розширенні до команди <create> із EPP Extension uaepp:

<uaepp:create
  xmlns:uaepp="http://hostmaster.ua/epp/uaepp-1.1">
  <uaepp:license>12345</uaepp:license>
</uaepp:create>

Приклад команди EPP <create> для приватного домену другого рівня:

  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
      <create>
        <domain:create xmlns:domain="http://hostmaster.ua/epp/domain-1.1">
          <domain:name>example1.ua</domain:name>
          <domain:period unit="y">2</domain:period>
          <domain:ns>
            <domain:hostObj>ns1.domain.ua</domain:hostObj>
            <domain:hostObj>ns2.domain.ua</domain:hostObj>
          </domain:ns>
          <domain:registrant>ex123</domain:registrant>
          <domain:contact type="admin">ex11</domain:contact>
          <domain:contact type="tech">ex11</domain:contact>
        </domain:create>
      </create>
      <extension>
        <uaepp:create
          xmlns:uaepp="http://hostmaster.ua/epp/uaepp-1.1">
          <uaepp:license>12345</uaepp:license>
        </uaepp:create>
      </extension>
      <clTRID>USER-1393686180</clTRID>
    </command>
  </epp>

При надходженні заявки, що вимагає додаткової автономної перевірки і підтвердження, клієнтові надсилається відповідь, що заявка прийнята і поставлена в чергу на обробку. Запит знаходиться на розгляді, після закінчення якого клієнт буде повідомлений з допомогою <poll> повідомлень і по email.
Код відповіді на запит: 1001

1001    "Command completed successfully; action pending"
        "Команду виконано успішно, дію відкладено"
        "Команда выполнена успешно, действие отложено"

top


 Приклад відповіді сервера на команду <create>, вимагаючої додаткової перевірки та підтвердження

Якщо команда <create> прийнята і поставлена в чергу, відповідь сервера містить елемені <resData> з піделементом <domain:creData>, так само, як і при обробці команди без відкладання.

Елемент <domain:creData> містить піделементи:

  • <domain:name> - повністю певне ім'я доменного об'єкту.
  • <domain:crDate> - дата та час створення тимчасового доменного об'єкту (локальне).
  • <domain:exDate> - передбачувана дата та час закінчення реєстрації домену (локальне).
 <?xml version="1.0" encoding="UTF-8"?>
 <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   <response>
     <result code="1001">
       <msg lang="en">Command completed successfully; action pending</msg>
     </result>
     <resData>
      <domain:creData xmlns:domain="http://hostmaster.ua/epp/domain-1.1">
        <domain:name>example1.ua</domain:name>
        <domain:crDate>2014-03-01T15:03:12+03:00</domain:crDate>
        <domain:exDate>2015-03-01T15:03:12+03:00</domain:exDate>
      </domain:creData>
    </resData>
    <trID>
      <clTRID>USER-1393686180</clTRID>
      <svTRID>UA-20140301150312-588777-00002</svTRID>
    </trID>
   </response>
 </epp>

Новий доменний об'єкт створюється в Реєстрі із статусом "pendingcreate". Оператор Реєстру перевірить заявку та після її підтвердження клієнтові будуть відправлені <poll> і email-повідомлення про результати обробки.

<poll>-повідомлення, сформовані як результат обробки відкладеної заявки <create>, в елементи <resData> містять наступні елементи:

  • <domain:name> - повністю певне ім'я доменного об'єкту. Елемент містить атрибут "paResult", який може мати значення:
    • "1" - заявка підтверджена і виконана
    • "0" - заявка відхилена
  • <domain:paTRID> - містить ідентифікатори транзакцій клієнта (clTRID) і відповіді сервера (svTRID) по відкладеній заявці.
  • <domain:paDate> - дата та час обробки заявки (локальні).

top


 Пример <poll> повідомлення з інформацією про успішне завершення обробки заявки <create> domain

  <?xml version="1.0" encoding="UTF-8"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <response>
      <result code="1301">
        <msg lang="en">Command completed successfully; ack to dequeue</msg>
      </result>
      <msgQ count="5" id="12345">
        <qDate>2014-03-01T16:37:35+03:00</qDate>
        <msg>Pending action completed successfully</msg>
      </msgQ>
      <resData>
        <domain:panData 
          xmlns:domain="http://hostmaster.ua/epp/domain-1.1">
          <domain:name paResult="1">example1.ua</domain:name>
             <domain:paTRID>
               <clTRID>USER-1393686180</clTRID>
               <svTRID>UA-20140301150312-588777-00002</svTRID>
             </domain:paTRID>
          <domain:paDate>2014-03-01T16:00:00.0Z</domain:paDate>
        </domain:panData>
      </resData>
      <trID>
        <clTRID>USER2-1393688234</clTRID>
        <svTRID>UA-20140301163736-665862-00002</svTRID>
      </trID>
    </response>
  </epp>

Елемент <msg> містить повідомлення про успішне завершення операції:

Pending action completed successfully
Відкладену операцію завершено
Отложенная операция завершена

Атрибут paResult елементу domain:name має значення "1"

top


 Приклад <poll> повідомлення з інформацією про відмову в обробці заявки <create> domain

  <?xml version="1.0" encoding="UTF-8"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <response>
      <result code="1301">
        <msg lang="en">Command completed successfully; ack to dequeue</msg>
      </result>
      <msgQ count="5" id="12345">
        <qDate>2014-03-01T16:37:35+03:00</qDate>
        <msg>Pending action rejected. Information about TM is absent</msg>
      </msgQ>
      <resData>
        <domain:panData 
          xmlns:domain="http://hostmaster.ua/epp/domain-1.1">
          <domain:name paResult="0">example1.ua</domain:name>
             <domain:paTRID>
               <clTRID>USER-1393686180</clTRID>
               <svTRID>UA-20140301150312-588777-00002</svTRID>
             </domain:paTRID>
          <domain:paDate>2014-03-01T16:00:00.0Z</domain:paDate>
        </domain:panData>
      </resData>
      <trID>
        <clTRID>USER2-1393688234</clTRID>
        <svTRID>UA-20140301163736-665862-00002</svTRID>
      </trID>
    </response>
  </epp>

Атрибут paResult елементу domain:name має значення "0"

Елемент <msg> містить повідомлення про відмову в обробці операції:

Pending action rejected
Відкладена операція відхилена
Отложенная операция отклонена

Додатково надається причина відмови:

1. Відсутні відомості про ТМ
   Отсутствуют сведения о ТМ
   Information about TM is absent

2. Домен не відповідає ТМ
   Домен не соответствует ТМ
   Domain does not match TM

3. Регістрант не відповідає власнику ТМ
   Регистрант не соответствует собственнику ТМ
   Registrant does not math TM owner

4. Закінчився термін дії ТМ
   Закончился срок действия ТМ
   The TM is expired

Після підтвердження заявки <create> з домену знімається статус "pendingCreate".

В разі відхилення заявки <create> доменний об'єкт видаляється з Реєстру.

top


 Обробка дзеркальних доменів

При отриманні запиту на реєстрацію нового доменного імені в одному з дзеркальних доменів

kiev.ua/kyiv.ua
chernovtsy.ua/chernivtsi.ua
rovno.ua/rivne.ua
реєстраційна сістема перевіряє наявність відповідного дзеркального доменного імені. Якщо дзеркальне ім'я існує, то система перевіряє, чи збігаються дані про Реєстратора, а також основні дані в контакті Реєстранта (name, organization, email) в існуючому дзеркальному доменному імені та в доменному імені, на реєстрацію якого надійшла заявка. Якщо дані збігаються, то доменне ім'я реєструється.

Якщо дані про Реєстратора чи Реєстранта НЕ збігаються, заявка відхиляється з повідомденням:

  2309 Заявка відхилена
       Не збігаються дані про реєстратора в дзеркальному домені
або
  2309 Заявка відхилена
       Не збігаються дані про реєстранта дзеркального домену

top


 Створення домену з DS-записами (розширення secDNS)

Для створення домену з DS-записами використовується команда EPP <create> domain із розширенням secDNS.

Запит команди <create> domain, крім обов’язкових даних, що описані в документації щодо команди, повинен містити розширення secDNS з блоками даних dsData для кожного нового DS-запису.

Відповідь сервера на команду не змінюється.

При прийомі команди <create> domain з DS-записами проводяться наступні додаткові перевірки:

  • Публічний домен, в якому реєструється новий домен, підтримує протокол DNSSEC.
    Якщо ні - помилка 2309 "Application rejected"
  • Реєстратор має право на роботу з протоколом DNSSEC.
    Якщо ні - помилка 2309 "Application rejected"
  • У заявці зазначений хоча б один NS.
    Якщо ні - помилка 2003 "Required parameter missing"
  • У полі <secDNS:alg> зазначений номер алгоритму, дозволений Регламентом.
    Якщо ні - помилка 2004 "Parameter value range error"
  • У полі <secDNS:digestType> зазначений тип дайджесту, дозволений Регламентом.
    Якщо ні - помилка 2004 "Parameter value range error"
  • У полі <secDNS:digest> зазначений дайджест, що містить шістнадцятковий рядок довжиною, відповідною типу дайджеста.
    Якщо ні - помилка 2005 "Parameter value syntax error"
  • Якщо додатково передається публічний KSK-ключ, то перевіряються дані в блоці <secDNS:keyData>. <secDNS:flags> повинен дорівнювати 257
    Якщо ні - помилка 2306 "Parameter value policy error"
  • У блоці <secDNS:keyData> елемент <secDNS:protocol> повинен дорівнювати 3
    Якщо ні - помилка 2306 "Parameter value policy error"
  • KSK-ключ, зазначений у блоці <secDNS:keyData>, відповідає DS-запису
    Якщо ні - помилка 2306 "Parameter value policy error"
  • Загальна кількість DS-записів для домену не перевищує максимальної (6).
    Якщо ні - помилка 2001 "Command syntax error"

Приклад запиту <create> domain з розширенням secDNS для створення домену з одним DS-записом


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
      <create>
        <domain:create xmlns:domain="http://hostmaster.ua/epp/domain-1.1">
          <domain:name>example1.epp1.ua</domain:name>
          <domain:period unit="y">2</domain:period>
          <domain:ns>
            <domain:hostObj>ns1.domain.epp1.ua</domain:hostObj>
            <domain:hostObj>ns2.domain.epp1.ua</domain:hostObj>
          </domain:ns>
          <domain:registrant>ex123</domain:registrant>
          <domain:contact type="admin">ex11</domain:contact>
          <domain:contact type="tech">ex11</domain:contact>
        </domain:create>
      </create>
      <extension>
        <secDNS:create xmlns:secDNS="http://hostmaster.ua/epp/secDNS-1.1">
          <secDNS:dsData>
            <secDNS:keyTag>29040</secDNS:keyTag>
            <secDNS:alg>13</secDNS:alg>
            <secDNS:digestType>2</secDNS:digestType>
            <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest>
          </secDNS:dsData>
        </secDNS:create>
      </extension>
      <clTRID>USER-1276171392</clTRID>
    </command>
  </epp>

Приклад запиту <create> domain з розширенням secDNS для створення домену з одним DS-записом та публічним ключем

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
      <create>
        <domain:create xmlns:domain="http://hostmaster.ua/epp/domain-1.1">
          <domain:name>example1.epp1.ua</domain:name>
          <domain:period unit="y">2</domain:period>
          <domain:ns>
            <domain:hostObj>ns1.domain.epp1.ua</domain:hostObj>
            <domain:hostObj>ns2.domain.epp1.ua</domain:hostObj>
          </domain:ns>
          <domain:registrant>ex123</domain:registrant>
          <domain:contact type="admin">ex11</domain:contact>
          <domain:contact type="tech">ex11</domain:contact>
        </domain:create>
      </create>
      <extension>
        <secDNS:create xmlns:secDNS="http://hostmaster.ua/epp/secDNS-1.1">
          <secDNS:dsData>
            <secDNS:keyTag>29040</secDNS:keyTag>
            <secDNS:alg>13</secDNS:alg>
            <secDNS:digestType>2</secDNS:digestType>
            <secDNS:digest>D8E3E5405994F68CADF5FB983A7E2B9B4FE7F5EBFEAE86BA626CACFA4B84EAAC</secDNS:digest>
            <secDNS:keyData>
              <secDNS:flags>257</secDNS:flags>
              <secDNS:protocol>3</secDNS:protocol>
              <secDNS:alg>13</secDNS:alg>
              <secDNS:pubKey>x0I6K8UuEs9nIG1/tbn64zS6LmjQ+Kzq+5ajegu6QkH8JRSLMvb04A==</secDNS:pubKey>
            </secDNS:keyData>
          </secDNS:dsData>
        </secDNS:create>
      </extension>
      <clTRID>USER-1276171392</clTRID>
    </command>
  </epp>

top


Коди відповідей сервера на команду <create>

1000    "Command completed successfully"
        "Команду виконано успішно"

1001    "Command completed successfully; action pending"
        "Команду виконано успішно, дію відкладено"

2001    "Command syntax error"
        "Синтаксична помилка команди"

2003    "Required parameter missing"
        "Відсутній обов'язковий параметр"
         Помилка видається, якщо не заданий обов'язковий параметр.

2004    "Parameter value range error"
        "Помилка в значенні параметра"
         Помилка видається у випадку, якщо вказаний у заявці
         період реєстрації перевищує максимальний для даного
         публічного домену

2005    "Parameter value syntax error"
        "Синтаксична помилка параметра"

2201    "Authorization error"
        "Помилка авторизації"
         Помилка видається у разі, коли клієнт не є
         реєстратором в даному публічному домені.

2302    "Object exists"
        "Об'єкт вже існує"
         Помилка видається при спробі створити вже існуючий
         об'єкт - домен або хост.

2303    "Object does not exist"
        "Об'єкт не існує"
        Помилка видається при спробі використовувати неіснуючий 
        об'єкт у якості реєстранта, контакта або хоста.

2306    "Parameter value policy error"
        "Значення параметра не відповідає правилам"
        Помилка видається, коли KSK-ключ, зазначений у блоці 
        <secDNS:keyData>, не відповідає DS-запису

2307    "Unimplemented object service"
        "Даний об'єкт не обслуговується"
        Помилка видається при спробі зареєструвати домен в 
        публічному домені, який не обслуговується реєстром

2309    "Application rejected"
        "Заявка відхилена"
        Помилка видається у випадку, якщо заявка не відповідає 
        правилам публічного домену 
        або при нестачі коштів для платної операції