EPP Index

From Openprovider API documentation

(Difference between revisions)
Jump to: navigation, search
 
(18 intermediate revisions not shown)
Line 2: Line 2:
==Introduction==
==Introduction==
-
*The EPP interface is built for domains only. For all other products, the general Openprovider API should be used. Also note that the EPP interface of Openprovider uses the general Openprovider API for processing the commands. As a result, the EPP interface will be slower than the API interface. If you have no specific reason for using the EPP interface, we advise using the API interface instead.
+
EPP (Extensible Provisioning Protocol) is the communication standard for most registries. The EPP interface of Openprovider thus provides an interface that follows a standard, simplifying integration for any company that already implemented an EPP interface to another registry in the past.
 +
 
 +
The EPP interface is a layer on top of the [[Main Page|general Openprovider API]]. This increases maintainability and stability, but might drop speed a little because of the translation from EPP to API format.
 +
 
 +
* '''Who should use the EPP interface?'''
 +
** Customers already having an EPP implementation to another domain provider. Connecting to the EPP interface of Openprovider is the easiest way for a quick start.
 +
 
 +
* '''Who should use the [[Main Page|general Openprovider API]]?'''
 +
** Customers that do not have implemented EPP yet: the Openprovider API is easier to implement and use
 +
** Customers that want to sell not only domains: the EPP interface only supports domain and contact management, no support for SSL, licenses and other products
 +
 
 +
In general: if you have no specific reason to use EPP, we recommend the Openprovider API.
 +
 
 +
===Scope===
 +
The EPP interface is built for domains and contacts only. For all other products, the [[Main Page|general Openprovider API]] should be used.
===Reference to RFCs===
===Reference to RFCs===
-
To do
+
* [http://www.rfc-editor.org/rfc/rfc5730.txt RFC 5730 Extensible Provisioning Protocol (EPP)]
 +
* [http://www.rfc-editor.org/rfc/rfc5731.txt RFC 5731 Extensible Provisioning Protocol (EPP) Domain Name Mapping]
 +
* [http://www.rfc-editor.org/rfc/rfc5733.txt RFC 5733 Extensible Provisioning Protocol (EPP) Contact Mapping]
===Differences===
===Differences===
-
To do: differences between RFCs and Openprovider implementation
+
* Cookies are used to keep a session alive. After the ''login'' command, the server returns a cookie ''session_id'' which must be used in all following requests to the server until closing the session.
-
* Cookies are used to keep a session alive. After the ''login'' command, the server returns a cookie ''session_id'' which must be used in all following requests to the server until closing the session
+
* DNSSEC is not yet supported.
 +
* Although not against the RFCs, please note that Openprovider uses a lot of extensions to be able to cover all TLD-specific requirements. The extensions are defined in the [[EPP XSD extensions opprov|opprov-1.0.xsd]] file
===Example===
===Example===
-
To do: link to a PHP example script
+
* A basic PHP-example: [[Example Script EPP PHP|example-epp.php]]
 +
 
 +
===EPP server===
 +
* hostname: https://epp.openprovider.eu
 +
* port: 443
 +
* username: similar to RCP username
 +
** ''Note: EPP defines a maximum length of 16 characters for the username. If your RCP username is longer, please contact our support team to change it to a shorter one.''
 +
* password: similar to RCP password
==Session==
==Session==
Line 66: Line 90:
   <command>
   <command>
     <login>
     <login>
-
       <clID>opdrs4</clID>
+
       <clID>username</clID>
-
       <pw>opdrs4</pw>
+
       <pw>password</pw>
       <options>
       <options>
         <version>1.0</version>
         <version>1.0</version>
Line 99: Line 123:
  </epp>
  </epp>
-
Together with the response, the server returns a cookie ''session_id'' which must be used in all following requests to the server until closing the session
+
* '''Important:''' together with the response, the server returns a cookie ''session_id'' which must be used in all following requests to the server until closing the session.
 +
* Password reset via the EPP ''login'' command is not possible
===Logout===
===Logout===
Line 172: Line 197:
     <create>
     <create>
       <domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
       <domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
-
         <domain:name>qwerqwer-50055d5e2870d.nl</domain:name>
+
         <domain:name>example.com</domain:name>
         <domain:period unit="y">1</domain:period>
         <domain:period unit="y">1</domain:period>
         <domain:ns>
         <domain:ns>
           <domain:hostAttr>
           <domain:hostAttr>
-
             <domain:hostName>asdfasdfasdf1.df</domain:hostName>
+
             <domain:hostName>ns1.example.com</domain:hostName>
             <domain:hostAddr ip="v6">2607:f0d0:1002:51::4</domain:hostAddr>
             <domain:hostAddr ip="v6">2607:f0d0:1002:51::4</domain:hostAddr>
           </domain:hostAttr>
           </domain:hostAttr>
           <domain:hostAttr>
           <domain:hostAttr>
-
             <domain:hostName>asdfasdfasdf2.df</domain:hostName>
+
             <domain:hostName>ns2.example.com</domain:hostName>
             <domain:hostAddr ip="v4">123.123.123.123</domain:hostAddr>
             <domain:hostAddr ip="v4">123.123.123.123</domain:hostAddr>
 +
          </domain:hostAttr>
 +
          <domain:hostAttr>
 +
            <domain:hostName>ns3.example.com</domain:hostName>
 +
            <domain:hostAddr ip="v4">123.123.123.125</domain:hostAddr>
 +
            <domain:hostAddr ip="v6">2607:f0d0:1002:51::5</domain:hostAddr>
 +
          </domain:hostAttr>
 +
          <domain:hostAttr>
 +
            <domain:hostName>ns3.company.net</domain:hostName>
           </domain:hostAttr>
           </domain:hostAttr>
         </domain:ns>
         </domain:ns>
-
         <domain:registrant>FL902041-RU</domain:registrant>
+
         <domain:registrant>FL902041-US</domain:registrant>
-
         <domain:contact type="admin">FL902041-RU</domain:contact>
+
         <domain:contact type="admin">FL902041-US</domain:contact>
-
         <domain:contact type="tech">FL902041-RU</domain:contact>
+
         <domain:contact type="tech">FL902041-US</domain:contact>
         <domain:authInfo>
         <domain:authInfo>
           <domain:pw/>
           <domain:pw/>
Line 198: Line 231:
             <op:promoCode>PROMO2</op:promoCode>
             <op:promoCode>PROMO2</op:promoCode>
             <op:useDomicile>false</op:useDomicile>
             <op:useDomicile>false</op:useDomicile>
-
             <op:nsGroup>dns-openprovider</op:nsGroup>
+
             <op:nsGroup></op:nsGroup>
             <op:comments>any comment here</op:comments>
             <op:comments>any comment here</op:comments>
             <op:autorenew>default</op:autorenew>
             <op:autorenew>default</op:autorenew>
-
            <op:nsTemplateId>123</op:nsTemplateId>
+
             <op:nsTemplateName></op:nsTemplateName>
-
             <op:nsTemplateName>TemplateForReseller165264</op:nsTemplateName>
+
           </op:domain>
           </op:domain>
         </op:create>
         </op:create>
Line 211: Line 243:
  </epp>
  </epp>
-
* ''<domain:pw>'' parameter is required by the EPP protocol, but is ignored by Openprovider
+
* ''<domain:pw>'' parameter is required by the EPP protocol, but is ignored by Openprovider; please leave it blank
-
* ''<domain:contact type="billing"/>'' is not supported  
+
* ''<domain:contact>'': the only supported contact types are ''admin'' and ''tech''
 +
* ''<op:autorenew>'': accepted values: ''on'', ''off'', ''default''
 +
* ''<op:nsTemplateName>'': can be used if <op:nsGroup> is ''dns-openprovider''
 +
 
;Response:
;Response:
Line 223: Line 258:
     <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
     <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
       <domain:creData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
       <domain:creData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
-
         <domain:name>qwerqwer-50055d5e2870d.nl</domain:name>
+
         <domain:name>example.com</domain:name>
         <domain:crDate>2012-07-17T14:41:03.0Z</domain:crDate>
         <domain:crDate>2012-07-17T14:41:03.0Z</domain:crDate>
         <domain:exDate>2012-07-29T14:41:03.0Z</domain:exDate>
         <domain:exDate>2012-07-29T14:41:03.0Z</domain:exDate>
Line 242: Line 277:
     <delete>
     <delete>
       <domain:delete xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
       <domain:delete xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
-
         <domain:name>example50.com</domain:name>
+
         <domain:name>example.com</domain:name>
       </domain:delete>
       </domain:delete>
     </delete>
     </delete>
Line 264: Line 299:
===Restore===
===Restore===
-
Openprovider implements [http://tools.ietf.org/html/rfc3915|Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)] partially for restoration procedure.
+
Openprovider implements [http://tools.ietf.org/html/rfc3915 Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)] partially for restore procedure. The EPP response on <domain:info> command for deleted domains that can be still restored has an additional extension section '''<rgp:infData/>''', containing value '''pendingDelete''':
-
 
+
-
EPP response message on Info command for deleted domains that can be still restored has additional extension section '''<rgp:infData/>''':
+
  <?xml version="1.0" encoding="UTF-8"?>
  <?xml version="1.0" encoding="UTF-8"?>
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   <response>
   <response>
-
<result code="1000">
+
    <result code="1000">
-
<msg>Command completed successfully</msg>
+
      <msg>Command completed successfully</msg>
-
</result>
+
    </result>
-
<resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
+
    <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
-
<domain:infData>
+
      <domain:infData>
-
...
+
        ...
-
</domain:infData>
+
      </domain:infData>
-
</resData>
+
    </resData>
-
<extension>
+
    <extension>
-
...
+
      ...
-
</op:ext>
+
      <rgp:infData xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0">
-
<rgp:infData xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0">
+
        '''<rgp:rgpStatus s="pendingDelete"/>'''
-
'''<rgp:rgpStatus s="pendingDelete"/>'''
+
      </rgp:infData>
-
</rgp:infData>
+
      ...
-
</extension>
+
  </extension>
-
...
+
  </epp>
  </epp>
Line 295: Line 327:
     <update>
     <update>
       <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
       <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
-
         <domain:name>qwerqwerqwer-502dfc0f8d861.nl</domain:name>
+
         <domain:name>example.com</domain:name>
         <domain:chg/>
         <domain:chg/>
       </domain:update>
       </domain:update>
Line 307: Line 339:
   </command>
   </command>
  </epp>
  </epp>
-
* '''<domain:add/>''', '''<domain:rem/>''', '''<domain:chg/>''' must not contain any elements in it.
+
 
 +
'''<domain:add/>''', '''<domain:rem/>''' and '''<domain:chg/>''' must not contain any elements in it.
;Reply:
;Reply:
Line 350: Line 383:
         <domain:status s="ok"/>
         <domain:status s="ok"/>
         <domain:registrant>OT001234-NL</domain:registrant>
         <domain:registrant>OT001234-NL</domain:registrant>
-
         <domain:contact type="admin">OM901234-RU</domain:contact>
+
         <domain:contact type="admin">OM901234-US</domain:contact>
         <domain:contact type="tech">DD01234-NL</domain:contact>
         <domain:contact type="tech">DD01234-NL</domain:contact>
         <domain:ns>
         <domain:ns>
           <domain:hostAttr>
           <domain:hostAttr>
-
             <domain:hostName>ns1.example.nl</domain:hostName>
+
             <domain:hostName>ns1.example.com</domain:hostName>
             <domain:hostAddr ip="v4">123.123.123.123</domain:hostAddr>
             <domain:hostAddr ip="v4">123.123.123.123</domain:hostAddr>
           </domain:hostAttr>
           </domain:hostAttr>
           <domain:hostAttr>
           <domain:hostAttr>
-
             <domain:hostName>ns2.example.nl</domain:hostName>
+
             <domain:hostName>ns2.example.com</domain:hostName>
             <domain:hostAddr ip="v4">234.234.234.234</domain:hostAddr>
             <domain:hostAddr ip="v4">234.234.234.234</domain:hostAddr>
           </domain:hostAttr>
           </domain:hostAttr>
         </domain:ns>
         </domain:ns>
-
         <domain:clID>user1</domain:clID>
+
         <domain:clID>username</domain:clID>
         <domain:crDate>2012-03-28T14:08:53.0Z</domain:crDate>
         <domain:crDate>2012-03-28T14:08:53.0Z</domain:crDate>
         <domain:exDate>2013-03-28T12:08:54.0Z</domain:exDate>
         <domain:exDate>2013-03-28T12:08:54.0Z</domain:exDate>
         <domain:authInfo>
         <domain:authInfo>
-
           <domain:pw>3f!lB;1ouw</domain:pw>
+
           <domain:pw>AUTHCODE</domain:pw>
         </domain:authInfo>
         </domain:authInfo>
       </domain:infData>
       </domain:infData>
Line 409: Line 442:
  </epp>
  </epp>
-
* <b><font color=red><tt><domain:curExpDate/></tt></font> is required by EPP protocol but <font color=red>not used</font> by current version of Openprovider software</b>
+
* '''<domain:curExpDate/>''' is required by EPP protocol but not used by current version of Openprovider software
;Response:
;Response:
Line 442: Line 475:
     <transfer op="request">
     <transfer op="request">
       <domain:transfer>
       <domain:transfer>
-
         <domain:name>qwerqwer-501a507106c4a.se</domain:name>
+
         <domain:name>example.de</domain:name>
         <domain:authInfo>
         <domain:authInfo>
           <domain:pw>AUTHCODE</domain:pw>
           <domain:pw>AUTHCODE</domain:pw>
Line 452: Line 485:
         <op:transfer>
         <op:transfer>
           <op:domain>
           <op:domain>
-
             <op:registrant>FL902042-RU</op:registrant>
+
             <op:registrant>FL902042-US</op:registrant>
-
             <op:contact type="admin">FL902042-RU</op:contact>
+
             <op:contact type="admin">FL902042-US</op:contact>
-
             <op:contact type="tech">FL902042-RU</op:contact>
+
             <op:contact type="tech">FL902042-US</op:contact>
             <op:ns>
             <op:ns>
               <domain:hostAttr>
               <domain:hostAttr>
-
                 <domain:hostName>asdfasdfasdf1.df</domain:hostName>
+
                 <domain:hostName>ns1.example.de</domain:hostName>
                 <domain:hostAddr ip="v6">2607:f0d0:1002:51::4</domain:hostAddr>
                 <domain:hostAddr ip="v6">2607:f0d0:1002:51::4</domain:hostAddr>
               </domain:hostAttr>
               </domain:hostAttr>
               <domain:hostAttr>
               <domain:hostAttr>
-
                 <domain:hostName>asdfasdfasdf2.df</domain:hostName>
+
                 <domain:hostName>ns2.example.de</domain:hostName>
                 <domain:hostAddr ip="v4">123.123.123.123</domain:hostAddr>
                 <domain:hostAddr ip="v4">123.123.123.123</domain:hostAddr>
               </domain:hostAttr>
               </domain:hostAttr>
Line 467: Line 500:
             <op:autorenew>on</op:autorenew>
             <op:autorenew>on</op:autorenew>
             <op:nsGroup></op:nsGroup>
             <op:nsGroup></op:nsGroup>
-
             <op:useDomicile>1</op:useDomicile>
+
             <op:useDomicile>true</op:useDomicile>
             <op:comments>ANY COMMENT  HERE</op:comments>
             <op:comments>ANY COMMENT  HERE</op:comments>
-
             <op:promoCode>PROMO CODE</op:promoCode>
+
             <op:promoCode>PROMOCODE</op:promoCode>
-
            <op:nsTemplateId>321321312</op:nsTemplateId>
+
             <op:nsTemplateName></op:nsTemplateName>
-
             <op:nsTemplateName>DnsTemplate33</op:nsTemplateName>
+
           </op:domain>
           </op:domain>
         </op:transfer>
         </op:transfer>
Line 479: Line 511:
   </command>
   </command>
  </epp>
  </epp>
 +
 +
* ''<domain:contact>'': the only supported contact types are ''admin'' and ''tech''
 +
* ''<op:autorenew>'': accepted values: ''on'', ''off'', ''default''
 +
* ''<op:nsTemplateName>'': can be used if <op:nsGroup> is ''dns-openprovider''
;Reply:
;Reply:
Line 489: Line 525:
     <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
     <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
       <domain:trnData>
       <domain:trnData>
-
         <domain:name>qwerqwer-502e0d06493e2.se</domain:name>
+
         <domain:name>example.de</domain:name>
         <domain:trStatus>pending</domain:trStatus>
         <domain:trStatus>pending</domain:trStatus>
-
         <domain:reID>user1342172839</domain:reID>
+
         <domain:reID>username</domain:reID>
         <domain:reDate>2012-08-17T11:21:13.0Z</domain:reDate>
         <domain:reDate>2012-08-17T11:21:13.0Z</domain:reDate>
         <domain:acID>UNSUPPORTED</domain:acID>
         <domain:acID>UNSUPPORTED</domain:acID>
Line 505: Line 541:
  </epp>
  </epp>
-
'''<font color=red>Not supported</font>''' output values:
+
* '''Not supported output parameters''': acID, acDate, exDate
-
* <font color=red>acID</font>
+
* '''trStatus''' is restricted to 3 values:
-
* <font color=red>acDate</font>
+
** '''serverApproved''': the transfer is approved
-
* <font color=red>exDate</font>
+
** '''pending'''
 +
** '''serverCancelled''': the transfer is rejected or cancelled
-
<font color=red>'''trStatus''' restricted to three statuses</font>:
+
====Cancel Transfer====
-
* '''serverApproved''' the transfer is approved
+
''Not available''
-
* '''pending'''
+
-
* '''serverCancelled''' the transfer is rejected or cancelled
+
-
 
+
-
====Cancel Transfer (not available)====
+
====Approve Transfer====
====Approve Transfer====
Line 524: Line 557:
     <transfer op="approve">
     <transfer op="approve">
       <domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
       <domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
-
         <domain:name>qwerqwer-50055d5e2870d.nl</domain:name>
+
         <domain:name>example.com</domain:name>
       </domain:transfer>
       </domain:transfer>
     </transfer>
     </transfer>
Line 552: Line 585:
     <transfer op="query">
     <transfer op="query">
       <domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
       <domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
-
         <domain:name>qwerqwer-50055d5e2870d.nl</domain:name>
+
         <domain:name>example.com</domain:name>
       </domain:transfer>
       </domain:transfer>
     </transfer>
     </transfer>
Line 568: Line 601:
     <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
     <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
       <domain:trnData>
       <domain:trnData>
-
         <domain:name>qwerqwer-50055d5e2870d.nl</domain:name>
+
         <domain:name>example.com</domain:name>
         <domain:trStatus>serverApproved</domain:trStatus>
         <domain:trStatus>serverApproved</domain:trStatus>
-
         <domain:reID>user1342172839</domain:reID>
+
         <domain:reID>username</domain:reID>
         <domain:reDate>2012-07-17T14:41:04.0Z</domain:reDate>
         <domain:reDate>2012-07-17T14:41:04.0Z</domain:reDate>
         <domain:acID>UNSUPPORTED</domain:acID>
         <domain:acID>UNSUPPORTED</domain:acID>
Line 584: Line 617:
  </epp>
  </epp>
-
'''<font color=red>Not supported</font>''' output values:
+
* '''Not supported output parameters''': acID, acDate, exDate
-
* <font color=red>acID</font>
+
* '''trStatus''' is restricted to 3 values:
-
* <font color=red>acDate</font>
+
** '''serverApproved''': the transfer is approved
-
* <font color=red>exDate</font>
+
** '''pending'''  
-
 
+
** '''serverCancelled''': the transfer is rejected or cancelled
-
<font color=red>'''trStatus''' restricted to three statuses</font>:
+
-
* '''serverApproved''' the transfer is approved
+
-
* '''pending'''  
+
-
* '''serverCancelled''' the transfer is rejected or cancelled
+
===Update===
===Update===
Line 601: Line 630:
     <update>
     <update>
       <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
       <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
-
         <domain:name>qwerqwerqwer-4ff56c42439b1.nl</domain:name>
+
         <domain:name>example.com</domain:name>
         <domain:add>
         <domain:add>
           <domain:ns>
           <domain:ns>
-
             <domain:hostObj>ns1.domaindiscount24.net</domain:hostObj>
+
             <domain:hostAttr>
 +
              <domain:hostName>ns1.example.com</domain:hostName>
 +
              <domain:hostAddr ip="v6">2607:f0d0:1002:51::4</domain:hostAddr>
 +
            </domain:hostAttr>
           </domain:ns>
           </domain:ns>
           <domain:contact type="tech">DD004372-NL</domain:contact>
           <domain:contact type="tech">DD004372-NL</domain:contact>
Line 611: Line 643:
         <domain:rem>
         <domain:rem>
           <domain:ns>
           <domain:ns>
-
             <domain:hostObj>asdfasdfasdf1.df</domain:hostObj>
+
             <domain:hostAttr>
 +
              <domain:hostName>ns2.example.com</domain:hostName>
 +
            </domain:hostAttr>
           </domain:ns>
           </domain:ns>
-
           <domain:contact type="tech">P-JID21</domain:contact>
+
           <domain:contact type="tech">JL901992-NL</domain:contact>
-
          <domain:status s="clientUpdateProhibited"/>
+
         </domain:rem>
         </domain:rem>
         <domain:chg>
         <domain:chg>
Line 630: Line 663:
             <op:chg>
             <op:chg>
               <op:autorenew>on</op:autorenew>
               <op:autorenew>on</op:autorenew>
-
               <op:useDomicile>true</op:useDomicile>
+
               <op:useDomicile>false</op:useDomicile>
-
               <op:comments>Test comment</op:comments>
+
               <op:comments>Custom comment</op:comments>
-
               <op:nsGroup>dns-openprovider</op:nsGroup>
+
               <op:nsGroup></op:nsGroup>
-
              <op:nsTemplateId>5808</op:nsTemplateId>
+
               <op:resetAuthCode>true</op:resetAuthCode>
               <op:resetAuthCode>true</op:resetAuthCode>
             </op:chg>
             </op:chg>
Line 658: Line 690:
  </epp>
  </epp>
-
* '''<font color=red><contact:pw/> </font> element''' is NOT used but required by EPP protocol, leave it blank
+
* '''<contact:pw/> element''' is NOT used but required by EPP protocol; please leave it blank
 +
 
 +
===Support for new gTLDs and their launch phases===
 +
;General information
 +
* Openprovider follows the existing RFCs for launch phase support, although there are some small changes because of the registrar situation (instead of registry situation). See examples below.
 +
* The '''domain:check''' can optionally be used to see if trademark claims applies; if so, you know that Openprovider will send a trademark claims notice to the proposed domain holder. The domain:create command is not different for a domain with or without claims.
 +
* The '''domain:create''' command may contain the launch phase, see examples below. The supported launch phases are the following; for exact dates and times per extension, please look at the TLD detail pages on our [https://www.openprovider.co.uk/new-gtlds/overview-new-gtlds/ website]:
 +
** '''<launch:phase>sunrise</launch:phase>''' (base64 encoded SMD file required); accepted during Sunrise
 +
** '''<launch:phase>landrush</launch:phase>'''; accepted during Landrush
 +
** '''<launch:phase>claims</launch:phase>'''; accepted during trademark claims phase
 +
** '''<launch:phase name="preregistration">custom</launch:phase>'''; accepted until 3 hours before General Availability starts
 +
 
 +
;Example check command+response to check if trademark claims applies
 +
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 +
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
 +
  <command>
 +
    <check>
 +
      <domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
 +
        <domain:name>trademark.tld</domain:name>
 +
      </domain:check>
 +
    </check>
 +
    '''<extension>
 +
    '''  <launch:check xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" type="claims">
 +
    '''    <launch:phase>claims</launch:phase>
 +
    '''  </launch:check>
 +
    '''</extension>
 +
    <clTRID>C68D3D5A-2F3C-11DE-8EF9-80000000DC4F</clTRID>
 +
  </command>
 +
</epp>
 +
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
 +
  <response>
 +
    <result code="1000">
 +
      <msg>Command completed successfully</msg>
 +
    </result>
 +
    '''<extension>
 +
    '''  <launch:chkData xmlns:launch="urn:ietf:params:xml:ns:launch-1.0">
 +
    '''    <launch:phase>claims</launch:phase>
 +
    '''    <launch:cd>
 +
    '''      <launch:name exists="true">trademark.tld</launch:name>
 +
    '''    </launch:cd>
 +
    '''  </launch:chkData>
 +
    '''</extension>
 +
    <trID>
 +
      <clTRID>C68D3D5A-2F3C-11DE-8EF9-80000000DC4F</clTRID>
 +
      <svTRID>37080027-DB39-416A-A82E-AF793FB14AE9</svTRID>
 +
    </trID>
 +
  </response>
 +
</epp>
 +
 
 +
;Example create command for a Sunrise application
 +
<?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="urn:ietf:params:xml:ns:domain-1.0">
 +
        <domain:name>example.tld</domain:name>
 +
        ... (other standard domain attributes)
 +
      </domain:create>
 +
    </create>
 +
    '''<extension>
 +
    '''  <launch:create xmlns:launch="urn:ietf:params:xml:ns:launch-1.0">
 +
    '''    <launch:phase>sunrise</launch:phase>
 +
    '''    <smd:encodedSignedMark xmlns:smd="urn:ietf:params:xml:ns:signedMark-1.0">
 +
    '''      ... (base64-encoded SMD file)
 +
    '''    </smd:encodedSignedMark>
 +
    '''  </launch:create>
 +
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
 +
        <op:create>
 +
          <op:domain>
 +
            ... (optional standard Openprovider extensions)
 +
          </op:domain>
 +
        </op:create>
 +
      </op:ext>
 +
    </extension>
 +
    <clTRID>3F169D90-411F-11DE-84A7-80000000274B</clTRID>
 +
  </command>
 +
</epp>
 +
 
 +
;Example create extension for Landrush, claims and pre-registration orders
 +
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 +
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
 +
  ...
 +
    <extension>
 +
      <launch:create xmlns:launch="urn:ietf:params:xml:ns:launch-1.0">
 +
    '''    <launch:phase>landrush</launch:phase>
 +
      </launch:create>
 +
  ...
 +
 +
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 +
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
 +
  ...
 +
    <extension>
 +
      <launch:create xmlns:launch="urn:ietf:params:xml:ns:launch-1.0">
 +
    '''    <launch:phase>claims</launch:phase>
 +
      </launch:create>
 +
  ...
 +
 +
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 +
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
 +
  ...
 +
    <extension>
 +
      <launch:create xmlns:launch="urn:ietf:params:xml:ns:launch-1.0">
 +
    '''    <launch:phase name="preregistration">custom</launch:phase>
 +
      </launch:create>
 +
  ...
==Contact==
==Contact==
Line 668: Line 806:
     <check>
     <check>
       <contact:check xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
       <contact:check xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
-
      <contact:id>IB000543-NL</contact:id>
+
        <contact:id>IB000543-NL</contact:id>
-
      <contact:id>IB000544-NL</contact:id>
+
        <contact:id>IB000544-NL</contact:id>
       </contact:check>
       </contact:check>
     </check>
     </check>
Line 677: Line 815:
;Response:
;Response:
-
  <?xml -version="1.0" encoding="UTF-8"?>
+
  <?xml version="1.0" encoding="UTF-8"?>
-
  <epp -xmlns="urn:ietf:params:xml:ns:epp-1.0">
+
  <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   <response>
   <response>
     <result code="1000">
     <result code="1000">
Line 707: Line 845:
     <create>
     <create>
       <contact:create xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
       <contact:create xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
-
         <contact:id>sh8013</contact:id>
+
         <contact:id>IGNORED</contact:id>
-
         <contact:postalInfo type="int">
+
         <contact:postalInfo type="loc">
           <contact:name>John Doe</contact:name>
           <contact:name>John Doe</contact:name>
 +
          <contact:org>Example Inc.</contact:org>
           <contact:addr>
           <contact:addr>
-
             <contact:street>123 Example Dr.</contact:street>
+
             <contact:street>Main street 15</contact:street>
-
            <contact:street>Block A</contact:street>
+
             <contact:city>Rotterdam</contact:city>
-
            <contact:street>Suite 102</contact:street>
+
             <contact:sp>Zuid-Holland</contact:sp>
-
             <contact:city>Dulles</contact:city>
+
             <contact:pc>3024 BN</contact:pc>
-
             <contact:sp>VA</contact:sp>
+
-
             <contact:pc>20166-6503</contact:pc>
+
             <contact:cc>NL</contact:cc>
             <contact:cc>NL</contact:cc>
           </contact:addr>
           </contact:addr>
         </contact:postalInfo>
         </contact:postalInfo>
-
         <contact:voice>+1.7035555555</contact:voice>
+
         <contact:voice>+31.104482299</contact:voice>
-
         <contact:fax>+1.7035555556</contact:fax>
+
         <contact:fax>+31.102440250</contact:fax>
         <contact:email>jdoe@example.com</contact:email>
         <contact:email>jdoe@example.com</contact:email>
         <contact:authInfo>
         <contact:authInfo>
Line 732: Line 869:
         <op:create>
         <op:create>
           <op:contact>
           <op:contact>
-
             <op:vat>$#$#09507882B01</op:vat>
+
             <op:vat>NL09507882B01</op:vat>
-
             <op:comments>hello dfsf</op:comments>
+
             <op:comments>Custom comment</op:comments>
             <op:gender>male</op:gender>
             <op:gender>male</op:gender>
             <op:birthDate>1982-10-23</op:birthDate>
             <op:birthDate>1982-10-23</op:birthDate>
-
             <op:birthCity>Novosibirsk</op:birthCity>
+
             <op:birthCity>Amsterdam</op:birthCity>
-
             <op:birthCountry>RU</op:birthCountry>
+
             <op:birthCountry>NL</op:birthCountry>
-
             <op:birthAddress>N-Dantchenko 139\1 - 32</op:birthAddress>
+
             <op:birthAddress>Hoofdstraat 32</op:birthAddress>
-
             <op:birthState>Siberia</op:birthState>
+
             <op:birthState>Nood-Holland</op:birthState>
-
             <op:birthZipcode>630048</op:birthZipcode>
+
             <op:birthZipcode>1000 AA</op:birthZipcode>
-
             <op:companyRegistrationCity>Moscow</op:companyRegistrationCity>
+
             <op:companyRegistrationCity>Amsterdam</op:companyRegistrationCity>
             <op:companyRegistrationNumber>123456</op:companyRegistrationNumber>
             <op:companyRegistrationNumber>123456</op:companyRegistrationNumber>
             <op:companyRegistrationSubscriptionDate>2011-10-10</op:companyRegistrationSubscriptionDate>
             <op:companyRegistrationSubscriptionDate>2011-10-10</op:companyRegistrationSubscriptionDate>
-
             <op:headquartersAddress>Novosibirsk, Grebenshikova 11\1 - 14</op:headquartersAddress>
+
             <op:headquartersAddress></op:headquartersAddress>
-
             <op:headquartersCity>Rotterdam</op:headquartersCity>
+
             <op:headquartersCity></op:headquartersCity>
-
             <op:headquartersCountry>NL</op:headquartersCountry>
+
             <op:headquartersCountry></op:headquartersCountry>
-
             <op:headquartersState>Zuid-Holland</op:headquartersState>
+
             <op:headquartersState></op:headquartersState>
-
             <op:headquartersZipcode>3014 GJ</op:headquartersZipcode>
+
             <op:headquartersZipcode></op:headquartersZipcode>
-
             <op:socialSecurityNumber>987642314</op:socialSecurityNumber>
+
             <op:socialSecurityNumber></op:socialSecurityNumber>
-
             <op:passportNumber>123987642314</op:passportNumber>
+
             <op:passportNumber></op:passportNumber>
-
            <op:cifNifNumber>1231123123</op:cifNifNumber>
+
-
            <op:costCenter>111111</op:costCenter>
+
-
            <op:costCategory>222222</op:costCategory>
+
-
            <op:purchaseOrderNumber>33333333</op:purchaseOrderNumber>
+
-
            <op:projectCode>4444</op:projectCode>
+
-
            <op:internalReference>55555</op:internalReference>
+
           </op:contact>
           </op:contact>
         </op:create>
         </op:create>
Line 764: Line 895:
   </command>
   </command>
  </epp>  
  </epp>  
 +
 +
* '''<contact:postalInfo>''' ''type'' attribute is restricted to only one value: ''loc''
 +
* '''<contact:id>''' is ignored by Openprovider
 +
* '''<contact:pw>''' is ignored by Openprovider but required by the EPP protocol; please leave it blank
 +
* '''<contact:disclose>''' is ignored by Openprovider
;Response:
;Response:
Line 774: Line 910:
     <resData>
     <resData>
       <contact:creData xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
       <contact:creData xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
-
         <contact:id>P-JMD24</contact:id>
+
         <contact:id>IB000545-NL</contact:id>
-
         <contact:crDate>2009-04-23T11:59:29.0Z</contact:crDate>
+
         <contact:crDate>2012-07-23T11:59:29.0Z</contact:crDate>
       </contact:creData>
       </contact:creData>
     </resData>
     </resData>
Line 784: Line 920:
   </response>
   </response>
  </epp>
  </epp>
-
 
-
 
-
'''<contact:postalInfo> <font color=red>type</font>''' attribute restricted to only one status:
 
-
* '''type = "int"''' (internationalized form)
 
-
 
-
'''<font color=red><contact:pw/> </font> element''' is NOT used but required by EPP protocol, leave it blank
 
-
 
-
'''<font color=red><contact:disclose/> </font> element''' is NOT supported
 
===Delete===
===Delete===
Line 800: Line 928:
     <delete>
     <delete>
       <contact:delete xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
       <contact:delete xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
-
         <contact:id>P-JMD24</contact:id>
+
         <contact:id>IB000545-NL</contact:id>
       </contact:delete>
       </contact:delete>
     </delete>
     </delete>
Line 820: Line 948:
   </response>
   </response>
  </epp>
  </epp>
 +
===Info===
===Info===
Line 828: Line 957:
     <info>
     <info>
       <contact:info xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
       <contact:info xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
-
         <contact:id>P-JMD24</contact:id>
+
         <contact:id>IB000545-NL</contact:id>
       </contact:info>
       </contact:info>
     </info>
     </info>
Line 844: Line 973:
     <resData>
     <resData>
       <contact:infData xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
       <contact:infData xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
-
         <contact:id>P-JMD24</contact:id>
+
         <contact:id>IB000545-NL</contact:id>
         <contact:roid>495726825335031_CONTACT-OPENPROV</contact:roid>
         <contact:roid>495726825335031_CONTACT-OPENPROV</contact:roid>
         <contact:status s="ok"/>
         <contact:status s="ok"/>
Line 851: Line 980:
           <contact:org>Example Inc.</contact:org>
           <contact:org>Example Inc.</contact:org>
           <contact:addr>
           <contact:addr>
-
             <contact:street>123 Example Dr.</contact:street>
+
             <contact:street>Main Street 15</contact:street>
-
            <contact:street>Suite 100</contact:street>
+
             <contact:city>Rotterdam</contact:city>
-
             <contact:city>Dulles</contact:city>
+
             <contact:sp>Zuid-Holland</contact:sp>
-
             <contact:sp>VA</contact:sp>
+
             <contact:pc>3024 BN</contact:pc>
-
             <contact:pc>20166-6503</contact:pc>
+
             <contact:cc>NL</contact:cc>
-
             <contact:cc>US</contact:cc>
+
           </contact:addr>
           </contact:addr>
         </contact:postalInfo>
         </contact:postalInfo>
-
         <contact:voice>+1.7035555555</contact:voice>
+
         <contact:voice>+31.104482299</contact:voice>
-
         <contact:fax>+1.7035555556</contact:fax>
+
         <contact:fax>+31.102440250</contact:fax>
         <contact:email>jdoe@example.com</contact:email>
         <contact:email>jdoe@example.com</contact:email>
-
         <contact:clID>opdrs4</contact:clID>
+
         <contact:clID>username</contact:clID>
         <contact:crID>UNSUPPORTED</contact:crID>
         <contact:crID>UNSUPPORTED</contact:crID>
         <contact:crDate>2012-07-20T07:59:26.0Z</contact:crDate>
         <contact:crDate>2012-07-20T07:59:26.0Z</contact:crDate>
-
         <contact:upID>opdrs4</contact:upID>
+
         <contact:upID>username</contact:upID>
         <contact:upDate>2012-07-20T07:59:26.0Z</contact:upDate>
         <contact:upDate>2012-07-20T07:59:26.0Z</contact:upDate>
       </contact:infData>
       </contact:infData>
Line 875: Line 1,003:
             <op:contact>
             <op:contact>
               <op:gender>male</op:gender>
               <op:gender>male</op:gender>
-
               <op:birthAddress>N-Dantchenko 139\1 - 32</op:birthAddress>
+
               <op:birthAddress></op:birthAddress>
-
               <op:birthCity>Novosibirsk</op:birthCity>
+
               <op:birthCity></op:birthCity>
-
               <op:birthCountry>RU</op:birthCountry>
+
               <op:birthCountry></op:birthCountry>
               <op:birthDate>1982-10-23</op:birthDate>
               <op:birthDate>1982-10-23</op:birthDate>
-
               <op:birthState>Siberia</op:birthState>
+
               <op:birthState></op:birthState>
-
               <op:birthZipcode>630048</op:birthZipcode>
+
               <op:birthZipcode></op:birthZipcode>
-
              <op:cifNifNumber>1231123123</op:cifNifNumber>
+
               <op:companyRegistrationCity>Amsterdam</op:companyRegistrationCity>
-
               <op:companyRegistrationCity>Moscow</op:companyRegistrationCity>
+
               <op:companyRegistrationNumber>123456</op:companyRegistrationNumber>
               <op:companyRegistrationNumber>123456</op:companyRegistrationNumber>
               <op:companyRegistrationSubscriptionDate>2011-10-10</op:companyRegistrationSubscriptionDate>
               <op:companyRegistrationSubscriptionDate>2011-10-10</op:companyRegistrationSubscriptionDate>
-
              <op:costCategory>222222</op:costCategory>
+
               <op:headquartersAddress></op:headquartersAddress>
-
              <op:costCenter>111111</op:costCenter>
+
               <op:headquartersCity></op:headquartersCity>
-
               <op:headquartersAddress>Novosibirsk, Grebenshikova 11\1 - 14</op:headquartersAddress>
+
               <op:headquartersCountry></op:headquartersCountry>
-
               <op:headquartersCity>Rotterdam</op:headquartersCity>
+
               <op:headquartersState></op:headquartersState>
-
               <op:headquartersCountry>NL</op:headquartersCountry>
+
               <op:headquartersZipcode></op:headquartersZipcode>
-
               <op:headquartersState>Zuid-Holland</op:headquartersState>
+
               <op:passportNumber></op:passportNumber>
-
               <op:headquartersZipcode>3014 GJ</op:headquartersZipcode>
+
               <op:socialSecurityNumber></op:socialSecurityNumber>
-
              <op:internalReference>55555</op:internalReference>
+
-
               <op:passportNumber>123987642314</op:passportNumber>
+
-
              <op:projectCode>4444</op:projectCode>
+
-
              <op:purchaseOrderNumber>33333333</op:purchaseOrderNumber>
+
-
               <op:socialSecurityNumber>987642314</op:socialSecurityNumber>
+
             </op:contact>
             </op:contact>
           </op:infData>
           </op:infData>
Line 909: Line 1,031:
  </epp>
  </epp>
 +
* '''Not supported output values''': crID, crDate, upDate
-
'''<font color=red>Not supported</font>''' output values:
+
===Transfer===
-
* <font color=red>crID</font>
+
''Not available''
-
* <font color=red>crDate</font>
+
-
* <font color=red>upDate</font>
+
-
 
+
-
===Transfer (not available)===
+
===Update===
===Update===
Line 924: Line 1,043:
     <update>
     <update>
       <contact:update xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
       <contact:update xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
-
         <contact:id>P-JMD24</contact:id>
+
         <contact:id>IB000545-NL</contact:id>
         <contact:chg>
         <contact:chg>
-
           <contact:postalInfo type="int">
+
           <contact:postalInfo type="loc">
             <contact:org/>
             <contact:org/>
             <contact:addr>
             <contact:addr>
-
               <contact:street>124 Example Dr.</contact:street>
+
               <contact:street>Street 18</contact:street>
-
              <contact:street>Suite 200</contact:street>
+
               <contact:city>Amsterdam</contact:city>
-
               <contact:city>Dulles</contact:city>
+
               <contact:sp>NH</contact:sp>
-
               <contact:sp>VA</contact:sp>
+
               <contact:pc>1000 AA</contact:pc>
-
               <contact:pc>20166-6503</contact:pc>
+
               <contact:cc>NL</contact:cc>
-
               <contact:cc>US</contact:cc>
+
             </contact:addr>
             </contact:addr>
           </contact:postalInfo>
           </contact:postalInfo>
-
           <contact:voice>+1.7034444444</contact:voice>
+
           <contact:voice>+31.201234567</contact:voice>
           <contact:fax/>
           <contact:fax/>
         </contact:chg>
         </contact:chg>
Line 947: Line 1,065:
           <op:contact>
           <op:contact>
             <op:chg>
             <op:chg>
-
               <op:vat>123245443</op:vat>
+
               <op:vat>NL123245443B01</op:vat>
-
               <op:comments>yohoho</op:comments>
+
               <op:comments></op:comments>
-
               <op:birthAddress>N-Dantchenko 139\1 - 32</op:birthAddress>
+
               <op:birthAddress></op:birthAddress>
-
               <op:birthCity>Novosibirsk</op:birthCity>
+
               <op:birthCity></op:birthCity>
-
               <op:birthCountry>RU</op:birthCountry>
+
               <op:birthCountry></op:birthCountry>
               <op:birthDate>1982-10-23</op:birthDate>
               <op:birthDate>1982-10-23</op:birthDate>
-
               <op:birthState>Siberia</op:birthState>
+
               <op:birthState></op:birthState>
-
               <op:birthZipcode>630048</op:birthZipcode>
+
               <op:birthZipcode></op:birthZipcode>
-
              <op:cifNifNumber>1231123123</op:cifNifNumber>
+
               <op:companyRegistrationCity></op:companyRegistrationCity>
-
               <op:companyRegistrationCity>Moscow</op:companyRegistrationCity>
+
               <op:companyRegistrationNumber></op:companyRegistrationNumber>
-
               <op:companyRegistrationNumber>123456</op:companyRegistrationNumber>
+
               <op:companyRegistrationSubscriptionDate>2011-10-10</op:companyRegistrationSubscriptionDate>
               <op:companyRegistrationSubscriptionDate>2011-10-10</op:companyRegistrationSubscriptionDate>
-
              <op:costCategory>222222</op:costCategory>
+
               <op:headquartersAddress></op:headquartersAddress>
-
              <op:costCenter>111111</op:costCenter>
+
               <op:headquartersCity></op:headquartersCity>
-
               <op:headquartersAddress>Novosibirsk, Grebenshikova 11\1 - 14</op:headquartersAddress>
+
               <op:headquartersCountry></op:headquartersCountry>
-
               <op:headquartersCity>Rotterdam</op:headquartersCity>
+
               <op:headquartersState></op:headquartersState>
-
               <op:headquartersCountry>NL</op:headquartersCountry>
+
               <op:headquartersZipcode></op:headquartersZipcode>
-
               <op:headquartersState>Zuid-Holland</op:headquartersState>
+
               <op:passportNumber></op:passportNumber>
-
               <op:headquartersZipcode>3014 GJ</op:headquartersZipcode>
+
               <op:socialSecurityNumber></op:socialSecurityNumber>
-
              <op:internalReference>55555</op:internalReference>
+
-
               <op:passportNumber>123987642314</op:passportNumber>
+
-
              <op:projectCode>4444</op:projectCode>
+
-
              <op:purchaseOrderNumber>33333333</op:purchaseOrderNumber>
+
-
               <op:socialSecurityNumber>987642314</op:socialSecurityNumber>
+
             </op:chg>
             </op:chg>
           </op:contact>
           </op:contact>
Line 979: Line 1,091:
   </command>
   </command>
  </epp>
  </epp>
 +
 +
* '''<contact:postalInfo>''' ''type'' attribute is restricted to only one value: ''loc''
 +
* '''<contact:status>''' and it's attributes are ignored by Openprovider
 +
* '''<contact:pw>''' is ignored by Openprovider but required by EPP protocol; please leave it blank
 +
* '''<contact:disclose>''' is ignored by Openprovider
;Response:
;Response:
Line 994: Line 1,111:
  </epp>
  </epp>
-
'''<contact:postalInfo> <font color=red>type</font>''' attribute restricted to only one status:
+
==Host==
-
* '''type = "int"''' (internationalized form)
+
''Not available''
-
'''<font color=red><contact:pw/> </font> element''' is NOT used but required by EPP protocol, leave it blank
+
==Poll==
-
 
+
-
'''<font color=red><contact:disclose/> </font> element''' is NOT supported
+
-
 
+
-
'''<font color=red><contact:status/> </font> element''' and its attributes are NOT supported
+
-
 
+
-
==Host (not available)==
+
-
 
+
-
==Poll (PU)==
+
===REQ===
===REQ===
====Request====
====Request====
Line 1,037: Line 1,146:
* '''<op:title/>''' - transaction title
* '''<op:title/>''' - transaction title
* '''<op:description/>''' - short transaction description  
* '''<op:description/>''' - short transaction description  
-
* '''<op:registryMessage/>''' - registry message
+
* '''<op:registryMessage/>''' - registry message containing more information
* '''<op:comments/>''' - can contain Openprovider's comments, advices, instructions
* '''<op:comments/>''' - can contain Openprovider's comments, advices, instructions
* '''<op:attachment/>''' - attachment element(s) can contain any base64 encoded documents received from registry
* '''<op:attachment/>''' - attachment element(s) can contain any base64 encoded documents received from registry
-
 
Line 1,155: Line 1,263:
         <domain:name>example.nl</domain:name>
         <domain:name>example.nl</domain:name>
         <domain:trStatus>serverCancelled</domain:trStatus>
         <domain:trStatus>serverCancelled</domain:trStatus>
-
         <domain:reID>user1</domain:reID>
+
         <domain:reID>username</domain:reID>
         <domain:reDate>2012-09-01T20:30:20.0Z</domain:reDate>
         <domain:reDate>2012-09-01T20:30:20.0Z</domain:reDate>
         <domain:acID>UNSUPPORTED</domain:acID>
         <domain:acID>UNSUPPORTED</domain:acID>
Line 1,210: Line 1,318:
               <op:name>example.nl</op:name>
               <op:name>example.nl</op:name>
               <op:trStatus>pending</op:trStatus>
               <op:trStatus>pending</op:trStatus>
-
               <op:reID>user1</op:reID>
+
               <op:reID>username</op:reID>
               <op:reDate>2012-08-01T20:30:20.0Z</op:reDate>
               <op:reDate>2012-08-01T20:30:20.0Z</op:reDate>
               <op:acID>UNSUPPORTED</op:acID>
               <op:acID>UNSUPPORTED</op:acID>
Line 1,255: Line 1,363:
         <domain:roid>140_DOMAIN-OPENPROV</domain:roid>
         <domain:roid>140_DOMAIN-OPENPROV</domain:roid>
         <domain:status s="inactive"/>
         <domain:status s="inactive"/>
-
         <domain:clID>user1</domain:clID>
+
         <domain:clID>username</domain:clID>
       </domain:infData>
       </domain:infData>
     </resData>
     </resData>

Current revision as of 08:03, 27 September 2017

Contents

EPP interface specifications

Introduction

EPP (Extensible Provisioning Protocol) is the communication standard for most registries. The EPP interface of Openprovider thus provides an interface that follows a standard, simplifying integration for any company that already implemented an EPP interface to another registry in the past.

The EPP interface is a layer on top of the general Openprovider API. This increases maintainability and stability, but might drop speed a little because of the translation from EPP to API format.

  • Who should use the EPP interface?
    • Customers already having an EPP implementation to another domain provider. Connecting to the EPP interface of Openprovider is the easiest way for a quick start.
  • Who should use the general Openprovider API?
    • Customers that do not have implemented EPP yet: the Openprovider API is easier to implement and use
    • Customers that want to sell not only domains: the EPP interface only supports domain and contact management, no support for SSL, licenses and other products

In general: if you have no specific reason to use EPP, we recommend the Openprovider API.

Scope

The EPP interface is built for domains and contacts only. For all other products, the general Openprovider API should be used.

Reference to RFCs

Differences

  • Cookies are used to keep a session alive. After the login command, the server returns a cookie session_id which must be used in all following requests to the server until closing the session.
  • DNSSEC is not yet supported.
  • Although not against the RFCs, please note that Openprovider uses a lot of extensions to be able to cover all TLD-specific requirements. The extensions are defined in the opprov-1.0.xsd file

Example

EPP server

  • hostname: https://epp.openprovider.eu
  • port: 443
  • username: similar to RCP username
    • Note: EPP defines a maximum length of 16 characters for the username. If your RCP username is longer, please contact our support team to change it to a shorter one.
  • password: similar to RCP password

Session

Hello

Request
<?xml version="1.0" encoding="UTF-8"?>                                                   
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">                                              
  <hello/>                                                                                  
</epp>
Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <greeting>
    <svID>Openprovider EPP Server</svID>
    <svDate>2012-07-05T16:08:04Z</svDate>
    <svcMenu>
      <version>1.0</version>
      <lang>en</lang>
      <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
      <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
      <svcExtension>
        <extURI>http://www.openprovider.nl/epp/xml/opprov-1.0</extURI>
      </svcExtension>
    </svcMenu>
    <dcp>
      <access>
        <all/>
      </access>
      <statement>
        <purpose>
          <admin/>
          <prov/>
        </purpose>
        <recipient>
          <ours/>
          <public/>
        </recipient>
        <retention>
          <stated/>
        </retention>
      </statement>
    </dcp>
  </greeting>
</epp>

Login

Request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-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">
  <command>
    <login>
      <clID>username</clID>
      <pw>password</pw>
      <options>
        <version>1.0</version>
        <lang>en</lang>
      </options>
      <svcs>
        <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
        <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
        <svcExtension>
          <extURI>urn:ietf:params:xml:ns:rgp-1.0</extURI>
          <extURI>http://www.openprovider.nl/epp/xml/opprov-1.0</extURI>
        </svcExtension>
      </svcs>
    </login>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>ABC-12345</clTRID>
      <svTRID>41E31A2F-1B6A-4BFA-AE07-00A4DE8FCC0C</svTRID>
    </trID>
  </response>
</epp>
  • Important: together with the response, the server returns a cookie session_id which must be used in all following requests to the server until closing the session.
  • Password reset via the EPP login command is not possible

Logout

Request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <logout/>
    <clTRID>83EE2B34-2385-11DE-9267-8000000019CE</clTRID>
  </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1500">
      <msg>Command completed successfully; ending session</msg>
    </result>
    <trID>
      <clTRID>83EE2B34-2385-11DE-9267-8000000019CE</clTRID>
      <svTRID>180372ED-5E05-4718-8A73-40B37AE37D62</svTRID>
    </trID>
  </response>
</epp>

Domain

Check

Request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <check>
      <domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.net</domain:name>
        <domain:name>example.org</domain:name>
      </domain:check>
    </check>
    <clTRID>C68D3D5A-2F3C-11DE-8EF9-80000000DC4F</clTRID>
  </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
      <domain:chkData>
        <domain:cd>
          <domain:name avail="1">example.net</domain:name>
        </domain:cd>
        <domain:cd>
          <domain:name avail="0">example.org</domain:name>
          <domain:reason>Domain name not available</domain:reason>
        </domain:cd>
      </domain:chkData>
    </resData>
    <trID>
      <clTRID>C68D3D5A-2F3C-11DE-8EF9-80000000DC4F</clTRID>
      <svTRID>B3E22269-EE9E-4E32-82C0-54C02400E396</svTRID>
    </trID>
  </response>
</epp>

Create

Request
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
        <domain:period unit="y">1</domain:period>
        <domain:ns>
          <domain:hostAttr>
            <domain:hostName>ns1.example.com</domain:hostName>
            <domain:hostAddr ip="v6">2607:f0d0:1002:51::4</domain:hostAddr>
          </domain:hostAttr>
          <domain:hostAttr>
            <domain:hostName>ns2.example.com</domain:hostName>
            <domain:hostAddr ip="v4">123.123.123.123</domain:hostAddr>
          </domain:hostAttr>
          <domain:hostAttr>
            <domain:hostName>ns3.example.com</domain:hostName>
            <domain:hostAddr ip="v4">123.123.123.125</domain:hostAddr>
            <domain:hostAddr ip="v6">2607:f0d0:1002:51::5</domain:hostAddr>
          </domain:hostAttr>
          <domain:hostAttr>
            <domain:hostName>ns3.company.net</domain:hostName>
          </domain:hostAttr>
        </domain:ns>
        <domain:registrant>FL902041-US</domain:registrant>
        <domain:contact type="admin">FL902041-US</domain:contact>
        <domain:contact type="tech">FL902041-US</domain:contact>
        <domain:authInfo>
          <domain:pw/>
        </domain:authInfo>
      </domain:create>
    </create>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:create>
          <op:domain>
            <op:promoCode>PROMO2</op:promoCode>
            <op:useDomicile>false</op:useDomicile>
            <op:nsGroup></op:nsGroup>
            <op:comments>any comment here</op:comments>
            <op:autorenew>default</op:autorenew>
            <op:nsTemplateName></op:nsTemplateName>
          </op:domain>
        </op:create>
      </op:ext>
    </extension>
    <clTRID>3F169D90-411F-11DE-84A7-80000000274B</clTRID>
  </command>
</epp>
  • <domain:pw> parameter is required by the EPP protocol, but is ignored by Openprovider; please leave it blank
  • <domain:contact>: the only supported contact types are admin and tech
  • <op:autorenew>: accepted values: on, off, default
  • <op:nsTemplateName>: can be used if <op:nsGroup> is dns-openprovider


Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
      <domain:creData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
        <domain:crDate>2012-07-17T14:41:03.0Z</domain:crDate>
        <domain:exDate>2012-07-29T14:41:03.0Z</domain:exDate>
      </domain:creData>
    </resData>
    <trID>
      <clTRID>3F169D90-411F-11DE-84A7-80000000274B</clTRID>
      <svTRID>6CEB9B8B-63CE-4925-BB69-C4BF89012266</svTRID>
    </trID>
  </response>
</epp>

Delete

Request
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <delete>
      <domain:delete xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
      </domain:delete>
    </delete>
    <clTRID>734ABADA-3015-11DE-A6A7-800000008EDE</clTRID>
  </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <resultcode="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>734ABADA-3015-11DE-A6A7-800000008EDE</clTRID>
      <svTRID>77FC94EA-3015-11DE-9878-8D01B5F06CC6</svTRID>
    </trID>
  </response>
</epp>

Restore

Openprovider implements Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP) partially for restore procedure. The EPP response on <domain:info> command for deleted domains that can be still restored has an additional extension section <rgp:infData/>, containing value pendingDelete:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
      <domain:infData>
        ...
      </domain:infData>
    </resData>
    <extension>
      ...
      <rgp:infData xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0">
        <rgp:rgpStatus s="pendingDelete"/>
      </rgp:infData>
      ...
  </extension>
</epp>
Request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <update>
      <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
        <domain:chg/>
      </domain:update>
    </update>
    <extension>
      <rgp:update xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0">
        <rgp:restore op="request"/>
      </rgp:update>
    </extension>
    <clTRID>6A464E50-300A-11DE-B776-80000000AE6H</clTRID>
  </command>
</epp>

<domain:add/>, <domain:rem/> and <domain:chg/> must not contain any elements in it.

Reply
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>6A464E50-300A-11DE-B776-80000000AE6H</clTRID>
      <svTRID>7A7534DB-F45F-4E70-84D5-ABA480A5D101</svTRID>
    </trID>
  </response>
</epp>

Info

Request
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <info>
      <domain:info xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
      </domain:info>
    </info>
    <clTRID>3F169D90-411F-11DE-84A7-80000000274B</clTRID>
  </command>
</epp>
Reply
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
      <domain:infData>
        <domain:name>example.com</domain:name>
        <domain:roid>762473_DOMAIN-OPENPROV</domain:roid>
        <domain:status s="ok"/>
        <domain:registrant>OT001234-NL</domain:registrant>
        <domain:contact type="admin">OM901234-US</domain:contact>
        <domain:contact type="tech">DD01234-NL</domain:contact>
        <domain:ns>
          <domain:hostAttr>
            <domain:hostName>ns1.example.com</domain:hostName>
            <domain:hostAddr ip="v4">123.123.123.123</domain:hostAddr>
          </domain:hostAttr>
          <domain:hostAttr>
            <domain:hostName>ns2.example.com</domain:hostName>
            <domain:hostAddr ip="v4">234.234.234.234</domain:hostAddr>
          </domain:hostAttr>
        </domain:ns>
        <domain:clID>username</domain:clID>
        <domain:crDate>2012-03-28T14:08:53.0Z</domain:crDate>
        <domain:exDate>2013-03-28T12:08:54.0Z</domain:exDate>
        <domain:authInfo>
          <domain:pw>AUTHCODE</domain:pw>
        </domain:authInfo>
      </domain:infData>
    </resData>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:resData>
          <op:infData>
            <op:domain>
              <op:isLocked>false</op:isLocked>
              <op:reDate>2012-03-28T14:08:49.0Z</op:reDate>
              <op:renewalDate>2013-03-28T12:08:54.0Z</op:renewalDate>
              <op:canRenew>true</op:canRenew>
              <op:autorenew>default</op:autorenew>
              <op:useDomicile>false</op:useDomicile>
            </op:domain>
          </op:infData>
        </op:resData>
      </op:ext>
    </extension>
    <trID>
      <clTRID>3F169D90-411F-11DE-84A7-80000000274B</clTRID>
      <svTRID>CDAE7C10-A3D0-4EA7-B290-2E1A380A0690</svTRID>
    </trID>
  </response>
</epp>

Renew

Request
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <renew>
      <domain:renew xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
        <domain:curExpDate>2012-02-18</domain:curExpDate>
        <domain:period unit="y">1</domain:period>
      </domain:renew>
    </renew>
    <clTRID>EF1F57D0-3013-11DE-8D9E-8000000041FC</clTRID>
  </command>
</epp>
  • <domain:curExpDate/> is required by EPP protocol but not used by current version of Openprovider software
Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData>
      <domain:renData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
        <domain:exDate>2012-02-18T16:02:04.0Z</domain:exDate>
      </domain:renData>
    </resData>
    <trID>
      <clTRID>EF1F57D0-3013-11DE-8D9E-8000000041FC</clTRID>
      <svTRID>F7F750BE-3014-11DE-A523-A02790CC78DB</svTRID>
    </trID>
  </response>
</epp>

Transfer

Request Transfer

Request
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
  <command>
    <transfer op="request">
      <domain:transfer>
        <domain:name>example.de</domain:name>
        <domain:authInfo>
          <domain:pw>AUTHCODE</domain:pw>
        </domain:authInfo>
      </domain:transfer>
    </transfer>
    <extension>
      <op:ext>
        <op:transfer>
          <op:domain>
            <op:registrant>FL902042-US</op:registrant>
            <op:contact type="admin">FL902042-US</op:contact>
            <op:contact type="tech">FL902042-US</op:contact>
            <op:ns>
              <domain:hostAttr>
                <domain:hostName>ns1.example.de</domain:hostName>
                <domain:hostAddr ip="v6">2607:f0d0:1002:51::4</domain:hostAddr>
              </domain:hostAttr>
              <domain:hostAttr>
                <domain:hostName>ns2.example.de</domain:hostName>
                <domain:hostAddr ip="v4">123.123.123.123</domain:hostAddr>
              </domain:hostAttr>
            </op:ns>
            <op:autorenew>on</op:autorenew>
            <op:nsGroup></op:nsGroup>
            <op:useDomicile>true</op:useDomicile>
            <op:comments>ANY COMMENT  HERE</op:comments>
            <op:promoCode>PROMOCODE</op:promoCode>
            <op:nsTemplateName></op:nsTemplateName>
          </op:domain>
        </op:transfer>
      </op:ext>
    </extension>
    <clTRID>EF1F57D0-3013-11DE-8D9E-8000000041FC</clTRID>
  </command>
</epp>
  • <domain:contact>: the only supported contact types are admin and tech
  • <op:autorenew>: accepted values: on, off, default
  • <op:nsTemplateName>: can be used if <op:nsGroup> is dns-openprovider
Reply
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
      <domain:trnData>
        <domain:name>example.de</domain:name>
        <domain:trStatus>pending</domain:trStatus>
        <domain:reID>username</domain:reID>
        <domain:reDate>2012-08-17T11:21:13.0Z</domain:reDate>
        <domain:acID>UNSUPPORTED</domain:acID>
        <domain:acDate>2012-08-17T11:21:13.0Z</domain:acDate>
        <domain:exDate>2012-08-17T11:21:13.0Z</domain:exDate>
      </domain:trnData>
    </resData>
    <trID>
      <clTRID>EF1F57D0-3013-11DE-8D9E-8000000041FC</clTRID>
      <svTRID>BE4FAFBF-177D-4632-9CE0-F5C02C4AAFB7</svTRID>
    </trID>
  </response>
</epp>
  • Not supported output parameters: acID, acDate, exDate
  • trStatus is restricted to 3 values:
    • serverApproved: the transfer is approved
    • pending
    • serverCancelled: the transfer is rejected or cancelled

Cancel Transfer

Not available

Approve Transfer

Request
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <transfer op="approve">
      <domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
      </domain:transfer>
    </transfer>
    <clTRID>EF1F57D0-3013-11DE-8D9E-8000000041FC</clTRID>
  </command>
</epp>
Reply
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>EF1F57D0-3013-11DE-8D9E-8000000041FC</clTRID>
      <svTRID>DCE0BD68-769B-4EA4-AFF1-CC40DFEC578D</svTRID>
    </trID>
  </response>
</epp>

Query Transfer Status

Request
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <transfer op="query">
      <domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
      </domain:transfer>
    </transfer>
    <clTRID>EF1F57D0-3013-11DE-8D9E-8000000041FC</clTRID>
  </command>
</epp>
Reply
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
      <domain:trnData>
        <domain:name>example.com</domain:name>
        <domain:trStatus>serverApproved</domain:trStatus>
        <domain:reID>username</domain:reID>
        <domain:reDate>2012-07-17T14:41:04.0Z</domain:reDate>
        <domain:acID>UNSUPPORTED</domain:acID>
        <domain:acDate>2012-07-17T14:41:21.0Z</domain:acDate>
        <domain:exDate>2012-07-17T14:41:21.0Z</domain:exDate>
      </domain:trnData>
    </resData>
    <trID>
      <clTRID>EF1F57D0-3013-11DE-8D9E-8000000041FC</clTRID>
      <svTRID>31ED84C0-CADA-45BA-87A1-85238465CF30</svTRID>
    </trID>
  </response>
</epp>
  • Not supported output parameters: acID, acDate, exDate
  • trStatus is restricted to 3 values:
    • serverApproved: the transfer is approved
    • pending
    • serverCancelled: the transfer is rejected or cancelled

Update

Request
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <update>
      <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
        <domain:add>
          <domain:ns>
            <domain:hostAttr>
              <domain:hostName>ns1.example.com</domain:hostName>
              <domain:hostAddr ip="v6">2607:f0d0:1002:51::4</domain:hostAddr>
            </domain:hostAttr>
          </domain:ns>
          <domain:contact type="tech">DD004372-NL</domain:contact>
          <domain:status s="clientTransferProhibited"/>
        </domain:add>
        <domain:rem>
          <domain:ns>
            <domain:hostAttr>
              <domain:hostName>ns2.example.com</domain:hostName>
            </domain:hostAttr>
          </domain:ns>
          <domain:contact type="tech">JL901992-NL</domain:contact>
        </domain:rem>
        <domain:chg>
          <domain:registrant>OT000288-NL</domain:registrant>
          <domain:authInfo>
            <domain:pw/>
          </domain:authInfo>
        </domain:chg>
      </domain:update>
    </update>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:update>
          <op:domain>
            <op:chg>
              <op:autorenew>on</op:autorenew>
              <op:useDomicile>false</op:useDomicile>
              <op:comments>Custom comment</op:comments>
              <op:nsGroup></op:nsGroup>
              <op:resetAuthCode>true</op:resetAuthCode>
            </op:chg>
          </op:domain>
        </op:update>
      </op:ext>
    </extension>
    <clTRID>6A464E50-300A-11DE-B776-80000000AE6H</clTRID>
  </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>6A464E50-300A-11DE-B776-80000000AE6H</clTRID>
      <svTRID>E4509728-38CC-462F-BF9C-D7AFDB5420DF</svTRID>
    </trID>
  </response>
</epp>
  • <contact:pw/> element is NOT used but required by EPP protocol; please leave it blank

Support for new gTLDs and their launch phases

General information
  • Openprovider follows the existing RFCs for launch phase support, although there are some small changes because of the registrar situation (instead of registry situation). See examples below.
  • The domain:check can optionally be used to see if trademark claims applies; if so, you know that Openprovider will send a trademark claims notice to the proposed domain holder. The domain:create command is not different for a domain with or without claims.
  • The domain:create command may contain the launch phase, see examples below. The supported launch phases are the following; for exact dates and times per extension, please look at the TLD detail pages on our website:
    • <launch:phase>sunrise</launch:phase> (base64 encoded SMD file required); accepted during Sunrise
    • <launch:phase>landrush</launch:phase>; accepted during Landrush
    • <launch:phase>claims</launch:phase>; accepted during trademark claims phase
    • <launch:phase name="preregistration">custom</launch:phase>; accepted until 3 hours before General Availability starts
Example check command+response to check if trademark claims applies
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <check>
      <domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>trademark.tld</domain:name>
      </domain:check>
    </check>
    <extension>
      <launch:check xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" type="claims">
        <launch:phase>claims</launch:phase>
      </launch:check>
    </extension>
    <clTRID>C68D3D5A-2F3C-11DE-8EF9-80000000DC4F</clTRID>
  </command>
</epp>

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <extension>
      <launch:chkData xmlns:launch="urn:ietf:params:xml:ns:launch-1.0">
        <launch:phase>claims</launch:phase>
        <launch:cd>
          <launch:name exists="true">trademark.tld</launch:name>
        </launch:cd>
      </launch:chkData>
    </extension>
    <trID>
      <clTRID>C68D3D5A-2F3C-11DE-8EF9-80000000DC4F</clTRID>
      <svTRID>37080027-DB39-416A-A82E-AF793FB14AE9</svTRID>
    </trID>
  </response>
</epp>
Example create command for a Sunrise application
<?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="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.tld</domain:name>
        ... (other standard domain attributes)
      </domain:create>
    </create>
    <extension>
      <launch:create xmlns:launch="urn:ietf:params:xml:ns:launch-1.0">
        <launch:phase>sunrise</launch:phase>
        <smd:encodedSignedMark xmlns:smd="urn:ietf:params:xml:ns:signedMark-1.0">
          ... (base64-encoded SMD file)
        </smd:encodedSignedMark>
      </launch:create>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:create>
          <op:domain>
            ... (optional standard Openprovider extensions)
          </op:domain>
        </op:create>
      </op:ext>
    </extension>
    <clTRID>3F169D90-411F-11DE-84A7-80000000274B</clTRID>
  </command>
</epp>
Example create extension for Landrush, claims and pre-registration orders
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  ...
    <extension>
      <launch:create xmlns:launch="urn:ietf:params:xml:ns:launch-1.0">
        <launch:phase>landrush</launch:phase>
      </launch:create>
  ...

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  ...
    <extension>
      <launch:create xmlns:launch="urn:ietf:params:xml:ns:launch-1.0">
        <launch:phase>claims</launch:phase>
      </launch:create>
  ...

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  ...
    <extension>
      <launch:create xmlns:launch="urn:ietf:params:xml:ns:launch-1.0">
        <launch:phase name="preregistration">custom</launch:phase>
      </launch:create>
  ...

Contact

Check

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-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <command>
    <check>
      <contact:check xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
        <contact:id>IB000543-NL</contact:id>
        <contact:id>IB000544-NL</contact:id>
      </contact:check>
    </check>
    <clTRID>30F11A90-2FFB-11DE-ADDE-80000000D51D</clTRID>
  </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
      <contact:chkData>
        <contact:cd>
          <contact:id avail="0">IB000543-NL</contact:id>
        </contact:cd>
        <contact:cd>
          <contact:id avail="1">IB000544-NL</contact:id>
        </contact:cd>
      </contact:chkData>
    </resData>
    <trID>
      <clTRID>30F11A90-2FFB-11DE-ADDE-80000000D51D</clTRID>
      <svTRID>32C1BC3A-2FFB-11DE-B49B-B7731FA00EDE</svTRID>
    </trID>
  </response>
</epp>

Create

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-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <command>
    <create>
      <contact:create xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
        <contact:id>IGNORED</contact:id>
        <contact:postalInfo type="loc">
          <contact:name>John Doe</contact:name>
          <contact:org>Example Inc.</contact:org>
          <contact:addr>
            <contact:street>Main street 15</contact:street>
            <contact:city>Rotterdam</contact:city>
            <contact:sp>Zuid-Holland</contact:sp>
            <contact:pc>3024 BN</contact:pc>
            <contact:cc>NL</contact:cc>
          </contact:addr>
        </contact:postalInfo>
        <contact:voice>+31.104482299</contact:voice>
        <contact:fax>+31.102440250</contact:fax>
        <contact:email>jdoe@example.com</contact:email>
        <contact:authInfo>
          <contact:pw/>
        </contact:authInfo>
      </contact:create>
    </create>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:create>
          <op:contact>
            <op:vat>NL09507882B01</op:vat>
            <op:comments>Custom comment</op:comments>
            <op:gender>male</op:gender>
            <op:birthDate>1982-10-23</op:birthDate>
            <op:birthCity>Amsterdam</op:birthCity>
            <op:birthCountry>NL</op:birthCountry>
            <op:birthAddress>Hoofdstraat 32</op:birthAddress>
            <op:birthState>Nood-Holland</op:birthState>
            <op:birthZipcode>1000 AA</op:birthZipcode>
            <op:companyRegistrationCity>Amsterdam</op:companyRegistrationCity>
            <op:companyRegistrationNumber>123456</op:companyRegistrationNumber>
            <op:companyRegistrationSubscriptionDate>2011-10-10</op:companyRegistrationSubscriptionDate>
            <op:headquartersAddress></op:headquartersAddress>
            <op:headquartersCity></op:headquartersCity>
            <op:headquartersCountry></op:headquartersCountry>
            <op:headquartersState></op:headquartersState>
            <op:headquartersZipcode></op:headquartersZipcode>
            <op:socialSecurityNumber></op:socialSecurityNumber>
            <op:passportNumber></op:passportNumber>
          </op:contact>
        </op:create>
      </op:ext>
    </extension>
    <clTRID>30FC8ABC-2FFE-11DE-9786-80000000A8C5</clTRID>
  </command>
</epp> 
  • <contact:postalInfo> type attribute is restricted to only one value: loc
  • <contact:id> is ignored by Openprovider
  • <contact:pw> is ignored by Openprovider but required by the EPP protocol; please leave it blank
  • <contact:disclose> is ignored by Openprovider
Response
<?xmlversion="1.0" encoding="UTF-8"?>
<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:id>IB000545-NL</contact:id>
        <contact:crDate>2012-07-23T11:59:29.0Z</contact:crDate>
      </contact:creData>
    </resData>
    <trID>
      <clTRID>30FC8ABC-2FFE-11DE-9786-80000000A8C5</clTRID>
      <svTRID>331E69A0-2FFE-11DE-B163-D0A51393EAB9</svTRID>
    </trID>
  </response>
</epp>

Delete

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-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <command>
    <delete>
      <contact:delete xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
        <contact:id>IB000545-NL</contact:id>
      </contact:delete>
    </delete>
    <clTRID>FDB67388-2FFE-11DE-970B-80000000568C</clTRID>
  </command>
</epp>
Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <resultcode="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trId>
      <clTRID>FDB67388-2FFE-11DE-970B-80000000568C</clTRID>
      <svTRID>29B5C6C2-3005-11DE-9BD1-C9EF1D79318A</svTRID>
    </trId>
  </response>
</epp>


Info

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-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <command>
    <info>
      <contact:info xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
        <contact:id>IB000545-NL</contact:id>
      </contact:info>
    </info>
    <clTRID>6662D288-2FFE-11DE-A0EB-80000000AAB4</clTRID>
  </command>
</epp>
Response
<?xml version="1.0" -encoding="UTF-8"?>
<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>IB000545-NL</contact:id>
        <contact:roid>495726825335031_CONTACT-OPENPROV</contact:roid>
        <contact:status s="ok"/>
        <contact:postalInfo>
          <contact:name>John Doe</contact:name>
          <contact:org>Example Inc.</contact:org>
          <contact:addr>
            <contact:street>Main Street 15</contact:street>
            <contact:city>Rotterdam</contact:city>
            <contact:sp>Zuid-Holland</contact:sp>
            <contact:pc>3024 BN</contact:pc>
            <contact:cc>NL</contact:cc>
          </contact:addr>
        </contact:postalInfo>
        <contact:voice>+31.104482299</contact:voice>
        <contact:fax>+31.102440250</contact:fax>
        <contact:email>jdoe@example.com</contact:email>
        <contact:clID>username</contact:clID>
        <contact:crID>UNSUPPORTED</contact:crID>
        <contact:crDate>2012-07-20T07:59:26.0Z</contact:crDate>
        <contact:upID>username</contact:upID>
        <contact:upDate>2012-07-20T07:59:26.0Z</contact:upDate>
      </contact:infData>
    </resData>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:resData>
          <op:infData>
            <op:contact>
              <op:gender>male</op:gender>
              <op:birthAddress></op:birthAddress>
              <op:birthCity></op:birthCity>
              <op:birthCountry></op:birthCountry>
              <op:birthDate>1982-10-23</op:birthDate>
              <op:birthState></op:birthState>
              <op:birthZipcode></op:birthZipcode>
              <op:companyRegistrationCity>Amsterdam</op:companyRegistrationCity>
              <op:companyRegistrationNumber>123456</op:companyRegistrationNumber>
              <op:companyRegistrationSubscriptionDate>2011-10-10</op:companyRegistrationSubscriptionDate>
              <op:headquartersAddress></op:headquartersAddress>
              <op:headquartersCity></op:headquartersCity>
              <op:headquartersCountry></op:headquartersCountry>
              <op:headquartersState></op:headquartersState>
              <op:headquartersZipcode></op:headquartersZipcode>
              <op:passportNumber></op:passportNumber>
              <op:socialSecurityNumber></op:socialSecurityNumber>
            </op:contact>
          </op:infData>
        </op:resData>
      </op:ext>
    </extension>
    <trId>
      <clTRID>6662D288-2FFE-11DE-A0EB-80000000AAB4</clTRID>
      <svTRID>6BFBA8FA-2FFE-11DE-A1D9-ED9826062824</svTRID>
    </trId>
  </response>
</epp>
  • Not supported output values: crID, crDate, upDate

Transfer

Not available

Update

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-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <command>
    <update>
      <contact:update xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
        <contact:id>IB000545-NL</contact:id>
        <contact:chg>
          <contact:postalInfo type="loc">
            <contact:org/>
            <contact:addr>
              <contact:street>Street 18</contact:street>
              <contact:city>Amsterdam</contact:city>
              <contact:sp>NH</contact:sp>
              <contact:pc>1000 AA</contact:pc>
              <contact:cc>NL</contact:cc>
            </contact:addr>
          </contact:postalInfo>
          <contact:voice>+31.201234567</contact:voice>
          <contact:fax/>
        </contact:chg>
      </contact:update>
    </update>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:update>
          <op:contact>
            <op:chg>
              <op:vat>NL123245443B01</op:vat>
              <op:comments></op:comments>
              <op:birthAddress></op:birthAddress>
              <op:birthCity></op:birthCity>
              <op:birthCountry></op:birthCountry>
              <op:birthDate>1982-10-23</op:birthDate>
              <op:birthState></op:birthState>
              <op:birthZipcode></op:birthZipcode>
              <op:companyRegistrationCity></op:companyRegistrationCity>
              <op:companyRegistrationNumber></op:companyRegistrationNumber>
              <op:companyRegistrationSubscriptionDate>2011-10-10</op:companyRegistrationSubscriptionDate>
              <op:headquartersAddress></op:headquartersAddress>
              <op:headquartersCity></op:headquartersCity>
              <op:headquartersCountry></op:headquartersCountry>
              <op:headquartersState></op:headquartersState>
              <op:headquartersZipcode></op:headquartersZipcode>
              <op:passportNumber></op:passportNumber>
              <op:socialSecurityNumber></op:socialSecurityNumber>
            </op:chg>
          </op:contact>
        </op:update>
      </op:ext>
    </extension>
    <clTRID>C69B3942-2FFE-11DE-A4BB-8000000034E6</clTRID>
  </command>
</epp>
  • <contact:postalInfo> type attribute is restricted to only one value: loc
  • <contact:status> and it's attributes are ignored by Openprovider
  • <contact:pw> is ignored by Openprovider but required by EPP protocol; please leave it blank
  • <contact:disclose> is ignored by Openprovider
Response
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trId>
      <clTRID>C69B3942-2FFE-11DE-A4BB-8000000034E6</clTRID>
      <svTRID>D70E91A2-2FFE-11DE-9BEA-D9241CA305BD</svTRID>
    </trId>
  </response>
</epp>

Host

Not available

Poll

REQ

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-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <command>
    <poll op="req"/>
    <clTRID>96ABFF8A-2385-11DE-A5FC-8000000002DF</clTRID>
  </command>
</epp>

Reply

Every reply message will contain a section <op:polData/> that includes the following required fields:

  • <op:action/> stands for action on the domain:
    • create - domain registration
    • trade - incoming trade of domain
    • outgoing_trade - outgoing trade of domain
    • transfer - incoming trade of domain
    • outgoing_transfer - outgoing trade of domain
    • delete - domain deletion
    • update - update domain's information
  • <op:status/> stands for a status of the operation:
    • complete - operation completed successfully
    • pending - operation in progress
    • onhold - server is waiting for operation issuer input
    • reject - operation is rejected by server or registry
    • error - operation failed because of errors
    • cancel - operation is cancelled by issuer

More information can be found in the optional elements:

  • <op:transaction/> - transaction alphabetic ID
  • <op:title/> - transaction title
  • <op:description/> - short transaction description
  • <op:registryMessage/> - registry message containing more information
  • <op:comments/> - can contain Openprovider's comments, advices, instructions
  • <op:attachment/> - attachment element(s) can contain any base64 encoded documents received from registry


Reply (CREATE)
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1301">
      <msg>Command completed successfully; ack to dequeue</msg>
    </result>
    <msgQ count="1" id="129">
      <qDate>2012-08-05T12:42:04.0Z</qDate>
      <msg>TRANSACTION</msg>
    </msgQ>
    <resData>
      <domain:creData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
        <domain:crDate>2012-08-01T20:30:20.0Z</domain:crDate>
        <domain:exDate>2013-08-31T20:40:20.0Z</domain:exDate>
      </domain:creData>
    </resData>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:resData>
          <op:creData>
            <op:domain>
              <op:polData>
                <op:action>ACTION</op:action>
                <op:status>STATUS</op:status>
                <op:transaction>TRANSACTION</op:transaction>
                <op:title>MESSAGE TITLE</op:title>
                <op:description>MESSAGE DESCRIPTION</op:description>
                <op:registryMessage>REGISTRY MESSAGE</op:registryMessage>
                <op:attachment>
                  <op:name>FILE NAME</op:name>
                  <op:body>BASE64 ENCODED FILE CONTENT</op:body>
                </op:attachment>
              </op:polData>
            </op:domain>
          </op:creData>
        </op:resData>
      </op:ext>
    </extension>
    <trId>
      <clTRID>96ABFF8A-2385-11DE-A5FC-8000000002DF</clTRID>
      <svTRID>D0D58AF1-E771-4D0E-8653-8B58ED909DE7</svTRID>
    </trId>
  </response>
</epp>
Reply (UPDATE/DELETE)
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1301">
      <msg>Command completed successfully; ack to dequeue</msg>
    </result>
    <msgQ count="4" id="132">
      <qDate>2012-08-05T12:42:06.0Z</qDate>
      <msg>TRANSACTION</msg>
    </msgQ>
    <resData>
      <domain:panData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name paResult="0">example.nl</domain:name>
        <domain:paTRID>
          <clTRID>6A464E50-300A-11DE-B776-80000000AE6H</clTRID>
          <svTRID>733582A7-1428-4F1C-8A02-CAEC83A58F8E</svTRID>
        </domain:paTRID>
        <domain:paDate>2012-08-05T12:42:05.0Z</domain:paDate>
      </domain:panData>
    </resData>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:resData>
          <op:panData>
            <op:domain>
              <op:polData>
                <op:action>ACTION</op:action>
                <op:status>STATUS</op:status>
                <op:transaction>TRANSACTION</op:transaction>
                <op:title>MESSAGE TITLE</op:title>
                <op:description>MESSAGE DESCRIPTION</op:description>
                <op:registryMessage>REGISTRY MESSAGE</op:registryMessage>
                <op:attachment>
                  <op:name>FILE NAME</op:name>
                  <op:body>BASE64 ENCODED FILE CONTENT</op:body>
                </op:attachment>
              </op:polData>
            </op:domain>
          </op:panData>
        </op:resData>
      </op:ext>
    </extension>
    <trId>
      <clTRID>96ABFF8A-2385-11DE-A5FC-8000000002DF</clTRID>
      <svTRID>09826A4F-4620-44CC-B73C-400D03FEAFC3</svTRID>
    </trId>
  </response>
</epp>
Reply (TRANSFER)
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1301">
      <msg>Command completed successfully; ack to dequeue</msg>
    </result>
    <msgQ count="3" id="135">
      <qDate>2012-08-05T14:44:40.0Z</qDate>
      <msg>TRANSACTION</msg>
    </msgQ>
    <resData>
      <domain:trnData>
        <domain:name>example.nl</domain:name>
        <domain:trStatus>serverCancelled</domain:trStatus>
        <domain:reID>username</domain:reID>
        <domain:reDate>2012-09-01T20:30:20.0Z</domain:reDate>
        <domain:acID>UNSUPPORTED</domain:acID>
        <domain:acDate>2012-08-05T14:44:43.0Z</domain:acDate>
        <domain:exDate>2013-10-31T20:40:20.0Z</domain:exDate>
      </domain:trnData>
    </resData>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:resData>
          <op:trnData>
            <op:domain>
              <op:polData>
                <op:action>ACTION</op:action>
                <op:status>STATUS</op:status>
                <op:transaction>TRANSACTION</op:transaction>
                <op:title>MESSAGE TITLE</op:title>
                <op:description>MESSAGE DESCRIPTION</op:description>
                <op:registryMessage>REGISTRY MESSAGE</op:registryMessage>
                <op:attachment>
                <op:name>FILE NAME</op:name>
                <op:body>BASE64 ENCODED FILE CONTENT</op:body>
                </op:attachment>
              </op:polData>
            </op:domain>
          </op:trnData>
        </op:resData>
      </op:ext>
    </extension>
    <trId>
      <clTRID>96ABFF8A-2385-11DE-A5FC-8000000002DF</clTRID>
      <svTRID>09826A4F-4620-44CC-B73C-400D03FEAFC3</svTRID>
    </trId>
  </response>
</epp>


Reply (TRADE)
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1301">
      <msg>Command completed successfully; ack to dequeue</msg>
    </result>
    <msgQ count="3" id="131">
      <qDate>2012-08-05T12:42:06.0Z</qDate>
      <msg>TRANSACTION</msg>
    </msgQ>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:resData>
          <op:trdData>
            <op:domain>
              <op:name>example.nl</op:name>
              <op:trStatus>pending</op:trStatus>
              <op:reID>username</op:reID>
              <op:reDate>2012-08-01T20:30:20.0Z</op:reDate>
              <op:acID>UNSUPPORTED</op:acID>
              <op:acDate>2012-08-05T12:42:08.0Z</op:acDate>
              <op:exDate>2013-10-31T20:40:20.0Z</op:exDate>
              <op:polData>
                <op:action>ACTION</op:action>
                <op:status>STATUS</op:status>
                <op:transaction>TRANSACTION</op:transaction>
                <op:title>MESSAGE TITLE</op:title>
                <op:description>MESSAGE DESCRIPTION</op:description>
                <op:registryMessage>REGISTRY MESSAGE</op:registryMessage>
                <op:attachment>
                  <op:name>FILE NAME</op:name>
                  <op:body>BASE64 ENCODED FILE CONTENT</op:body>
                </op:attachment>
              </op:polData>
            </op:domain>
          </op:trdData>
        </op:resData>
      </op:ext>
    </extension>
    <trId>
      <clTRID>96ABFF8A-2385-11DE-A5FC-8000000002DF</clTRID>
      <svTRID>F83DDF05-F54C-44DD-A55E-172CA7EE2819</svTRID>
    </trId>
  </response>
</epp>
Reply (OUTGOING TRANSFER/TRADE)
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1301">
      <msg>Command completed successfully; ack to dequeue</msg>
    </result>
    <msgQ count="3" id="140">
      <qDate>2012-08-05T14:57:14.0Z</qDate>
      <msg>TRANSACTION</msg>
    </msgQ>
    <resData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
      <domain:infData>
        <domain:name>example.nl</domain:name>
        <domain:roid>140_DOMAIN-OPENPROV</domain:roid>
        <domain:status s="inactive"/>
        <domain:clID>username</domain:clID>
      </domain:infData>
    </resData>
    <extension>
      <op:ext xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0">
        <op:resData>
          <op:infData>
            <op:domain>
              <op:polData>
                <op:action>ACTION</op:action>
                <op:status>STATUS</op:status>
                <op:transaction>TRANSACTION</op:transaction>
                <op:title>MESSAGE TITLE</op:title>
                <op:description>MESSAGE DESCRIPTION</op:description>
                <op:registryMessage>REGISTRY MESSAGE</op:registryMessage>
                <op:attachment>
                  <op:name>FILE NAME</op:name>
                  <op:body>BASE64 ENCODED FILE CONTENT</op:body>
                </op:attachment>
              </op:polData>
            </op:domain>
          </op:infData>
        </op:resData>
      </op:ext>
    </extension>
    <trId>
      <clTRID>96ABFF8A-2385-11DE-A5FC-8000000002DF</clTRID>
      <svTRID>4C094AED-DC31-49D1-A462-AB68C5956C3E</svTRID>
    </trId>
  </response>
</epp>

ACK

Request
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <poll op="ack" msgID="71"/>
    <clTRID>ABC-12346</clTRID>
  </command>
</epp>
Reply (queue has messages)
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <msgQ count="1" id="70"/>
    <trId>
      <clTRID>ABC-12346</clTRID>
      <svTRID>CBCEC8DB-F1B4-40DB-9B4D-E21EF4DCB2B6</svTRID>
    </trId>
  </response>
</epp>
Reply (queue empty)
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1300">
      <msg>Command completed successfully; no messages</msg>
    </result>
    <trId>
      <clTRID>ABC-12346</clTRID>
      <svTRID>4931F00A-F5DB-4709-A377-95C30F4CF4FF</svTRID>
    </trId>
  </response>
</epp>
Views
Personal tools