Sie sind auf Seite 1von 210

Registration Guidelines for .

eu
Version 1.3D

Part II:

EPP-XML
3 June 2010

EPP Guidelines

Change log
Version 1.3D Corrected contact update XML syntax Added DNSSEC related commands and references: Create Keygroup, Delete Keygroup, Update Keygroup, Check Keygroup and Info Keygroup Added DNSSEC related examples to: Create Domain, Update Domain, Trade Domain, Transfer Domain, Check Domain, Transfer from Quarantine Added new Command: Dynamic Updator Results Changed maximum number of characters for a name server to 255 Added more examples to: Transfer domain, Update Domain, Update nsgroup, Delete nsgroup. Version 1.3C Changed maximum number of characters for Name server group to 50 Added a remark in the XML part Added IDN examples in CREATE DOMAIN, CHECK DOMAIN, INFO DOMAIN VERSION Added IDN extension description Corrected description of <eurid:nbrPromoCreditsAvailable> Simplified command examples

Version 1.3B Added remark for <hostAttr> in CREATE DOMAIN Added example regarding server status TransferProhibited in TRANSFER DOMAIN, TRADE DOMAIN, CHECK DOMAIN VERSION 2, INFO DOMAIN VERSION 2 Added new command example in CHECK CONTACT FOR TRANSFER Added extra information server reply INFO DOMAIN VERSION 2 Added new server reply INFO DOMAIN VERSION 1 for domain ON HOLD Version 1.3A Added example of IDN name server in CREATE DOMAIN Added forced deletes in DELETE DOMAIN Added TRANSFER REMINDER Changed exDate from anniversary date to renewal date in INFO DOMAIN Added INFO REGISTRAR Added POLL Added ADDENDUM 3: Overview of EURid return codes in EPP Poll Version 1.2B Added information on time zone (GETTING STARTED) Added ga and mt in Addendum 2: List of all accepted language codes Version 1.2A Added registrant authorised transfer (TRANSFER DOMAIN and TRANSFER FROM QUARANTINE) Added cancellation of pending trades and transfers (TRANSFER DOMAIN, TRANSFER FROM QUARANTINE, TRADE DOMAIN) Added check contact for transfer (CHECK CONTACT FOR TRANSFER) Added information on rate-limiting (CHECK DOMAIN and INFO DOMAIN) Changed return values for INFO DOMAIN in case the domain name is not registered with the querying registrar Removed screenshots of end-user confirmation (TRANSFER DOMAIN and TRADE DOMAIN)

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 2

EPP Guidelines

Version 1.1B Added part Number of parallel connections (GETTING STARTED) Added info about Monitored Update (INFO CONTACT and UPDATE CONTACT commands) CONTACT object: name field is limited to 50 characters and org field to 100 characters; no truncation of the input Added information that minor changes of the registrants name field are possible (UPDATE CONTACT) Various typos Version 1.1A Added Table of contents Incorporated text from release notes 5.1 (INFO DOMAIN and CHECK DOMAIN commands) Version 1.0F Corrections in update domain, check domain Output of EPP commands updated to new server syntax Various typos

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 3

EPP Guidelines

Table of Contents
INTRODUCTION................................................................................................................................. 6 GETTING STARTED .......................................................................................................................... 7 UserID and password .......................................................................................................................7 Time zone .........................................................................................................................................7 About EPP and the current EURid system.......................................................................................7 Conceptual differences ................................................................................................................ 7 Data differences........................................................................................................................... 8 Transactions .....................................................................................................................................9 Transport and security....................................................................................................................10 Number of parallel connections ......................................................................................................10 Versions & ports .............................................................................................................................10 EPP commands ..............................................................................................................................11 XML ................................................................................................................................................11 Command format............................................................................................................................13 Client EPP command................................................................................................................. 13 Server EPP response ................................................................................................................ 14 Object extension ........................................................................................................................ 15 DESCRIPTION OF THE TRANSACTIONS ...................................................................................... 19 Hello / Greeting...............................................................................................................................20 Login ...............................................................................................................................................22 Logout.............................................................................................................................................24 Create contact ................................................................................................................................25 Update contact ...............................................................................................................................35 Delete contact.................................................................................................................................44 Info contact .....................................................................................................................................47 Create nsgroup...............................................................................................................................54 Update nsgroup ..............................................................................................................................57 Delete nsgroup ...............................................................................................................................59 Check nsgroup ...............................................................................................................................62 Info nsgroup....................................................................................................................................64 Create domain ................................................................................................................................66 Update domain ...............................................................................................................................90 Delete domain ................................................................................................................................99 Undelete domain ..........................................................................................................................102 Transfer domain ...........................................................................................................................104 Transfer from quarantine ..............................................................................................................116 Trade domain ...............................................................................................................................122 Transfer reminder .........................................................................................................................129 Check contact for transfer ............................................................................................................132 Reactivate domain........................................................................................................................135 Check domain...............................................................................................................................137 Info domain...................................................................................................................................145 Info registrar .................................................................................................................................176 Poll................................................................................................................................................179 Create keygroup ...........................................................................................................................183 Update keygroup ..........................................................................................................................191 Delete keygroup ...........................................................................................................................196 Check keygroup............................................................................................................................198 Info keygroup................................................................................................................................200 Dynamic updater results...............................................................................................................202 UNIMPLEMENTED EPP COMMANDS .......................................................................................... 206 Renew...........................................................................................................................................206 Check contact...............................................................................................................................206 Transfer contact............................................................................................................................206 ADDENDUM 1: List of all accepted country codes for registrant contacts ..................................... 207

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 4

EPP Guidelines

ADDENDUM 2: List of all accepted language codes for contacts and <evidence-lang> ............... 208 ADDENDUM 3: Overview of EURid return codes in EPP Poll ....................................................... 209

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 5

EPP Guidelines

EPP XML INTRODUCTION


EURid has implemented an XML based interface to allow registrars to create programs that can work interactively with the automatic registration system. EPP is a protocol for registering and managing domain names (and not necessarily only domain names) in a very generic way. Each registry has its own way of working, which means that some features will apply while others will have a slightly different implementation. That's why the designers of EPP have made it "extensible" from the very beginning. Due to some fundamental differences in the conceptual model and due to differences in the data format of some fields, a few compromises have been made. This section describes the different transactions that you need to set up to work with the EPP interface. For each possible command, we will briefly look at the EPP protocol and relate it to the EURid situation. As you will discover, there are some differences that need to be taken care of, some because of the legal framework we are working in. We tried to keep as close to the standard as possible, but certain policy decisions for the .eu domain space simply do not fit within the EPP framework. XML schemas are a means of exactly describing the possible content of a XML document. As such, we refer to the schema definitions that describe EPPs syntax. When working with XML, you are expected to send a valid document. That's why you should validate your document against the schemas that are provided. As we cannot compel you to do it, the EURid EPP system will do a validation as the first step of the handling of the XML document, using a validating XML parser. Invalid documents will generate an error message from the validation tool back to the sender. It is obvious that this will generate unnecessary load on the server and will therefore deteriorate the performance of the system. EURid does not provide any client software. It is the responsibility of the registrar to create its own interface to communicate with the registration application.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 6

EPP Guidelines

GETTING STARTED UserID and password


To access the EPP system, you need to use a userid and password. The userid is the registrar id that you have been attributed upon registration as a registrar. The password is the one that you have chosen when you activated your account.

Time zone
EURid's EPP system returns the date and time in UTC, as specified by the EPP standard, but the registry uses local Belgian time (CET/CEST) for all operations. Please note that this can have an impact on scheduled commands which might end up being executed on a different date when scheduling transactions close to midnight (e.g. a command scheduled at 2008-0831T23:59:59.000Z would be executed at 2008-09-01 01:59:59.000 CEST). Normally Belgian time is UTC +1h. During daylight savings time it is UTC +2h.

About EPP and the current EURid system


The schemas describe ALL VALID documents (as far as the protocol is concerned). The Extensible Provisioning Protocol tries to be generic enough, to accommodate for most situations with TLD's that have different procedures. Furthermore, EPP allows for extending the protocol (and these can be mandatory). Consequently, a document that is a valid document in one environment might be invalid in another. As already mentioned, EPP has some fundamental incompatibilities with the EURid system. EURid opted to adapt the schema (through extensions and modifications) that reduce diverging from the standard to the minimum. Also note that there are 2 levels of limitations: one imposed by the EPP schema (we use as much as we can the standard schema and only changed it when needed) and one imposed by the policy or technical implementation.

Conceptual differences
The current version of the EPP schemas is based on some prerequisites and do not make use of some options that are incompatible with the EURid implementation of the registration information. In the following list, we will discuss the conceptual differences between the two models. In most cases each of these differences will require some modification to the standard. EURid: a contact has a type BY DEFINITION, and can only be used in that role. If the same person has 2 roles (e.g. a billing contact and a technical contact) then it has to be defined twice. EPP: defines a contact without a type. It acquires its type from its usage. The same contact object can be used in different roles. EURid: a contact object belongs to a registrar and can not be transferred to another registrar. EPP: a contact is generic and control can be passed on to another registrar. EURid: a name server is not an independent object; it is an attribute of the domain and comes into existence when it is linked to a domain. When it belongs to the same domain

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 7

EPP Guidelines

as the one it is linked to, it must be provided with an IP address (a "glue record"). EPP: two ways of working are possible: name servers are objects in their own right. If they need glue records (IP addresses), they must be created before they can be linked to a domain. name servers are just attributes of domain name registration. This corresponds to the way EURid works.

EURid: has objects called name server groups, which are sets of name servers. EPP: this type is unknown to EPP.

Data differences
The following tables will give an idea of the data differences that exist between the EPP draft and the EURid implementation. More detailed information can be found in the description of each command. DOMAIN object EURid Field Domain Length 2-63 EPP Length 1-255 Remarks No change in schema but the back-end application returns an error when the name is longer then 63. (1) No change in the format but software returns an error when shorter than 4 and longer than 100. The backend will only accept valid IP addresses for the glue records.

ns (hostName) ns (hostAddr) Nsgroup

4-100 15 1-50

1-255 3-45 NA

(1) The standard protocol allows a name of max length 255. This is because some registries make registrations at the 3rd level and for different top level domains. Because of this, it must be possible to enter a name longer than the allowed 63 characters. CONTACT object EURid Field Name Length 50 EPP Length 1-255 Remarks ATTENTION: The name field is limited to 50 characters. Standard language codes: "bg"|"cs"|"da"|"de"|"el"|"en"|"es"|"et"| "fi"|"fr"|"ga"|"hu"|"it"|"lt"|"lv"|"mt"|"nl"|"pl"| "pt"|"ro"|"sk"|"sl"|"sv" ATTENTION: The org field is limited to 100 characters.

Language

NA

Org Street

100 255

0-255 1-255

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 8

EPP Guidelines

Pc City Sp country phone fax email vat

16 255 255 2 17 17 255 20

1-16 1-255 1-255 2 0-17 0-17 min 1 NA Defined as an extension.

Transactions
The following table shows commands that have been added in the EURid system: EURid <undelete> domain <reactivate> domain <trade> domain <transferq> domain <checkContactForTransfer> domain Purpose Remove a scheduled delete of a domain name. Restore a domain name in the same situation as before it was deleted. Transfer a domain from one registrant to another. Transfer a domain that has been deleted and still is in quarantine, to another registrar. Determine which transaction type (a trade or a transfer) is the most appropriate to use for a given domain name. Send reminder email to current or future registrant in case of a pending trade or transfer. Apply for a domain during sunrise. Get information about a Sunrise application. Create a name server group. Update a name server group. Delete a name server group. Check a name server group. Get info on a name server group. Obtain registrar account information. Create a keygroup. Update a keygroup. Delete a keygroup. Check a keygroup. Get information on a keygroup.

<transferRemind> domain <apply> domain <apply-info> domain <create> nsgroup <update> nsgroup <delete> nsgroup <check> nsgroup <info> nsgroup <info> registrar <create> keygroup <update> keygroup <delete> keygroup <check> keygroup <info> keygroup

EPP commands, that are not implemented in the EURid system: EPP-command(s) renew Remarks NOT AVAILABLE. Renewals are automatic at the end of each domain name year unless the domain name is removed from the database. NOT IMPLEMENTED. The mechanism of the transfer of a domain name from one registrar to another requires the explicit approval of the domain name

transfer approve

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 9

EPP Guidelines

holder. transfer reject transfer query NOT IMPLEMENTED. See previous item. NOT IMPLEMENTED. See previous item.

Transport and security


EPP is intended for use in diverse operating environments where transport and security requirements vary greatly. However, EURid is providing EPP only on a Secure Socket Layer (SSL) mechanism over standard TCP/IP sockets. EPP security considerations are resolved by the transport layer and are beyond the scope of this document. EURid uses EPP only in synchronous mode: a response to a command must be received by the client before sending another command (the EPP standard however, allows synchronous as well as asynchronous mode). The EPP protocol can be layered over multiple transport protocols. EURid will only provide a connection-oriented EPP service. We use EPP only in a connection-oriented mode. A connection-less mode can be simulated by sending a login/command/logout combination in one set; but this is not the normal way to proceed. There is no actual timeout on the connection open time by clients. A client can keep one, and maximum two, connection(s) open for EPP usage with EURid. An EPP session requires the connection between two peers as described in the standard.

Number of parallel connections


Starting with release 5.3, the number of simultaneously open connections per registrar account has been raised to four (4). Attempting to open a third connection will close the eldest connection (i.e. the connection that was established in the first place).

Versions & ports


The EPP standard protocol stipulates that the version field (as returned by the greeting and required by the login command) should be '1.0'. The EURid implementation will not use the official system port (700) but it will use 33128. New versions of the EURid implementation, offering new functionality, can co-exist for a (defined) period of time. Version management will be done via the <extURI> element of the <svcExtension> element. The most recent version of the EURid EPP implementation can be found in the epp response when connecting to the EPP server. Registrars can now optionally specify a version when using the commands info-contact, infodomain and check-domain. By default, the commands currently use the old versions (1.0). The new version (2.0) returns additional information. Please see the XML-examples further on in this document for more information.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 10

EPP Guidelines

EPP commands
EPP commands fall into three categories: session management: is used to establish and end persistent sessions with the EPP server query: is used to perform read-only information retrieval transform: is used to perform read-write transactional object management operations

XML
XML is case sensitive. Unless stated otherwise, XML specifications and examples provided in this document must be interpreted in the character case presented. All XML instances must begin with 4 bytes (in Network order/BigEndian format) indicating the total message size (including the 4 bytes), followed by <?xml?> declaration using a recognized character set (UTF-8, ASCII-7 or ISO-8859-1), with an XML version of 1.0. All EPP commands are enclosed within an <epp> </epp> XML block: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd"> <command> . . . </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 11

EPP Guidelines

Becomes as shown here in a hex dump:

In this dump it is assumed that the above EPP message is 1034 bytes long: 1034+4 = 1038 = 0x040e (HEX format). The server will parse incoming XML messages on the socket by reading 4 bytes, and then by reading a block of the size indicated by the 4 bytes, minus 4. This message is processed and the response is sent back on the socket (also preceded by a 4 byte number in Network order) before the next message can be processed. Our implementation of the EPP XML server uses a parsing mechanism that conforms to the XML schema specification. A client who wants to design an EPP client implementation should obtain from EURid the EPP XML schema (.xsd files) used to validate all XML messages sent to the server for conformance with the EURid EPP implementation. These files can be found in the Downloads section of the Registrar Extranet on www.registry.eu.

All client XML EPP messages sent to the EURid EPP server should have been validated against the latest XML EPP schema provided by EURid prior to their use. Please note that when you are working with the IDN domain names or IDN name servers then the number of characters may not equal the number of bytes.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 12

EPP Guidelines

Command format
Client EPP command
A generic EPP client command is formed as below (we will show client documents with a light blue background), without the preceding 4 bytes. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd"> <command> <someaction> ... </someaction> <extension> ... </extension> <clTRID>abc-59687456</clTRID> </command> </epp> <command> Contains the whole EPP command block. <someaction> To be replaced by one of the allowed commands, i.e. defined in the schema (commands: <login>, <check>...). It defines the current action to perform. Actions are described in the following sections. <extension> Defines a set of EURid specific extensions for each command. Some of them are mandatory. <clTRID> (Client transaction identifier) uniquely identifies the command to the client. This ID is chosen by the client and needs to be unique only within the client's scope. See the official EPP specification for constraints about this ID. The EPP server does not process or use this ID, it is only returned as-is to the client in the response.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 13

EPP Guidelines

Server EPP response


A generic EPP server response is formed as follows (we will show all server response documents on a light red background), without the preceding 4 bytes: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp-1.0.xsd"> <response> <result code="1000"> <msg>Command completed successfully</msg> <value> ... </value> </result> <resData> ... </resData> <extension> ... </extension> <trID> <clTRID>abc-59687456</clTRID> <svTRID>eurideu-232398</svTRID> </trID> </response> </epp> <response> Contains the whole server response block. <result> Contains the result code, message and service-specific values for the command. <msg> Contains the EPP message text for the corresponding reply code. There is a one to one mapping between error code and error messages. <value> Contains context-specific value for more informative reference, such as XML parsing error column, line and message, specific transaction-processing error... See each specific command for more information on the content of the value field. <resData> Contains object-specific data related to the object and command in process, such as a newly created ID, information data etc. <extension> Contains EURid specific response extension. <trID> Is composed of 2 blocks defining together a unique transaction identifier. <clTRID> Is the clTRID of the client command processed. <svTRID> Is the server-unique ID of the command processed. Please note that only transform-type commands have a unique ID. All other commands have a server ID of eurid-0. The server ID is constructed by appending a unique numeric ID to the characters 'eurid-' (eg. 'eurid-45235').

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 14

EPP Guidelines

Object extension
EPP provides an extensible object management framework that defines the syntax and semantics of protocol operations applied to a managed object. This framework delegates the definition of each operation into the context of the specific object. Protocol elements that contain data specific to objects are identified using XML namespaces with a reference to an XML schema that defines the namespace. The schema for EPP supports use of dynamic object schemas on a per-command and per-response basis. For example (replacing <eppcmd> by a specific EPP command): <eppcmd> <object:eppcmd xmlns:object="http://www.eurid.eu/xml/epp/object1.0" xsi:schemaLocation="http://www.eurid.eu/xml/epp/object-1.0 object-1.0.xsd"> ... </object:eppcmd> </eppcmd> An object-specific response element would be described similarly: <resData> <object:resData xmlns:object="http://www.eurid.eu/xml/epp/object-1.0" xsi:schemaLocation="http://www.eurid.eu/xml/epp/object-1.0 object- 1.0.xsd"> ... </object:resData> </resData> Instead of referring to a specific namespace at the object level, it is also possible to refer to that namespace at the highest level, making the document much more readable (from a human point of view). To illustrate this, look at the next example. The first part shows the document with a namespace reference on the element <check>: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=> <command> <check> <domain:check xmlns:domain="http://www.eurid.eu/xml/epp/domain1.0"xsi:schemaLocation="http://www.eurid.eu/xml/epp/domain-1.0 domain-1.0.xsd"> <domain:name>semaphore.eu</domain:name> <domain:name>gloubiboulga.eu</domain:name> <domain:name>secureshopping.eu</domain:name> </domain:check> </check> <clTRID>abc-596856</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 15

EPP Guidelines

The second part shows the same document with the namespace definition on the <epp> element. This will make the namespace global instead of local within the element on which it was used. The advantage however is a much more readable document: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:epp="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xmlns:nsgroup="http://www. eurid.eu/xml/epp/nsgroup-1.0" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd http://www.eurid.eu/xml/epp/domain-1.0 domain-1.0.xsd urn:ietf:params:xml:ns:eppcom-1.0 eppcom-1.0.xsd http://www.eurid.eu/xml/epp/contact-1.0 contact-1.0.xsd http://www.eurid.eu/xml/epp/eurid-1.0 eurid-1.0.xsd http://www.eurid.eu/xml/epp/nsgroup-1.0 nsgroup-1.0.xsd"> <command> <check> <domain:check> <domain:name>semaphore.eu</domain:name> <domain:name>gloubiboulga.eu</domain:name> <domain:name>secureshopping.eu</domain:name> </domain:check> </check> <clTRID>abc-596856</clTRID> </command> </epp> All EURid specific modifications to the standard schemas are marked by START/END MODIF EURid markers.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 16

EPP Guidelines

EPP objects used within EURid are:


epp: namespace: http://www.eurid.eu/xml/epp/epp-1.0 schema: epp-1.0.xsd (generic document, containing the root element: <epp>) eppcom: namespace: urn:ietf:params:xml:ns:eppcom-1.0 schema: eppcom-1.0.xsd (generic data definitions) euridcom: namespace: http://www.eurid.eu/xml/epp/euridcom-1.0 schema: euridcom -1.0.xsd (EURid specific data definitions) domain: namespace: http://www.eurid.eu/xml/epp/domain-1.0 schema: domain-1.0.xsd (domain specific commands) contact: namespace: http://www.eurid.eu/xml/epp/contact-1.0 schema: contact-1.0.xsd (contact specific commands) host: namespace: http://www.eurid.eu/xml/epp/host-1.0 schema: host-1.0.xsd (name server specific definitions) nsgroup: namespace: http://www.eurid.eu/xml/epp/nsgroup-1.0 schema: nsgroup-1.0.xsd (added to handle name server groups) registrar: namespace: http://www.eurid.eu/xml/epp/registrar-1.0 schema: registrar-1.0.xsd (registrar specific commands)

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 17

EPP Guidelines

All EURid specific extensions to EPP (<extension> block):


namespace: http://www.eurid.eu/xml/epp/eurid-1.0 schema: eurid-1.0.xsd For a complete reference of the standard syntax, we refer to the internet draft documents that explain in detail the valid content of a document: http://www.ietf.org/rfc/rfc4930.txt http://www.ietf.org/rfc/rfc3730.txt http://www.ietf.org/rfc/rfc3731.txt http://www.ietf.org/rfc/rfc3732.txt http://www.ietf.org/rfc/rfc3733.txt http://www.ietf.org/rfc/rfc3734.txt http://www.ietf.org/rfc/rfc3735.txt

EURid ignores schema references in a XML document and validates these documents against a fixed set of schemas as listed above. Furthermore, in the current version, all namespaces must have a predefined prefix.

Namespace http://www.eurid.eu/xml/epp/epp-1.0 epp urn:ietf:params:xml:ns:eppcom-1.0 eppcom http://www.eurid.eu/xml/epp/euridcom-1.0 http://www.eurid.eu/xml/epp/contact-1.0 contact http://www.eurid.eu/xml/epp/domain-1.0 domain http://www.eurid.eu/xml/epp/host-1.0 host http://www.eurid.eu/xml/epp/eurid-1.0 eurid http://www. eurid.eu/xml/epp/nsgroup-1.0 nsgroup http://www.eurid.eu/xml/epp/registrar-1.0 http://www.eurid.eu/xml/epp/keygroup-1.0

Namespace prefix epp eppcom euridcom contact domain host eurid nsgroup registrar keygroup

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 18

EPP Guidelines

DESCRIPTION OF THE TRANSACTIONS


The rest of this document gives an overview of the different XML documents that can be exchanged between the client and the server. Per transaction, you will find a structured overview of that part of the EPP standard that is used by EURid in support of the model as it is described above. You will also find an indication of the differences between the standard and the modifications that have been made to accommodate the .eu specific context. The occurrence reflects the number of times that the element (tags) can occur in the document: 1 = only once but is required 0-1 = zero or once, therefore the element is optional 1-* = at least once but as many times as needed/wanted

For the description of the data format, we have used the XML-terminology of which we repeat the most important: string = any text, can contain newlines, tabs, etc .. normalizedString = newline, tab and CR are replaced by a "space" token = normalizedString with all consecutive spaces replaced by 1 space date = CCYY-MM-DD dateTime = CCYY-MM-DDThh:mm:ss.sss (mind the "T" between the date and the time)

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 19

EPP Guidelines

Hello / Greeting
PURPOSE: To obtain information from the EPP server that will handle your requests. A client can request a <greeting> from the EPP server by sending a <hello> command at any time: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <hello/> </epp> The <hello> element does not contain anything. The server will also send a greeting upon establishment of the connection/session. An EPP server responds to an <hello> command by returning a <greeting>: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <greeting> <svID>eurid.eu</svID> <svDate>2006-03-21T09:50:21.836Z</svDate> <svcMenu> <version>1.0</version> <lang>en</lang> <objURI>http://www.eurid.eu/xml/epp/contact-1.0</objURI> <objURI>http://www.eurid.eu/xml/epp/domain-1.0</objURI> <svcExtension> <extURI>http://www.eurid.eu/xml/epp/nsgroup-1.0</extURI> <extURI>http://www.eurid.eu/xml/epp/build/20051003</extURI> </svcExtension> </svcMenu> <dcp> <access> <all/> </access> <statement> <purpose> <admin/> <prov/> </purpose> <recipient> <ours/> <public/> </recipient> <retention> <stated/> </retention> </statement> </dcp> </greeting> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 20

EPP Guidelines

<svID> Contains the name of the server (eurid.eu). <svDate> Contains the server current date and time in UTC. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST). <svcMenu> Contains the services supported by the server. <version> Contains the EPP version currently supported (1.0). <lang> Contains the text response language currently supported, as defined in [RFC3066]. Only "en" (English) is available for the time being. <objURI> Contains the list of namespace URIs representing the objects that the server is capable of managing: contacts, domains. <svcExtension><extURI> Contains the list of namespace URIs representing extended objects that the server is capable of managing: nsgroups. <dcp> Contains info related to privacy policies.

One entry is special (http://www. eurid.eu/xml/epp/build/20051012) and specifies the current build of the server.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 21

EPP Guidelines

Login
PURPOSE: Is used to authenticate the client/user to the EPP server. It must be sent before any other command (except <hello>). This command is used to establish the registrar credentials. The userid and EPP password will be used to authenticate the party that wants to set up the session. The login document is composed of the following components (only the begin tags are shown, each block should be ended by its corresponding end tag </tag>: TAG <epp> <command> <login> <clID> <pw> <newPW> <options> <version> <lang> <svcs> <objURI> <svcExtension> <extURI> <clTRID> Occurrence min-max 1 1 1 1 0-1 1 1 1 1 1-* 0-1 0-* 0-1 Size + remarks

token: 3-16 token: 6-16 token: 6-16 reg exp: [1-9]+\.[0-9]+ language (XML built-in) any URI any URI any URI token: 3-64

(*) the min-max occurrences determine how many times this element (with tags) can occur in the xlm document (command), in case the minimum is 0, you can leave this element out of the document. To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <clID> Contains the registrar ID of the connecting client. <pw> Contains the EPP password of the connecting client (registrar). This is the password that you have to provide when you activate your account at the start of your contract. <version> Contains the EPP version the client supports (1.0). This will be used for versioning (on EPP standard level) in the future. <lang> Contains the preferred language of the client for this connection (actually ignored by EURid). Both <version> and <lang> must match one of the server proposition(s). <svcs> Contains a list of <objURI> and <extURI> the client wants to use with the EPP server during this connection. One <extURI> has a special meaning (and is mandatory), it is used to indicate the desired build number of the server. This number corresponds to a certain release of the software that adheres to a certain version of the EPP draft documents and a certain set of Eurid specific functionality. Each transaction can be completed with a user provided transaction ID that can be used to identify a transaction.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 22

EPP Guidelines

Example:
A valid command looks like: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <command> <login> <clID>registrarid</clID> <pw>pw-azxusTd</pw> <options> <version>1.0</version> <lang>en</lang> </options> <svcs> <objURI>http://www.eurid.eu/xml/epp/contact-1.0</objURI> <svcExtension> <extURI>http://www.eurid.eu/xml/epp/build/20051012</extURI> </svcExtension> </svcs> </login> </command> </epp> An EPP connection is kept open by the server between a <login> and a <logout> command from the client, using the same socket connection. The EPP connection is closed without logout if the client closes the socket. However, to ensure responsible behaviour, a client should disconnect the SSL socket only after the EPP <logout> command. The server responds to a <login> command with a result code of 1000 ("Command completed successfully") or 2200 ("Authentication error"): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>login succeeded</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 23

EPP Guidelines

Logout
PURPOSE: The EPP <logout> command is used to close a session with the EPP server. The transport connection (SSL socket) is closed by the server after the emission of the <logout> response. The <logout> is a very easy command and does not take any other elements or attributes: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <command> <logout/> <clTRID>logout-00</clTRID> </command> </epp> The server responds with a result code of 1500 ("Command completed successfully; ending session"): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1500"> <msg>Command completed successfully; ending session</msg> </result> <trID> <clTRID>logout-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 24

EPP Guidelines

Create contact
PURPOSE: To create a registrar contact (types: billing, technical), a registrant or onsite contact. All EPP contact objects are identified by a server-unique identifier. Contact identifiers start with a c followed by a unique numeric ID. The EPP contact create command allows the client to send a requested ID for the new contact, but this field is ignored (as allowed by EPP) by the server and a newly-created ID is returned instead in the server response. EURid has modified the schema to make this ID optional. Every contact has associated postal address information. EURid stores postal information in a less restrictive way, to accommodate for the many different formats in the world. It is the responsibility of the registrar to provide an address in a readable format. For a list of all allowed characters in the <name>, <org> and <addr> fields, please consult the document Characters allowed in Name, Organisation and Address fields published in the Downloads section of the Registrar Extranet on www.registry.eu. EPP does not enforce a specific role for each contact. It acquires its type from its usage. The same contact object can be used in different roles. EURid requires that you define a role for a contact upon its creation. A contact can only be used in the role it was created for: each link between a domain and a contact should follow that role. For example, you cannot link a contact of type "tech" to a domain as a "billing", you MUST use it as a "tech". If you want to use the same person for different roles, you will need to create a new contact for each of them. The roles that exist are described below. The structure used by EURid contains the following elements: TAG <epp> <command> <create> <id> <postalInfo> Occurrences min-max (*) 1 1 1 1 1-2 token: 3-16 ignored by the software Required attribute type =loc|int. Although the schema is not modified by EURid, the application will only accept type loc. Only 1 block is accepted (although the schema allows for 2). normalizedString 1-50 normalizedString 0-100; is required for a contact of type tech and billing. normalizedString 0-255 normalizedString 1-255 normalizedString 0-255 token: 0-16; is required by EURid. token: 2 (must be uppercase); see list of possible values in appendix. Size + remarks

<name> <org> <addr> <street> <city> <sp> <pc> <cc>

1 0-1 1 0-3 1 0-1 0-1 1

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 25

EPP Guidelines

<voice>

0-1

token: (\+[0-9]{1,3}\.[0-9]{1,14})? max length: 17 (=intl. tel nbr code) optional attrib: x= (token) This field is required by EURid. token: (\+[0-9]{1,3}\.[0-9]{1,14})? max length: 17 (=intl. tel nbr code) This field is required for tech and billing contacts. token optional attrib: roid= token (\w|_){1,80}-\w{1,8} Is not used by EURid. As it is a required element in the schema, it must be provided; however, you do not have to specify a value between the tags. Not used. Contains EURID specific elements; must always be present as the type is required.

<fax>

0-1

<email> <authInfo> <pw>

1 1 1

<ext> <extension> <ext> <create> <contact> <type> <vat> <lang>

1 0-1 1 1 1 1 0-1 0-1

"billing"|"tech"|"registrant"|"onsite" token: 1-20 "bg"|"cs"|"da"|"de"|"el"|"en"|"es"|"et"|"fi"| "fr"|"ga"|"hu"|"it"|"lt"|"lv"|"mt"|"nl"|"pl"|"pt"|"ro"|"sk"|"sl" |"sv"; although optional in the schema the back-end will return an error if this element is omitted. token: 3-64

<clTRID>

0-1

(*) the min-max occurrences determine how many times this element (with tags) can occur in the xlm document (command), in case the minimum is 0, you can leave this element out of the document. To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <id> According to the EPP standard, this field contains the (proposed) ID for the contact. It is ignored by EURid, since we always create a unique contact ID as C + an unique number. <postalInfoType> This contains the address information of this contact; the schema allows it to occur twice (e.g. with a local address or an international address); EURid only accepts the type loc with UTF-8 character set (containing non-ascii characters); if int is specified as a type, this will be rejected as a policy error. Only 1 postalInfoType block is accepted. <name> Contains the complete name of the contact to create. The first and the last name should be put in that field. It is a good practice to start with the last name, followed by the first name because in the web interface contacts are ordered by name. This field is limited to 50 characters. Trying to register a contact using more than 50 characters in the name field will result in an error message. <org> Contains the company name of the contact. If the eurid:type is registrant or onsite, no contact:org is required. However if the eurid:type is tech or billing a

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 26

EPP Guidelines

contact:org is mandatory. This field is limited to 100 characters. Trying to register a contact using more than 100 characters in the org field will result in an error message. In the web interface there are two fields for the company name, in case it would be needed. This is not used by EPP. <street> You can provide up to 3 instances of this element. It contains the postal street information of the contact. It should contain information in such a way that it should look like a correct address when printed on a letter as: COMPANY NAME (CONTACT) NAME STREET(1) STREET(2) STREET(3) PC CITY, SP <city> Contains the city of the contact. <sp> Contains the state or province of the contact. <pc> Contains the postal code of the contact. This field can be up to 16 characters. <cc> Contains the two-letters country code of the contact to create, as defined in [ISO3166]. For registrants, only country codes from countries belonging to the EU are accepted as required by the regulation 874/2004. Accepted ISO codes can be found in Addendum 1. <voice> Contains the telephone number of the contact that is being created. A phone number is a string that must begin with a plus sign ("+"), followed by a country code, followed by a dot ("."), followed by a sequence of digits representing the telephone number. An optional "x" attribute is provided to note the telephone extension (but this attribute is ignored by EURid). <fax> Contains the facsimile number of the contact. The syntax is the same as for telephone but without the extension attribute. <email> Email address syntax is defined in [RFC2822]. <authInfo> Is ignored by EURid. <disclose>: There is an additional (optional) element in the schema that contains postal information that can be disclosed. This is not used by EURid and therefore this group is not shown in the table.

EURid EXTENSIONS: <eurid:type> Contains the type of contact to create. Can be one of: registrant, billing, onsite, tech. o o registrant: Must be specified to represent the domain name holder. billing: The billing contact: this one is required when you want to register a domain name. It is the person to whom the invoices are sent, the language of the invoices is currently English only. Exactly 1 billing contact can be created per registrar. onsite or tech: Is a technical contact: at least 1 technical contact must be associated to each domain name. This is the person to contact in case of a technical problem. When the technical contact is from the organisation of the registrant or from a third party (like an intermediate website builder), you should choose the label onsite. The creation of onsite contacts is not limited. In case the registrant does not have any technical knowledge, you can link a domain name to a technical contact of your own organisation (the registrar). To define such a contact, you need to specify tech as the type. Each registrar can create up to ten technical contacts.

<eurid:vat> Contains the VAT of the contact. This tag is optional.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 27

EPP Guidelines

<eurid:lang> Contains the preferred language of the holder of the domain name. This must be the language of the registration agreement with the registrar and is also the language for ADR proceedings (except for ADRs against the registry). This language is independent from the language selection done during the EPP client/server login. Although it is not a required field in the schema, as a EURid policy, it must be provided and only a language from the list (see addendum II) will be accepted.

Examples:
Example 1: Creating a new contact: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <create> <contact:create> <contact:id>abc1</contact:id> <contact:postalInfo type="loc"> <contact:name>Smith Bill</contact:name> <contact:org>EPP Company</contact:org> <contact:addr> <contact:street>Blue Tower</contact:street> <contact:street>Main street, 58</contact:street> <contact:city>Paris</contact:city> <contact:pc>571234</contact:pc> <contact:cc>FR</contact:cc> </contact:addr> </contact:postalInfo> <contact:voice>+33.16345656</contact:voice> <contact:fax>+33.16345656</contact:fax> <contact:email>noreply@eurid.eu</contact:email> <contact:authInfo> <contact:pw></contact:pw> </contact:authInfo> </contact:create> </create> <extension> <eurid:ext> <eurid:create> <eurid:contact> <eurid:type>registrant</eurid:type> <eurid:vat>FR3455345645</eurid:vat> <eurid:lang>fr</eurid:lang> </eurid:contact> </eurid:create> </eurid:ext> </extension> <clTRID>TRID-0001</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 28

EPP Guidelines

The EPP server responds with a message containing the newly created ID and the creation date for a successful object creation: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <contact:creData> <contact:id>c1006441</contact:id> <contact:crDate>2006-03-21T10:02:45.514Z</contact:crDate> </contact:creData> </resData> <extension> <eurid:ext> <eurid:result> <eurid:msg>OK</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>TRID-0001</clTRID> <svTRID>eurid-5418120</svTRID> </trID> </response> </epp> <contact:id> Is the newly created ID assigned to this contact: c1006441. <contact:crDate> Is the creation date in UTC format. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST). <clTRID> This element copies the transaction ID that was specified by the registrar in the command. This way, it is possible to automatically interpret the answer and link it to the command that was sent.

Example 2: A second example, leaving out all the optional information: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <create> <contact:create> <contact:id>abc1</contact:id> <contact:postalInfo type="loc"> <contact:name>Banderas George</contact:name> <contact:addr> <contact:street>Yellow Tower</contact:street> <contact:street>Main street, 85</contact:street> <contact:city>Brussels</contact:city> <contact:pc>1000</contact:pc> <contact:cc>BE</contact:cc>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 29

EPP Guidelines

</contact:addr> </contact:postalInfo> <contact:voice>+32.16345656</contact:voice> <contact:fax>+32.16345656</contact:fax> <contact:email>noreply@eurid.eu</contact:email> <contact:authInfo> <contact:pw></contact:pw> </contact:authInfo> </contact:create> </create> <extension> <eurid:ext> <eurid:create> <eurid:contact> <eurid:type>registrant</eurid:type> <eurid:lang>en</eurid:lang> </eurid:contact> </eurid:create> </eurid:ext> </extension> <clTRID>TRID-0002</clTRID> </command> </epp> Giving as a return message: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <contact:creData> <contact:id>c1006448</contact:id> <contact:crDate>2006-03-21T10:03:45.086Z</contact:crDate> </contact:creData> </resData> <extension> <eurid:ext> <eurid:result> <eurid:msg>OK</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>TRID-0001</clTRID> <svTRID>eurid-5418133</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 30

EPP Guidelines

Example 3: A third example containing a parsing error: When we remove the required <pw></pw> tags from the xml document (under the <authInfo> parent), we get an error message from the xml parser: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <create> <contact:create> <contact:id>abc1</contact:id> <contact:postalInfo type="loc"> <contact:name>Davenport Lindsay</contact:name> <contact:addr> <contact:street>Yellow Tower</contact:street> <contact:street>Main street, 85</contact:street> <contact:city>Brussels</contact:city> <contact:pc>1000</contact:pc> <contact:cc>BE</contact:cc> </contact:addr> </contact:postalInfo> <contact:voice>+32.16345656</contact:voice> <contact:fax>+32.16345656</contact:fax> <contact:email>noreply@eurid.eu</contact:email> <contact:authInfo> </contact:authInfo> </contact:create> </create> <extension> <eurid:ext> <eurid:create> <eurid:contact> <eurid:type>registrant</eurid:type> <eurid:lang>en</eurid:lang> </eurid:contact> </eurid:create> </eurid:ext> </extension> <clTRID>TRID-0002</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 31

EPP Guidelines

Giving as a return message: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>line:27: Expected elements 'pw@http://www.eurid.eu/xml/epp/contact-1.0 ext@http://www.eurid.eu/xml/epp/contact-1.0' before the end of the content in element authInfo@http://www.eurid.eu/xml/epp/contact-1.0</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>TRID-0002</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Example 4: This example shows a correct xml document, containing a policy error (i.e. giving an error message generated by the back-end application). We will enter an email address without the @ sign: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <create> <contact:create> <contact:id>abc1</contact:id> <contact:postalInfo type="loc"> <contact:name>Davenport Lindsay</contact:name> <contact:org>EPP Company</contact:org> <contact:addr> <contact:street>Roland Garros</contact:street> <contact:street>Bvd Charles De Gaule</contact:street> <contact:city>Paris</contact:city> <contact:pc>571234</contact:pc> <contact:cc>FR</contact:cc> </contact:addr> </contact:postalInfo> <contact:voice>+33.16345656</contact:voice> <contact:fax>+33.16345656</contact:fax> <contact:email>noreplyeurid.eu</contact:email> <contact:authInfo> <contact:pw></contact:pw> </contact:authInfo> </contact:create> </create> <extension> <eurid:ext>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 32

EPP Guidelines

<eurid:create> <eurid:contact> <eurid:type>registrant</eurid:type> <eurid:vat>FR3455345645</eurid:vat> <eurid:lang>fr</eurid:lang> </eurid:contact> </eurid:create> </eurid:ext> </extension> <clTRID>TRID-0005</clTRID> </command> </epp> We will get the following return message: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Syntax error: Invalid emailaddress for CONTACT-EMAIL</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>TRID-0005</clTRID> <svTRID>eurid-5418137</svTRID> </trID> </response> </epp> Example 5: We try to create a new registrant handle using more than the allowed 100 characters in the org field: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <create> <contact:create> <contact:id>you_choose_it</contact:id> <contact:postalInfo type="loc"> <contact:name>Roland Garros</contact:name> <contact:org>EPP Company EPP Company EPP Company EPP Company EPP Company EPP Company EPP Company EPP Company EPP Company</contact:org> <contact:addr> <contact:street>Test street 78</contact:street> <contact:city>Brussels</contact:city> <contact:pc>1000</contact:pc> <contact:cc>BE</contact:cc> </contact:addr> </contact:postalInfo>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 33

EPP Guidelines

<contact:voice>+32.111111</contact:voice> <contact:fax>+32.2222222</contact:fax> <contact:email>info@eurid.eu</contact:email> <contact:authInfo> <contact:pw></contact:pw> </contact:authInfo> </contact:create> </create> <extension> <eurid:ext> <eurid:create> <eurid:contact> <eurid:type>registrant</eurid:type> <eurid:vat>1212121212</eurid:vat> <eurid:lang>en</eurid:lang> </eurid:contact> </eurid:create> </eurid:ext> </extension> <clTRID>create-contact-00</clTRID> </command> </epp> The server will reply with the following error message: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Invalid value for organisation (value too long)</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>create-contact-00</clTRID> <svTRID>eurid-35696802</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 34

EPP Guidelines

Update contact
PURPOSE: An EPP contact <update> command provides a transform operation that allows a client to modify the attributes of a contact object. The EPP protocol provides for a granular update, without having to re-specify all unchanged fields (with the exception that for a change in address, the complete <addr> block needs to be specified). To obtain this, <add>, <chg> or <rem> commands are provided within the major update command. A restriction exists for updating a registrant contact since the identity of the registrant has to remain the same. This implies that an organisation cant change the <org> field (but can change its <name>), and that a private person (without <org> filled in) cannot change his <name>. If you want to change the identity of the registrant contact of a domain you need to initiate the TRADE DOMAIN transaction. When changes to the registrants name field (private person or organisation) are necessary and the legal identity of the registrant remains the same, you can also file a request for monitored update. Please see the XML-examples Examples (contact enabled for monitored update) for more information. A detailed manual regarding the monitored update can be found in the Downloads section (Documents Instruction Manuals) of the Registrar Extranet. Please be aware that minor corrections of the registrants name field are possible: uppercase/lowercase characters can be exchanged and whitespaces, . and - can be added or removed. Please note: you cannot add whitespaces, . and - to the <org> field if the <org> field was empty prior to the update and you cannot remove them when they are the only entries in that field. For a list of all allowed characters in the <name>, <org> and <addr> fields, please consult the document Characters allowed in Name, Organisation and Address fields that has been published in the Downloads section of the Registrar Extranet on www.registry.eu. The structure used by EURid contains the following elements: TAG <epp> <command> <update> <id> <chg> <postalInfo> Occurrences min-max 1 1 1 1 0-1 0-2 Required attribute type =loc|int. Although the schema is not modified by EURid, the application will only accept type loc. Only 1 block is accepted (although the schema allows for 2). normalizedString 1-50 normalizedString 1-100 normalizedString 1-255 token: 3-16; this is the contact handle that uniquely identifies a contact. Size + remarks

<name> <org> <addr> <street>

0-1 0-1 0-1 1-3

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 35

EPP Guidelines

<city> <sp> <pc> <cc> <voice>

1 1 1 1 0-1

normalizedString 1-255 normalizedString 1-255 token: 1-16 token: 2 token: (\+[0-9]{1,3}\.[0-9]{1,14})? max length: 17 (=intl. tel nbr code) optional attrib: x= (token) token: (\+[0-9]{1,3}\.[0-9]{1,14})? max length: 17 (=intl. tel nbr code) token

<fax> <email> <extension> <ext> <update> <contact> <chg> <vat> <lang>

0-1 0-1 0-1 1 1 1 0-1 0-1

<clTRID>

0-1

token: 1-20 "bg"|"cs"|"da"|"de"|"el"|"en"|"es"|"et"| "fi"|"fr"|"ga"|"hu"|"it"|"lt"|"lv"|"mt"|"nl"|"pl"| "pt"|"ro"|"sk"|"sl"|"sv" token: 3-64

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace to use. <add> and <rem> The EPP protocol offers the possibility to add and to remove a status from a contact. This is not used by EURid and as it is an optional element in the schema, it is not shown in the table above, which only shows the elements needed to create a valid document for EURid. If it is provided, it is not taken into account. <id> This is the contact handle that uniquely identifies a contact. It is generated by the registration system at creation of the contact and returned in the return message. <chg> Is the tag that indicates that (one of) the following elements needs to be updated in the database. The various fields, embedded in a <contact:chg> block are the same as for object creation. Please refer to that command for more information. All fields are optional as you only need to specify those that change. Please note: if you want to change a part of the <addr> block, you need to specify the complete block! <authInfo> Is not shown in the table. As everything in the <chg> block is optional and as we dont use <authInfo> we have removed it completely from the table above.

Examples (standard update - contact not enabled for monitored update):


Example 1: In the first example, we change most of the fields of the registrant c1006441: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <update> <contact:update> <contact:id>c1006441</contact:id>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 36

EPP Guidelines

<contact:chg> <contact:postalInfo type="loc"> <contact:addr> <contact:street>Green Tower</contact:street> <contact:street>City Square</contact:street> <contact:city>London</contact:city> <contact:pc>1111</contact:pc> <contact:cc>GB</contact:cc> </contact:addr> </contact:postalInfo> <contact:voice>+44.1865332156</contact:voice> <contact:fax>+44.1865332157</contact:fax> <contact:email>noreply@eurid.eu</contact:email> </contact:chg> </contact:update> </update> <extension> <eurid:ext> <eurid:update> <eurid:contact> <eurid:chg> <eurid:vat>GB12345678</eurid:vat> <eurid:lang>en</eurid:lang> </eurid:chg> </eurid:contact> </eurid:update> </eurid:ext> </extension> <clTRID>TRID-chg-124</clTRID> </command> </epp> After a successful update, EPP responds with: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>OK</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>TRID-chg-124</clTRID> <svTRID>eurid-5418458</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 37

EPP Guidelines

Example 2: In a second example we only change the telephone number for the same registrant: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0"> <command> <update> <contact:update> <contact:id>c1006441</contact:id> <contact:chg> <contact:voice>+44.1865332156</contact:voice> </contact:chg> </contact:update> </update> <clTRID>TRID-chg-125</clTRID> </command> </epp> After a successful update, EPP responds with: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>OK</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>TRID-chg-125</clTRID> <svTRID>eurid-5419007</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 38

EPP Guidelines

Example 3: In a third example we only change the language code (in which case we only specify the extension part of the xml document): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <update> <contact:update> <contact:id>c1006441</contact:id> </contact:update> </update> <extension> <eurid:ext> <eurid:update> <eurid:contact> <eurid:chg> <eurid:lang>nl</eurid:lang> </eurid:chg> </eurid:contact> </eurid:update> </eurid:ext> </extension> <clTRID>trid-chg-222</clTRID> </command> </epp> The EPP server replies: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>OK</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>trid-chg-222</clTRID> <svTRID>eurid-5419129</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 39

EPP Guidelines

Example 4: In a last example we try to blank the <org> field for the same registrant: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0"> <command> <update> <contact:update> <contact:id>c1006441</contact:id> <contact:chg> <contact:postalInfo type="loc"> <contact:org></contact:org> </contact:postalInfo> </contact:chg> </contact:update> </update> <clTRID>TRID-chg-125</clTRID> </command> </epp> In case this update affects a registrant contact, the EPP server will yield the following result: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2002"> <msg>Command use error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Update of licensee company name is not allowed</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>TRID-chg-125</clTRID> <svTRID>eurid-5419445</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 40

EPP Guidelines

Examples (contact enabled for monitored update):


Below an example of a registrar performing a monitored update on the company name where the contact id is c1487747. The org field will change from EURid to EURid vzw. All other contact details will remain the same. Please note: Only when the contact:info command returns the status updatable for a particular contact, you may perform the monitored update by using the EPP command contact:update. The correct command to use would then be: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0"> <command> <update> <contact:update> <contact:id>c1487747</contact:id> <contact:chg> <contact:postalInfo type="loc"> <contact:org>EURid vzw</contact:org> </contact:postalInfo> </contact:chg> </contact:update> </update> <clTRID>update-contact-00</clTRID> </command> </epp> After a successful update, the EPP server responds with: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Monitored Contact 24 for contact c1487747 updated</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>update-contact-00</clTRID> <svTRID>eurid-6880117</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 41

EPP Guidelines

If the registrar tries to perform a monitored update while the contact is not enabled for this transaction, the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2308"> <msg>Data management policy violation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Update of company name is not allowed</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>update-contact-00</clTRID> <svTRID>eurid-6881483</svTRID> </trID> </response> </epp> If the registrar tries to perform a monitored update while there is still a request pending which needs to be approved by EURid, the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2308"> <msg>Data management policy violation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Monitored update has already been done</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>update-contact-00</clTRID> <svTRID>eurid-6881470</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 42

EPP Guidelines

Please note: when a particular contact has been enabled for a monitored update, the update of at least the <org> field (if the registrant is a company) or the <name> field (if the registrant is a private person) is mandatory. If an update command of this contact is performed without change to the <org> or <name> tag, the server will return the following error message: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2308"> <msg>Data management policy violation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Update of company name or private person name is mandatory</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>update-contact-00</clTRID> <svTRID>eurid-6881495</svTRID> </trID> </response> </epp> Please refer to the document Monitored update instructions for more information. It is available in the Downloads section (Documents Instruction Manuals) of the Registrar Extranet.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 43

EPP Guidelines

Delete contact
PURPOSE: An EPP contact <delete> command provides a transform operation that allows a client to delete an existing contact object. The standard protocol for a delete is very simple: TAG <epp> <command> <delete> <id> <clTRID> Occurrences min-max 1 1 1 1 0-1 token: 3-16 token: 3-64 Size + remarks

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <id> Contains the contact that you want to delete. <clTRID> Is the transaction ID that is provided by the registrar for his own reference.

Examples:
Example 1: In a first example we delete the contact c1006441: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0"> <command> <delete> <contact:delete> <contact:id>c1006441</contact:id> </contact:delete> </delete> <clTRID>delete-contact-01</clTRID> </command> </epp> After a successful operation, the EPP server will respond with: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>OK</eurid:msg> </eurid:result> </eurid:ext>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 44

EPP Guidelines

</extension> <trID> <clTRID>delete-contact-01</clTRID> <svTRID>eurid-5419599</svTRID> </trID> </response> </epp> Example 2: When we try to delete a contact that does not exist: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0"> <command> <delete> <contact:delete> <contact:id>sj5</contact:id> </contact:delete> </delete> <clTRID>delete-contact-02</clTRID> </command> </epp> The EPP server will respond with: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0"> <response> <result code="2303"> <msg>Object does not exist</msg> <value> <contact:id>c1006441</contact:id> </value> </result> <trID> <clTRID>delete-contact-01</clTRID> <svTRID>eurid-5419613</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 45

EPP Guidelines

Example 3: When we try to delete a contact that is still linked to a domain name: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0"> <command> <delete> <contact:delete> <contact:id>c981095</contact:id> </contact:delete> </delete> <clTRID>delete-contact-01</clTRID> </command> </epp> The EPP server will return the following message: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2305"> <msg>Object association prohibits operation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Contact still linked to 1 domain(s)</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>delete-contact-01</clTRID> <svTRID>eurid-5419617</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 46

EPP Guidelines

Info contact
PURPOSE: The EPP <info> command is used to retrieve information associated with a contact object. Registrars can now optionally specify a version when using the command info-contact. By default, the command currently uses the old version (1.0). The new version (2.0) returns additional information in case of a monitored update. The monitored update feature introduces the possibility of changing the registrant's name (organisation or private person) without having to perform a trade provided that the registrant remains the same legal entity. Please see the XMLexamples for more information. A detailed manual regarding the monitored update can be found in the Downloads section (Documents Instruction Manuals) of the Registrar Extranet. The EPP document structure is composed of the following elements: TAG <epp> <command> <info> <id> <extension> <ext> <info> <contact> <clTRID> Occurrences min-max 1 1 1 1 0-1 1 1 1 0-1 attrib: version="1.0"|"2.0" token: 3-64 token: 3-16 Size + remarks

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <id> Contains the contact for which you want to obtain the information. <clTRID> Is the transaction ID that is provided by the registrar for his own reference. <eurid:contact version="2.0"/>: The version 2.0 can be specified to access additional information.

Example version 1.0:


A valid document for information about the contact c1006449 would therefore be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0"> <command> <info> <contact:info> <contact:id>c1006449</contact:id> </contact:info> </info> <clTRID>info-2222</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 47

EPP Guidelines

If the contact exists (and belongs to the registrar) the EPP server responds with the contact information: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <contact:infData> <contact:id>c1006449</contact:id> <contact:roid>1006449-EURID</contact:roid> <contact:status s="ok"/> <contact:postalInfo type="loc"> <contact:name>Smith Bill</contact:name> <contact:org>EPP Company</contact:org> <contact:addr> <contact:street>Blue Tower</contact:street> <contact:street>Main street, 58</contact:street> <contact:city>Paris</contact:city> <contact:pc>571234</contact:pc> <contact:cc>FR</contact:cc> </contact:addr> </contact:postalInfo> <contact:voice>+33.16345656</contact:voice> <contact:fax>+33.16345656</contact:fax> <contact:email>noreply@eurid.eu</contact:email> <contact:clID>a000005</contact:clID> <contact:crID>a000005</contact:crID> <contact:crDate>2006-03-21T10:04:54.000Z</contact:crDate> <contact:upDate>2006-03-21T10:04:54.000Z</contact:upDate> </contact:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:contact> <eurid:type>registrant</eurid:type> <eurid:vat>FR3455345645</eurid:vat> <eurid:lang>fr</eurid:lang> </eurid:contact> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>info-2222</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 48

EPP Guidelines

<contact:roid> Contains the Repository Object IDentifier assigned to the contact object when the contact was created. This information can be discarded. <contact:status> Contains the status associated with the object. Currently only the "ok" status is supported. <contact:clID> Contains the identifier of the current "sponsoring client" i.e. the EURid id. <contact:crID> Contains the identifier of the client and subsystem that created the object. For EURid, this contains the same registrar ID as the previous one, since an object belongs to a registrar and cannot be transferred or used by another registrar. <contact:crDate> Contains the creation date and time. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST). <contact:upDate> Contains the last update date and time in UTC. <clTRID> Contains the transaction ID (for tracking the command) that was provided by the registrar in the incoming command. <svTRID> Contains a server generated transaction ID.

Example version 2.0:


The correct command for obtaining information about the status of the monitored update of the contact c1573194 would therefore be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <info> <contact:info> <contact:id>c1573194</contact:id> </contact:info> </info> <extension> <eurid:ext> eurid:info> <eurid:contact version="2.0"/> </eurid:info> </eurid:ext> </extension> <clTRID>info-contact-00</clTRID> </command> </epp> Aside from the contact information about the queried contact, the reply will now also contain information about the status of the monitored update.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 49

EPP Guidelines

Below an example using contact id = c1573194. In this case the contact has been enabled for a monitored update. The <eurid:monitoringStatus> tag therefore has a status of updatable: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <contact:infData> <contact:id>c1573194</contact:id> <contact:roid>1573194-EURID</contact:roid> <contact:status s="ok"/> <contact:postalInfo type="loc"> <contact:name>Klaus Example</contact:name> <contact:org>Example Company</contact:org> <contact:addr> <contact:street>Kingstreet 88</contact:street> <contact:street>bus 5</contact:street> <contact:city>Brussels</contact:city> <contact:pc>1000</contact:pc> <contact:cc>BE</contact:cc> </contact:addr> </contact:postalInfo> <contact:voice>+32.111111111</contact:voice> <contact:fax>+35.22222222</contact:fax> <contact:email>info@eurid.eu</contact:email> <contact:clID>a000006</contact:clID> <contact:crID>a000006</contact:crID> <contact:crDate>2007-10-23T10:13:59.000Z</contact:crDate> <contact:upDate>2007-10-23T10:21:26.000Z</contact:upDate> </contact:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:contact> <eurid:type>registrant</eurid:type> <eurid:vat>3455345645</eurid:vat> <eurid:lang>en</eurid:lang> <eurid:onhold>false</eurid:onhold> <eurid:monitoringStatus>updatable</eurid:monitoringStatus> </eurid:contact> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>info-contact-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 50

EPP Guidelines

In this example the reply returned once the <contact:info> command has been used, shows that the monitored update of the contact has already been submitted, but still needs to be approved by EURid. The <eurid:monitoringStatus> tag therefore has a status of approvalPending: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <contact:infData> <contact:id>c1573194</contact:id> <contact:roid>1573194-EURID</contact:roid> <contact:status s="ok"/> <contact:postalInfo type="loc"> <contact:name>Klaus Example</contact:name> <contact:org>Example Company</contact:org> <contact:addr> <contact:street>Kingstreet 88</contact:street> <contact:street>bus 5</contact:street> <contact:city>Brussels</contact:city> <contact:pc>1000</contact:pc> <contact:cc>BE</contact:cc> </contact:addr> </contact:postalInfo> <contact:voice>+32.111111111</contact:voice> <contact:fax>+35.22222222</contact:fax> <contact:email>info@eurid.eu</contact:email> <contact:clID>a000006</contact:clID> <contact:crID>a000006</contact:crID> <contact:crDate>2007-10-23T10:13:59.000Z</contact:crDate> <contact:upDate>2007-10-23T10:21:26.000Z</contact:upDate> </contact:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:contact> <eurid:type>registrant</eurid:type> <eurid:vat>3455345645</eurid:vat> <eurid:lang>en</eurid:lang> <eurid:onhold>false</eurid:onhold> <eurid:monitoringStatus>approvalPending</eurid:monitoringStatus> </eurid:contact> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>info-contact-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 51

EPP Guidelines

In this example the <eurid:monitoringStatus> tag does not appear. This means that there is actually no request for a monitored update pending: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <contact:infData> <contact:id>c1573194</contact:id> <contact:roid>1573194-EURID</contact:roid> <contact:status s="ok"/> <contact:postalInfo type="loc"> <contact:name>Klaus Example</contact:name> <contact:org>Example Company</contact:org> <contact:addr> <contact:street>Kingstreet 88</contact:street> <contact:city>Brussel</contact:city> <contact:pc>1000</contact:pc> <contact:cc>BE</contact:cc> </contact:addr> </contact:postalInfo> <contact:voice>+32.111111111</contact:voice> <contact:fax>+35.22222222</contact:fax> <contact:email>info@eurid.eu</contact:email> <contact:clID>a000006</contact:clID> <contact:crID>a000006</contact:crID> <contact:crDate>2007-10-23T10:13:59.000Z</contact:crDate> <contact:upDate>2007-11-06T08:31:39.000Z</contact:upDate> </contact:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:contact> <eurid:type>registrant</eurid:type> <eurid:vat>3455345645</eurid:vat> <eurid:lang>en</eurid:lang> <eurid:onhold>false</eurid:onhold> </eurid:contact> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>info-contact-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 52

EPP Guidelines

The reply from the EPP server can therefore be one of the following: <eurid:monitoringStatus> Updatable ApprovalPending (no result) Remarks The contact is enabled for the monitored update and the Registrar may now perform the transaction. The contact:update command has been sent and the results of the update command need to be approved by EURid. The tag <eurid:monitoringStatus> is omitted from the reply; therefore the contact is not enabled for monitored update.

Please refer to the document Monitored update instructions for more information. It is available in the Downloads section (Documents Instruction Manuals) of the Registrar Extranet.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 53

EPP Guidelines

Create nsgroup
PURPOSE: Create a list of name servers that can be used as a placeholder on a domain registration. This is a EURid specific extension, documented in the schema nsgroup-1.0.xsd. The nsgroup mapping is a EURid specific object-extension to the EPP norm, coherent with the EPP object extension framework. The nsgroup object allows a registrar to group several name servers in one object, to facilitate the mapping between a domain and a list of name servers. When a name server group is attached to a domain (at creation of the domain or through an update), this has the same effect as linking all name servers individually to that domain. When the zone file is generated, the name server group is replaced by the name servers it contains. The advantage is that an update becomes easy. By changing a name server group (e.g. adding an additional name server) it will have an effect on all the domain names that are linked to that name server group. A valid document has the following structure: TAG <epp> <command> <create> <name> <ns> <clTRID> Occurrences min-max 1 1 1 1 0-9 0-1 normalizedString 1-50 containing characters from [a-z][A-Z][0-9][-.] token: 4-255 token: 3-64 Size + remarks

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <name> Contains the (chosen) name for the name server group. <ns> Contains the name of the name server. <clTRID> Contains the transaction ID (for tracking the command) that was provided by the registrar in the incoming command.

Examples:
Example 1: A valid command to create a name server group would therefore be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:nsgroup="http://www.eurid.eu/xml/epp/nsgroup-1.0"> <command> <create> <nsgroup:create> <nsgroup:name>nsgroup-eurid</nsgroup:name> <nsgroup:ns>ns1.eurid.eu</nsgroup:ns> <nsgroup:ns>ns2.eurid.eu</nsgroup:ns> <nsgroup:ns>ns3.eurid.eu</nsgroup:ns>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 54

EPP Guidelines

<nsgroup:ns>ns4.eurid.eu</nsgroup:ns> <nsgroup:ns>ns5.eurid.eu</nsgroup:ns> </nsgroup:create> </create> <clTRID>nsgroup-create-001</clTRID> </command> </epp> The EPP server responds, in case of successful creation, a standard EPP response message: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>nsgroup-create-001</clTRID> <svTRID>eurid-5419750</svTRID> </trID> </response> </epp> Example 2: Please note that the content of the name server group is the responsibility of the registrar. It is perfectly possible to create a name server group with all the same name servers. The result will be that only 1 name server will be linked to the name server group: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:nsgroup="http://www.eurid.eu/xml/epp/nsgroup-1.0"> <command> <create> <nsgroup:create> <nsgroup:name>nsgroup-eurid3</nsgroup:name> <nsgroup:ns>ns1.eurid.eu</nsgroup:ns> <nsgroup:ns>ns1.eurid.eu</nsgroup:ns> <nsgroup:ns>ns1.eurid.eu</nsgroup:ns> <nsgroup:ns>ns1.eurid.eu</nsgroup:ns> <nsgroup:ns>ns1.eurid.eu</nsgroup:ns> </nsgroup:create> </create> <clTRID>nsgroup-create-002</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 55

EPP Guidelines

The EPP server responds, in case of successful creation, a standard EPP response message: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>nsgroup-create-002</clTRID> <svTRID>eurid-5419892</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 56

EPP Guidelines

Update nsgroup
PURPOSE: To update the contents of a name server group. Please note: A nsgroup update updates the whole object at once (there is no <add>, <chg> or <rem> sections as with others EPP objects)! The document structure is identical to the one for the <create> nsgroup: TAG <epp> <command> <update> <name> <ns> <clTRID> Occurrences min-max 1 1 1 1 0-9 0-1 normalizedString 1-50 containing characters from [a-z][A-Z][0-9][-.] token: 4-255 token: 3-64 Size + remarks

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <name> Contains the (chosen) name for the name server group. <ns> Contains the name of the name server. <clTRID> Contains the transaction ID (for tracking the command) that was provided by the registrar in the incoming command.

Example:
A valid command for the update of a nsgroup would be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:nsgroup="http://www.eurid.eu/xml/epp/nsgroup-1.0"> <command> <update> <nsgroup:update> <nsgroup:name>nsgroup-eurid3</nsgroup:name> <nsgroup:ns>ns2.eurid.eu</nsgroup:ns> </nsgroup:update> </update> <clTRID>nsgroup-update-001</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 57

EPP Guidelines

The response from the server will then be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>nsgroup-update-001</clTRID> <svTRID>eurid-5419961</svTRID> </trID> </response> </epp> Please note that when updating a name server group, you are replacing all existing name servers by the set provided in the update command. So if you want to keep the existing name servers and just add another one, you need to re-specify the old ones and add the new one.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 58

EPP Guidelines

Delete nsgroup
PURPOSE: To delete a name server group. Please note: It is not possible to delete a name server group that is still used on 1 or more domains! The structure of the document is identical to that of a <delete> contact: TAG <epp> <command> <delete> <name> <clTRID> Occurrences min-max 1 1 1 1 0-1 normalizedString 1-50 containing characters from [a-z][A-Z][0-9][-.] token: 3-64 Size + remarks

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <nsgroup:name> Contains the name of the name server group.

Example:
A valid command to delete a nsgroup: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:nsgroup="http://www.eurid.eu/xml/epp/nsgroup-1.0"> <command> <delete> <nsgroup:delete> <nsgroup:name>nsgroup-eurid3</nsgroup:name> </nsgroup:delete> </delete> <clTRID>nsgroup-delete-001</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 59

EPP Guidelines

After a successful deletion the server will respond: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>nsgroup-delete-001</clTRID> <svTRID>eurid-5420019</svTRID> </trID> </response> </epp>

Example 2: Deleting a nsgroup which is still linked to a domain name <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:nsgroup="http://www.eurid.eu/xml/epp/nsgroup-1.0"> <command> <delete> <nsgroup:delete> <nsgroup:name>nsgroup-eurid4</nsgroup:name> </nsgroup:delete> </delete> <clTRID>nsgroup-delete-001</clTRID> </command> </epp>

Response 2: Reply from the server: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2305"> <msg>Object association prohibits operation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Nsgroup [nsgroup-eurid4] still linked to 1 domains</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>nsgroup-delete-001</clTRID> <svTRID>eurid-61545511</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 60

EPP Guidelines

Response 3: When the nsgroup deletion refers to a group that does not exist <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2303"> <msg>Object does not exist</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>nsgroup [invalidnsgroup] does not exist</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>nsgroup-delete-001</clTRID> <svTRID>eurid-61545512</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 61

EPP Guidelines

Check nsgroup
PURPOSE: To determine the (in)existence of a name server group.. The structure of the document: TAG <epp> <command> <check> <nsgroup:check> <nsgroup:name> <clTRID> Occurrences min-max 1 1 1 1 1-* 0-1 normalizedString 1-50 containing characters from [a-z][A-Z][0-9][-.] token: 3-64 Size + remarks

Details: <nsgroup:name> Contains the name of the nsgroup to be checked. There is an entry in the reply document for each of the name server groups that were checked. The 'avail' attribute contains a value of 'false' if the nsgroup is not available (= the nsgroup exists) and a value of 'true' if the nsgroup is available, at the time of the check. Please note that a single nsgroup:check command can be used to test the availability (inexistence) of more than one name server groups.

Example:
We would like to check 7 different name server groups: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:nsgroup="http://www.eurid.eu/xml/epp/nsgroup-1.0"> <command> <check> <nsgroup:check> <nsgroup:name>nsgroup-eurid1</nsgroup:name> <nsgroup:name>nsgroup-eurid2</nsgroup:name> <nsgroup:name>nsgroup-eurid3</nsgroup:name> <nsgroup:name>nsgroup-eurid4</nsgroup:name> <nsgroup:name>nsgroup-eurid5</nsgroup:name> <nsgroup:name>nsgroup-eurid6</nsgroup:name> <nsgroup:name>nsgroup-eurid7</nsgroup:name> </nsgroup:check> </check> <clTRID>nsgroup-check-001</clTRID> </command>
</epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 62

EPP Guidelines

The EPP server will return: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:nsgroup="http://www.eurid.eu/xml/epp/nsgroup-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <nsgroup:chkData> <nsgroup:cd> <nsgroup:name avail="true">nsgroup-eurid1</nsgroup:name> </nsgroup:cd> <nsgroup:cd> <nsgroup:name avail="false">nsgroup-eurid2</nsgroup:name> </nsgroup:cd> <nsgroup:cd> <nsgroup:name avail="true">nsgroup-eurid3</nsgroup:name> </nsgroup:cd> <nsgroup:cd> <nsgroup:name avail="false">nsgroup-eurid4</nsgroup:name> </nsgroup:cd> <nsgroup:cd> <nsgroup:name avail="true">nsgroup-eurid5</nsgroup:name> </nsgroup:cd> <nsgroup:cd> <nsgroup:name avail="true">nsgroup-eurid6</nsgroup:name> </nsgroup:cd> <nsgroup:cd> <nsgroup:name avail="true">nsgroup-eurid7</nsgroup:name> </nsgroup:cd> </nsgroup:chkData> </resData> <trID> <clTRID>nsgroup-check-001</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> The example shows that nsgroup-eurid2 and nsgroup-eurid4 exist.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 63

EPP Guidelines

Info nsgroup
PURPOSE: To retrieve the contents of an existing nsgroup. The structure of the document that must be sent: TAG <epp> <command> <info> <nsgroup:info> <nsgroup:name> <clTRID> Occurrences min-max 1 1 1 1 1 0-1 normalizedString 1-50 containing characters from [a-z][A-Z][0-9][-.] token: 3-64 Size + remarks

Details: <nsgroup:name> Contains the name of the name server group.

Example:
Consider the case of a name server group called nsgroup-eurid to contain the following name server names: ns1.eurid.eu ns2.eurid.eu ns3.eurid.eu ns4.eurid.eu ns5.eurid.eu A valid command to retrieve information about the contents of the nsgroup nsgroup-eurid would be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:nsgroup="http://www.eurid.eu/xml/epp/nsgroup-1.0"> <command> <info> <nsgroup:info> <nsgroup:name>nsgroup-eurid</nsgroup:name> </nsgroup:info> </info> <clTRID>nsgroup-check-001</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 64

EPP Guidelines

The server will return the information for that name server group: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:nsgroup="http://www.eurid.eu/xml/epp/nsgroup-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <nsgroup:infData> <nsgroup:name>nsgroup-eurid</nsgroup:name> <nsgroup:ns>ns1.eurid.eu</nsgroup:ns> <nsgroup:ns>ns2.eurid.eu</nsgroup:ns> <nsgroup:ns>ns3.eurid.eu</nsgroup:ns> <nsgroup:ns>ns4.eurid.eu</nsgroup:ns> <nsgroup:ns>ns5.eurid.eu</nsgroup:ns> </nsgroup:infData> </resData> <trID> <clTRID>nsgroup-check-001</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 65

EPP Guidelines

Create domain
PURPOSE: To register an available domain name. Detailed information about how to apply for a domain name during the Sunrise period can be found in Appendix II: Sunrise specific guidelines which is also available on registry.eu. The EPP protocol specifies two ways of working with name servers: name servers as first class objects; name servers as attributes to a domain name.

It is the second possibility that EURid has adopted. Technically speaking, this means you will need to use the <hostAttr> element and not the <hostObj> element. EURid does not have host objects as separate entities. A name server is specified on the domain object command; and is created, deleted or updated as needed, transparently to the client. A host/name server cannot be accessed directly as an EPP object. The EPP standard supposes that the domain name that is being registered, contains the trailing TLD extension. This is because EPP can be used by registries that manage more than one extension. For consistency reasons, we will accept domain names without the ".eu" extension. If however an extension is provided, it will be checked and only ".eu" extensions will be handled. A domain name object has a one year validity period. The two only accepted values for validity periods are 12 months and 1 year. The elements and tags that are relevant for EURid are specified in the following table. Tags for which the minimum occurrence is 0 can be omitted without producing an xml parsing error. TAG <epp> <command> <create> <name> <period> <ns> <hostAttr> <hostName> <hostAddr> <registrant> Occurrences min-max 1 1 1 1 0-1 0-1 1-* 1 0-* 1 EURid server policy limits up to 9 token: 4-255 attribute ip value v4(default) or v6; token: 3-45 token: 3-16 ATTENTION: Redefined by EURid to make it required! token: 1-255 required attrib: unit = "y"|"m" value: 1-99; can be omitted Size + remarks

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 66

EPP Guidelines

<contact>

2-*

token: 3-16 required attrib: "billing" | "tech" | onsite ATTENTION: Modified by EURid to add type "onsite; the registry policy requires 1 billing contact and at least 1 of tech or onsite contact. optional attrib: roid= token (\w|_){1,80}-\w{1,8} Is not used by EURid. As it is a required element in the schema, it must be provided; however, you do not have to specify a value between the tags. CONTAINS EURid SPECIFIC EXTENSIONS

<authInfo> <pw>

1 1

<extension> <ext> <create> <domain> <nsgroup> <secDNS:alg> <secDNS:create> <secDNS:digest> <secDNS:digestType> <secDNS:dsData> <secDNS:flags> <secDNS:infData> <secDNS:keyData> <secDNS:keyTag> <secDNS:maxSigLife> <secDNS:protocol> <secDNS:pubKey> <clTRID>

0-1 1 1 1 0-9

normalizedString 1-50 3|5|6|7 A 40 bytes integer value in hexadecimal format

1 Delegation signer data 256 | 257 Value is 256 for ZSK, or 257 for KSK

Normalized string 0-9 Maximum signature lifetime (in seconds). This field is ignored by EURid. 3 A base 64 value. Any spaces in the public key will be removed. Maximum is 1024 base64 characters 0-1 token: 3-64

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <name> Is the domain name to create, with or without the trailing ".eu". It can be more than 63 characters long but will return an error from the transaction processor when that is the case. <period> Is the domain validity period. Only accepted values are 1 with unit "y" (year) and 12 with unit "m" (month). <ns> Is a list of name servers. Optional <hostAddr> elements allow for specifying required glue records. The attribute ip= v4 or v6 can be omitted, in which case it defaults to ip=v4. <registrant> Is the registrant (or domain name holder) handle of the domain. The registrant must be a valid contact, created on the system before with either EPP or via the Online System.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 67

EPP Guidelines

<contact> Is the list of contacts to associate with this domain. The type attribute can be one of: "billing" (billing contact) (exactly 1), "tech" (technical contact) (0 to 9), "onsite" (onsite contact) (0 to 5). An invalid number of contacts or other contact types are not allowed. <authInfo> Contains the authorization information associated with the domain. This value is currently ignored. <eurid:nsgroup> Contains the list of name server groups.

In the secDNS:create extension, the following elements can be found: <secDNS:dsData> Groups the data for Delegation signer <keyTag> Contains keytag value for the associated key <digestType>Type of the digest currently only type 1 (=SHA1) is supported <digest> Value of the DS record <maxSigLife> Maximum signature lifetime (in seconds). This field is ignored by EURid. <keyData> Contains the DNSSEC key information. <flags> Indicates the type of the key it can be either 256 for ZSK, or 257 for KSK <protocol> Contains protocol value for the associated key, standard value for EURid is 3. <alg> Contains the number representing the algorithm <pubKey> Contains the public DNSSEC key

Examples:
Overview of the examples Example Number 1 2 3 4 5 6 7 8 9 10 11 12 13 Summary A simple create:domain example Registering a domain with two name servers (one with glue record) Invalid case: using a wrong period value Invalid case: a domain with one name server requiring a glue record but with missing IP address Invalid case: a domain name with one name server that does not need a glue record but has one specified in the command. Registering a domain name with one name server and one name server group. Registering a domain name with one name server name that is itself an IDN. Registering an IDN with Unicode encoding Registering an IDN in ACE representation Registering an IDN with Unicode encoding that has normalized representation that differs from the original text. Registering an IDN with a DNSSEC key attached to it Registering an IDN with 4 DNSSEC keys attached to it. This example lists also a number of DNSSEC-related error messages. Registering a domain name with a keygroup attached to it.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 68

EPP Guidelines

Example 1: A valid document for the registration of the domain name mytestdomain.eu: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <create> <domain:create> <domain:name>mytestdomain</domain:name> <domain:registrant>c972723</domain:registrant> <domain:contact type="tech">c112574</domain:contact> <domain:contact type="billing">c112575</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <clTRID>tr12345</clTRID> </command> </epp> The result of this transaction will be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:creData> <domain:name>mytestdomain</domain:name> <domain:crDate>2006-03-21T11:58:50.646Z</domain:crDate> </domain:creData> </resData> <trID> <clTRID>tr12345</clTRID> <svTRID>eurid-5422699</svTRID> </trID> </response> </epp> <result> Contains the result information. <msg> Is the result code in text format. <domain:name> Is the domain name created (with the trailing ".eu") <domain:crDate> Is the real creation date in UTC time. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST). <clTRID> Is the transaction ID provided by the registrar in the input document. <svTRID> Is the server unique transaction ID.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 69

EPP Guidelines

Example 2: The registration of a domain name with name servers (one with a glue record) and 1 redundant element, namely period: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <create> <domain:create> <domain:name>mytestdomain2</domain:name> <domain:period unit="y">1</domain:period> <domain:ns> <domain:hostAttr> <domain:hostName>ns.eurid.eu</domain:hostName> </domain:hostAttr> <domain:hostAttr> <domain:hostName>ns.mytestdomain2.eu</domain:hostName> <domain:hostAddr>1.2.3.4</domain:hostAddr> </domain:hostAttr> </domain:ns> <domain:registrant>c972723</domain:registrant> <domain:contact type="billing">c112575</domain:contact> <domain:contact type="tech">c112574</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <clTRID>tr12345</clTRID> </command> </epp> The EPP server will return: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:creData> <domain:name>mytestdomain2</domain:name> <domain:crDate>2006-03-21T12:07:06.978Z</domain:crDate> </domain:creData> </resData> <trID> <clTRID>tr12345</clTRID> <svTRID>eurid-5422896</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 70

EPP Guidelines

Example 3: The same example as before but with a wrong value for period: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <create> <domain:create> <domain:name>mytestdomain3</domain:name> <domain:period unit="y">2</domain:period> <domain:registrant>c972723</domain:registrant> <domain:contact type="tech">c112574</domain:contact> <domain:contact type="billing">c112575</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <clTRID>tr12345</clTRID> </command> </epp> The result of this transaction will be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2004"> <msg>Parameter value range error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>period must be 1 year or 12 months</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>tr12345</clTRID> <svTRID>eurid-5422897</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 71

EPP Guidelines

Example 4: A registration of a domain name with a name server that requires a glue record but with a missing IP address. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <create> <domain:create> <domain:name>mytestdomain3</domain:name> <domain:period unit="y">1</domain:period> <domain:ns> <domain:hostAttr> <domain:hostName>ns.mytestdomain3.eu</domain:hostName> </domain:hostAttr> </domain:ns> <domain:registrant>c972723</domain:registrant> <domain:contact type="tech">c112574</domain:contact> <domain:contact type="billing">c112575</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <clTRID>tr12345</clTRID> </command> </epp> The EPP server will return: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>missing glue for ns.mytestdomain3.eu</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>tr12345</clTRID> <svTRID>eurid-5422912</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 72

EPP Guidelines

Example 5: Registration of a domain name with a name server and a specified glue record, while there is no need for a glue record: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <create> <domain:create> <domain:name>mytestdomain3</domain:name> <domain:period unit="y">1</domain:period> <domain:ns> <domain:hostAttr> <domain:hostName>ns.anotherdomain.eu</domain:hostName> <domain:hostAddr>1.2.3.4</domain:hostAddr> </domain:hostAttr> </domain:ns> <domain:registrant>c972723</domain:registrant> <domain:contact type="tech">c112574</domain:contact> <domain:contact type="billing">c112575</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <clTRID>tr12345</clTRID> </command> </epp> The result of this transaction will be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>glue not required for ns.anotherdomain.eu</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>tr12345</clTRID> <svTRID>eurid-5422957</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 73

EPP Guidelines

Example 6: Registration of a domain name with a name server group: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <create> <domain:create> <domain:name>mytestdomain3</domain:name> <domain:period unit="y">1</domain:period> <domain:ns> <domain:hostAttr> <domain:hostName>ns.anything.eu</domain:hostName> </domain:hostAttr> <domain:hostAttr> <domain:hostName>ns.everything.eu</domain:hostName> </domain:hostAttr> </domain:ns> <domain:registrant>c972723</domain:registrant> <domain:contact type="tech">c112574</domain:contact> <domain:contact type="billing">c112575</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <extension> <eurid:ext> <eurid:create> <eurid:domain> <eurid:nsgroup>nsgroup-eurid</eurid:nsgroup> </eurid:domain> </eurid:create> </eurid:ext> </extension> <clTRID>tr12345</clTRID> </command> </epp> The EPP server will return: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:creData> <domain:name>mytestdomain3.eu</domain:name> <domain:crDate>2010-05-28T09:38:04.028Z</domain:crDate> </domain:creData> </resData> <trID> <clTRID>tr12345</clTRID> <svTRID>eurid-61545426</svTRID>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 74

EPP Guidelines

</trID> </response> </epp> Example 7: Creation of a domain name with an IDN name server: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <create> <domain:create> <domain:name>testdomain2</domain:name> <domain:period unit="y">1</domain:period> <domain:ns> <domain:hostAttr> <domain:hostName>ns1.rd.de</domain:hostName> <domain:hostName>ns2.xn--rd-via8g.de</domain:hostName> </domain:hostAttr> </domain:ns> <domain:registrant>c218</domain:registrant> <domain:contact type="billing">c11</domain:contact> <domain:contact type="tech">c12</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <clTRID>tr12345</clTRID> </command> </epp> After the successful command the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:creData> <domain:name>testdomain2</domain:name> <domain:crDate>2008-11-12T18:01:33.145Z</domain:crDate> </domain:creData> </resData> <trID> <clTRID>tr12345</clTRID> <svTRID>eurid-7025</svTRID> </trID> </response> </epp> Name server names can be entered in all possible supported characters, provided a valid conversion exists between the Unicode and ACE-notation.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 75

EPP Guidelines

Example 8: Create the IDN domain name dmain.eu: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <create> <domain:create> <domain:name>dmain.eu</domain:name> <domain:registrant>c100000</domain:registrant> <domain:contact type="tech">c100002</domain:contact> <domain:contact type="billing">c100003</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <clTRID>create-domain-00</clTRID> </command> </epp> After the successful registration the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns=http://www.eurid.eu/xml/epp/epp-1.0 xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:creData> <domain:name>dmain.eu</domain:name> <domain:crDate>2009-10-14T08:44:50.618Z</domain:crDate> </domain:creData> </resData> <extension> <idn:mapping> <idn:name> <idn:ace>xn--dmain-jua</idn:ace> <idn:unicode>dmain</idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <clTRID>create-domain-00</clTRID> <svTRID>eurid-38562</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 76

EPP Guidelines

For IDN domain names the result will also contain the following fields in the extension: <idn:mapping> <idn:name> <idn:ace></idn:ace> <idn:unicode></idn:unicode> </idn:name> </idn:mapping> < idn:ace > Contains the registered IDN domain name in the ACE representation. <idn:unicode > Contains the registered IDN domain name in the Unicode representation

IDN Extension for IDN domain names always displays the both notations: Unicode and ACE. The reply contains the domain name queried in the format used in the command. Please note that for IDN domain names in Unicode the reply can be different due to a Nameprepping (RFC 3490/3491). Example 9 Create the IDN domain name with ACE representation xn--dmain-jua.eu (dmain.eu): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <create> <domain:create> <domain:name>xn--dmain-jua.eu</domain:name> <domain:registrant>c100000</domain:registrant> <domain:contact type="tech">c100002</domain:contact> <domain:contact type="billing">c100003</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <clTRID>create-domain-00</clTRID> </command> </epp> After the successful registration the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns=http://www.eurid.eu/xml/epp/epp-1.0 xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:creData> <domain:name> xn--dmain-jua.eu</domain:name> <domain:crDate>2009-10-14T08:44:50.618Z</domain:crDate> </domain:creData> </resData> <extension> <idn:mapping>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 77

EPP Guidelines

<idn:name> <idn:ace>xn--dmain-jua</idn:ace> <idn:unicode>dmain</idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <clTRID>create-domain-00</clTRID> <svTRID>eurid-38562</svTRID> </trID> </response> </epp>

Example 10: Create the domain name .eu (nameprep transformation of an Unicode domain name): <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <create> <domain:create> <domain:name>.eu</domain:name> <domain:registrant>c13</domain:registrant> <domain:contact type="tech">c11</domain:contact> <domain:contact type="billing">c12</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <clTRID>create-domain-00</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 78

EPP Guidelines

After the successful registration the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns=http://www.eurid.eu/xml/epp/epp-1.0 xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:creData> <domain:name>.eu</domain:name> <domain:crDate>2009-10-28T09:24:31.604Z</domain:crDate> </domain:creData> </resData> <extension> <idn:mapping> <idn:name> <idn:ace>xn--uxaa160sfa</idn:ace> <idn:unicode></idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <clTRID>create-domain-00</clTRID> <svTRID>eurid-5301</svTRID> </trID> </response> </epp> The domain name and its Unicode representation have been transformed by a nameprep. In such case the returned output does not the contain original version of the requested domain name.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 79

EPP Guidelines

Example 11: Create the domain name .eu with a DNSSEC key attached to it. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"> <command> <create> <domain:create> <domain:name></domain:name> <domain:registrant>c34</domain:registrant> <domain:contact type="onsite">c14</domain:contact> <domain:contact type="billing">c12</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <extension> <secDNS:create> <secDNS:dsData> <secDNS:keyTag>6615</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>d1ef70078e1927e2004c46994b77fce47eaaf8fb</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAcTnEOkfH1FsT9EI2BmjMB83uDWXpSp57YHa0v6Xg60Usm3Y2F ct1emy+h0+uDstyUl5eILy9eO2eI67m5r0Lck=</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> </secDNS:create> </extension> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 80

EPP Guidelines

After the successful registration the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:creData> <domain:name>.eu</domain:name> <domain:crDate>2010-02-25T10:26:52.618Z</domain:crDate> </domain:creData> </resData> <extension> <idn:mapping> <idn:name> <idn:ace>xn--kxaaayaaoh3byaja8akcm6c.eu</idn:ace> <idn:unicode>.eu</idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <svTRID>eurid-6945</svTRID> </trID> </response> </epp> Example 12: Create the domain name .eu with 4 DNSSEC keys attached to it. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"> <command> <create> <domain:create> <domain:name></domain:name> <domain:registrant>c34</domain:registrant> <domain:contact type="onsite">c14</domain:contact> <domain:contact type="billing">c12</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <extension> <secDNS:create> <secDNS:dsData> <secDNS:keyTag>6615</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>02c867368893ebb3dd7c3d1d2c0593930f551c13</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 81

EPP Guidelines

<secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAcTnEOkfH1FsT9EI2BmjMB83uDWXpSp57YHa0v6Xg60Usm3Y2F ct1emy+h0+uDstyUl5eILy9eO2eI67m5r0Lck=</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> <secDNS:dsData> <secDNS:keyTag>7434</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>9a98ac377b802a91226f5799994e309af63a53d2</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAbsYgvpGRUH9Z0JpgM05Jqi3ghZnF+RQ3+y2MBZBwzmSOPjYEN r/ Kb+YRClJB6wCR+GPy82x5WH8dPUaLzj5UY8=</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> <secDNS:dsData> <secDNS:keyTag>15114</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>7d6c24d58b0235eb0550c64e80f5cfa642a9761c</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAeCQT2XXaLx+ushYsvbeFOXThH7p3L0lhSROL2zyEO1j+Y51Kq TU c2H5eakXg9hI3SFRiGfqegN6wxPzPioGWsU=</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> <secDNS:dsData> <secDNS:keyTag>2460</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>120bff190881e743e9f9f0c4f49ccc230f87d3d2</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAdwbYlysDKjKJxqmErziaw48nunDZdjMn40V/PCD2bqXzB1D2H Lf Lz2ey6zmpvcy6/+k8j+qT7ijeaaxG0zEtMs=</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> </secDNS:create> </extension> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 82

EPP Guidelines

After the successful registration the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:creData> <domain:name>.eu</domain:name> <domain:crDate>2010-02-25T10:26:53.311Z</domain:crDate> </domain:creData> </resData> <extension> <idn:mapping> <idn:name> <idn:ace>xn--pxach8bcbacacf.eu</idn:ace> <idn:unicode>.eu</idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <svTRID>eurid-6946</svTRID> </trID> </response> </epp> When more than 4 keys are used server replies the following: <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2308"> <msg>Data management policy violation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Too many keys</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6947</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 83

EPP Guidelines

When invalid tag is used server replies the following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Invalid keyTag</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6950</svTRID> </trID> </response> </epp> When for tag invalid characters are used the server replies following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>line:22 column:11: Invalid decimal value: expected at least one digit</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> When non-existing algorithm is used the server replies following: ?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Invalid keydata algorithm value: 0</eurid:msg>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 84

EPP Guidelines

</eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6951</svTRID> </trID> </response> </epp>

When incorrect algorithm is used for the given key then server replies following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Invalid pubKey</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6952</svTRID> </trID> </response> </epp> When incorrect digest type is used then server replies following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>digestType must be 1</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6953</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 85

EPP Guidelines

When incorrect or empty digest is used then server replies following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Invalid digest</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-9835</svTRID> </trID> </response> </epp>

When incorrect flag is used then server replies following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Invalid keyTag</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6955</svTRID> </trID> </response> </epp>

When flag not from the list is used then server replies following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 86

EPP Guidelines

<eurid:msg>Invalid flags value: 666</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6956</svTRID> </trID> </response> </epp> When both algorithm values are different then server replies following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Algorithm values should be equal</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6958</svTRID> </trID> </response> </epp> When key value is incorrect different then server replies following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>line:31 column:13: Invalid value: not encoded properly</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 87

EPP Guidelines

Example 13: Create the domain name eurid.eu with a keygroup. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <create> <domain:create> <domain:name>eurid</domain:name> <domain:registrant>c10187242</domain:registrant> <domain:contact type="tech">c34</domain:contact> <domain:contact type="billing">c31</domain:contact> <domain:authInfo> <domain:pw>not-used</domain:pw> </domain:authInfo> </domain:create> </create> <extension> <eurid:ext xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <eurid:create> <eurid:domain> <eurid:keygroup>keygroup1</eurid:keygroup> </eurid:domain> </eurid:create> </eurid:ext> </extension> </command> </epp> Server reply is then the following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:creData> <domain:name>eurid.eu</domain:name> <domain:crDate>2010-05-31T07:46:20.791Z</domain:crDate> </domain:creData> </resData> <trID> <svTRID>eurid-61548835</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 88

EPP Guidelines

When the keygroup used does not exist then server will reply:

<?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2303"> <msg>Object does not exist</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>keygroup sswuypdokyplknwrydxighecgprzgeo does not exist</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-61548830</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 89

EPP Guidelines

Update domain
PURPOSE: To change the value of one or more attributes of the given domain object. It is possible to change a part of a domain, without having to re-specify the elements that do not change. The command is therefore composed of three sections: <add>, <chg> and <rem>: <add> allows the client to add some data to the current domain; <chg> to update current data from the domain; <rem> to remove data.

The fields must be in the following order: <add>, then <rem>, then <chg>. This transaction can be used to update data (even link a new contact to the domain) related to a domain name. However, restrictions have been build-in to ensure that the identity of the registrant remains intact (i.e. org name and/or name). For information about how to change the identity of the registrant, please refer to the sections trade domain and update contact. Name server names can be entered in all possible supported characters, provided a valid conversion exists between the Unicode and ACE-notation. The structure of the document that is relevant for .eu is based on the following schema: TAG <epp> <command> <update> <name> <add> <ns> <hostAttr> <hostName> <hostAddr> <contact> Occurrences min-max 1 1 1 1 0-1 0-1 1-* 1 0-* 0-* token: 4-255 attribute ip value v4(default) or v6; token 3-45 token: 3-16 required attrib: type="admin"|"tech"|"billing"|onsite ATTENTION: Modified by EURid to add type "onsite"; admin can be mentioned but is discarded. token: 1-255 Size + remarks

<rem> <ns> <hostAttr> <hostName> <hostAddr>

0-1 0-1 1-* 1 0-* token: 4-100 Attribute ip value v4(default) or v6 token: 3-45

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 90

EPP Guidelines

<contact>

0-*

token: 3-16 required attrib: type="admin"|"tech"|"billing"|onsite ATTENTION: Redefined by EURid to add type "onsite"; admin can be mentioned but is discarded. token: 3-16

<chg> <registrant> <extension> <ext> <update> <domain> <add> <nsgroup> <rem> <nsgroup> <secDNS:alg> <secDNS:create> <secDNS:digest> <secDNS:digestType> <secDNS:dsData> <secDNS:flags> <secDNS:infData> <secDNS:keyData> <secDNS:keyTag> <secDNS:maxSigLife> <secDNS:protocol> <secDNS:pubKey> <clTRID>

0-1 0-1 0-1 1 1 1 0-1 0-9 0-9 normalizedString 1-50 normalizedString 1-50 3|5|6|7 String hexadecimal 40 characters long 1 Delegation signer data 256 | 257 (value is 256 for ZSK, or 257 for KSK)

Normalized string 0-9 Maximum signature lifetime (in seconds). This field is ignored by EURid. 3 A base 64 value. Any spaces in the public key will be removed. Maximum is 1024 base64 characters 0-1 token: 3-64

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <name> Is the domain name to update, with or without a trailing .eu (see <create> domain for details). The <add> and <rem> sections contain the following child elements, in that order: o <ns> Is used to add or to remove one or more name servers from the name server list. o <contact> Contains one or more contact handles to add or to remove from the contact list. The type attribute can be one of: "billing" (billing contact) (must be exactly 1), "tech" (technical contact) (0 to 9), "onsite" (onsite contact) (0 to 5). The <chg> section contains the following child elements: o <registrant> Is the domain registrant handle. The <extensions> section contains the name server groups. o <add> Is used to add new name server groups. o <rem> Is used to remove the name server groups.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 91

EPP Guidelines

<secDNS:dsData> Contains the DNSSEC related information - Delegation signer data <keyTag> Contains keytag value for the associated key <digestType>Type of the digest currently only 1 is supported <digest> Value of the DS record <maxSigLife> Maximum signature lifetime (in seconds). This field is ignored by EURid. <keyData> Contains the DNSSEC key information. <flags> Indicates the type of the key it can be either 256 for ZSK, or 257 for KSK <protocol> Contains protocol value for the associated key, standard value for EURid is 3. <alg> Contains the number representing the algorithm <pubKey> Contains the public DNSSEC key

Please note that it is possible in one document to remove a name server and replace it with another one that needs an IP address, while at the same time adding a name server group.

Examples:
Overview of the examples Example Number 1 2 3 4 5 6 Summary An update combining several changes (technical contacts, name server, name server group) Invalid case: trying to add a name server that is already used by the domain name. Invalid case: Trying to remove a contact that is not linked to the domain name Add a DNSSEC key Removing two DNSSEC keys from an IDN domain name. Adding a keygroup

Example 1: In this example, we combine a few changes. For the domain name mytestdomain3, a new name server (with glue record) and a new technical contact is added, while another technical contact is removed. At the same time we add a new name server group and remove another one: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <update> <domain:update> <domain:name>mytestdomain3</domain:name> <domain:add> <domain:ns> <domain:hostAttr> <domain:hostName>ns.unknown.eu</domain:hostName> </domain:hostAttr> <domain:hostAttr> <domain:hostName>ns.mytestdomain3.eu</domain:hostName> <domain:hostAddr ip="v4">1.2.3.4</domain:hostAddr> </domain:hostAttr> </domain:ns> <domain:contact type="tech">c396292</domain:contact> </domain:add>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 92

EPP Guidelines

<domain:rem> <domain:contact type="tech">c112574</domain:contact> </domain:rem> </domain:update> </update> <extension> <eurid:ext> <eurid:update> <eurid:domain> <eurid:add> <eurid:nsgroup> nsgroup-eurid2</eurid:nsgroup> </eurid:add> <eurid:rem> <eurid:nsgroup>nsgroup-eurid</eurid:nsgroup> </eurid:rem> </eurid:domain> </eurid:update> </eurid:ext> </extension> <clTRID>domain-upd-1</clTRID> </command> </epp>

After a successful command the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>OK</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>domain-upd-1</clTRID> <svTRID>eurid-5423056</svTRID> </trID> </response> </epp> Example 2: In this example we will try to add a name server that is already linked: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <update> <domain:update> <domain:name>mytestdomain3</domain:name> <domain:add> <domain:ns>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 93

EPP Guidelines

<domain:hostAttr> <domain:hostName>ns.unknown.eu</domain:hostName> </domain:hostAttr> </domain:ns> </domain:add> </domain:update> </update> <clTRID>domain-upd-2</clTRID> </command> </epp> The corresponding reply from the server would be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2002"> <msg>Command use error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Nameserver ns.unknown.eu is already linked to domain mytestdomain3</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>domain-upd-2</clTRID> <svTRID>eurid-5423079</svTRID> </trID> </response> </epp> Example 3: In this example we will try to remove a contact that was not linked: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <update> <domain:update> <domain:name>mytestdomain3</domain:name> <domain:rem> <domain:contact type="tech">c808806</domain:contact> </domain:rem> </domain:update> </update> <clTRID>ecom001</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 94

EPP Guidelines

The server will then reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2308"> <msg>Data management policy violation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Contact c808806 is not linked to domain mytestdomain3</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>ecom001</clTRID> <svTRID>eurid-5423095</svTRID> </trID> </response> </epp> Example 4: In this example we will try to add a DNSSEC key: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"> <command> <update> <domain:update> <domain:name>mytestdomain</domain:name> <domain:add> </domain:add> </domain:update> </update> <extension> <eurid:ext> <eurid:update> <eurid:domain> </eurid:domain> </eurid:update> </eurid:ext> <secDNS:update> <secDNS:add> <secDNS:dsData> <secDNS:keyTag>24711</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>F2C66F53EF0089941DA9F56442FA17D50B8D2228</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 95

EPP Guidelines

<secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAbaTzz7rA3nfmECOKCq1VDjcU5xvGFN1Qz5+qua5cm5FtaDisc o9 zv6hP0ptoACXmXZsajqltPue3ASgbHDRFu4PF/fz0sniP3ZJHPlMID1n Nhp2JdjT0J4uXosSzLKo59EDIKLfUp43S7QvnmA5zMGKvfcJlgJgJ5ZZ HAsSaiUd</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> </secDNS:add> </secDNS:update> </extension> </command> </epp>

The server will then reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <svTRID>eurid-61548923</svTRID> </trID> </response> </epp>

If there are already 4 keys linked to the domain name then the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2308"> <msg>Data management policy violation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Too many keys</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-61548997</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 96

EPP Guidelines

Example 5: In this example we will remove 2 DNSSEC keys from IDN domain name: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"> <command> <update> <domain:update> <domain:name>xn--jxacp8ec.eu</domain:name> </domain:update> </update> <extension> <secDNS:update> <secDNS:rem> <secDNS:keyTag>31808</secDNS:keyTag> <secDNS:keyTag>53493</secDNS:keyTag> </secDNS:rem> </secDNS:update> </extension> <clTRID>update-domain-remdnssec-00</clTRID> </command> </epp>

After successful command server will reply: ?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>update-domain-remdnssec-00</clTRID> <svTRID>eurid-61549318</svTRID> </trID> </response> </epp> Example 6: In this example we will add a keygroup <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <update> <domain:update> <domain:name>---</domain:name> </domain:update>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 97

EPP Guidelines

</update> <extension> <eurid:ext> <eurid:update> <eurid:domain> <eurid:add> <eurid:keygroup>keygroup1</eurid:keygroup> </eurid:add> </eurid:domain> </eurid:update> </eurid:ext> </extension> </command> </epp> After successful command server will reply: ?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <svTRID>eurid-61549318</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 98

EPP Guidelines

Delete domain
PURPOSE: To schedule the deletion of a domain name. In case a domain name has to be deleted a deleteDate needs to be specified. This is the date on which the domain name will be put in quarantine state(. If the domain has to be deleted during the same day, the date of today needs to be specified. Deletes are scheduled to occur every hour. The effective deletion of a domain name occurs between the specified date (rounded to the hour) and the end of the same day. When a deletion is scheduled for a date in the past or for the current date, the time will be randomly spread over the remaining hours of the current day. Please keep in mind that EURids EPP system returns the date in UTC as specified by the EPP standard but all operations scheduled to happen on a certain point in time will be processed in local Belgian time (CET/CEST). The structure of the document is very simple: TAG <epp> <command> <delete> <name> <clTRID> <extension> <ext> <delete> <domain> <deleteDate> <overwriteDeleteDate> Occurrences min-max 1 1 1 1 0-1 0-1 1 1 1 1 0-1 Size + remarks

token: 1-255 token: 3-64

deletion date of the domain name true|false

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <name> Is the domain name to delete, with or without a trailing .eu (please see <create> domain for details). <deleteDate> Is the delete date. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST). <overwriteDeleteDate> This field can be specified to change the deletion date of a scheduled delete without undeleting the domain name first. The new <deleteDate> needs to be specified in the same command. This command works regardless of whether the domain name was already scheduled for deletion.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 99

EPP Guidelines

Examples:
Example 1: A valid document for the deletion of the domain name ecom: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <delete> <domain:delete> <domain:name>ecom</domain:name> </domain:delete> </delete> <extension> <eurid:ext> <eurid:delete> <eurid:domain> <eurid:deleteDate>2008-06-26T14:40:51.0Z</eurid:deleteDate> </eurid:domain> </eurid:delete> </eurid:ext> </extension> <clTRID>del-ecom</clTRID> </command> </epp> When an <delete> command has been processed successfully, the server responds with an EPP response with no <resData> element: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>del-ecom</clTRID> <svTRID>eurid-7067601</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 100

EPP Guidelines

Example 2: Registrars can re-schedule another deletion date without first sending an undelete command, by setting the value of overwriteDeleteDate to true: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns=http://www.eurid.eu/xml/epp/epp-1.0 xmlns:domain=http://www.eurid.eu/xml/epp/domain-1.0 xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <delete> <domain:delete> <domain:name>domain-to-update-overwrite-true</domain:name> </domain:delete> </delete> <extension> <eurid:ext> <eurid:delete> <eurid:domain> <eurid:deleteDate>2010-01 01T00:00:00.0Z</eurid:deleteDate> <eurid:overwriteDeleteDate>true</eurid:overwriteDeleteDate> </eurid:domain> </eurid:delete> </eurid:ext> </extension> <clTRID>domain-delete-overwrite-00</clTRID> </command> </epp> When the command has been processed successfully the server responds: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>domain-delete-overwrite-00</clTRID> <svTRID>eurid-6996</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 101

EPP Guidelines

Undelete domain
PURPOSE: To erase the value of the deletion date set by a previous delete domain command. As a delete of a domain name can be scheduled with a delete date in the future, this extension is offered to undo the scheduled delete. The undelete domain command can be used as long as the domain name is not yet in quarantine. The structure of the document is very simple: TAG <epp> <command> <undelete> <name> <clTRID> Occurrences min-max 1 1 1 1 0-1 token: 1-255 token: 3-64 Size + remarks

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <name> Is the domain name to undelete, with or without a trailing .eu (please see <create> domain for details).

Example:
A valid command to undelete the scheduled deletion for the domain name ecom would therefore be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <undelete> <domain:undelete> <domain:name>ecom</domain:name> </domain:undelete> </undelete> <clTRID>undel-ecom</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 102

EPP Guidelines

When an <undelete> command has been processed successfully, the server responds with an EPP response with no <resData> element: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>undel-ecom</clTRID> <svTRID>eurid-7067602</svTRID> </trID> </response> </epp>

When an <undelete> command is issued on the domain name (in the example: .eu) that was not scheduled for deletion then the system reply is the following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2304"> <msg>Object status prohibits operation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Domain [] is not scheduled for delete</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>undelete-domain-00</clTRID> <svTRID>eurid-61561062</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 103

EPP Guidelines

Transfer domain
PURPOSE: To transfer a domain name from one registrar to another registrar. It is the new registrar (the one the domain name is transferred to) that has to initiate this transaction. Once this command has been received, the initiating registrar will be notified by an automated message. Confirmation by the registrant is obligatory for a transfer. Registrars can initiate transfers using a unique authorisation code given to them by their registrants. The authorisation code is used to pre-confirm the transfer transaction. If no authorisation code is specified in the command, an email is sent to the registrant to ask for a confirmation, either through a secure web page or (as a fallback) by fax. Upon receipt of the confirmation by the registrant (via the authorisation code, via the secure web page, or via fax), EURid will check the data provided. If everything is correct, EURid will accept the transfer. The domain name will be transferred on the day that was specified in the command. Please note that the request will automatically fail if EURid does not receive a confirmation from the registrant within 14 days. A transfer request can be cancelled by the registrar. Upon completion of the transfer, both registrars involved are informed. This transaction can only be used to transfer a domain name from one registrar to another. It can, however, not be used to change the registrant of the domain. A separate transaction exists to do this, i.e. trade domain. The structure of the document is: TAG <epp> <command> <transfer> Occurrences min-max 1 1 1 required attrib: op="approve"| "cancel"|"query"|"reject"|"request" ATTENTION: Modified by EURid to only accept "request" or cancel as a valid attribute. token: 1-255 required attrib: unit = "y"|"m" value: 1-99 Size + remarks

<name> <period> <extension> <ext> <transfer> <domain> <registrant> <trDate>

1 0-1 0-1 1 1 1 1 0-1

only when op=request token: 3-16 dateTime

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 104

EPP Guidelines

<billing> <tech> <onsite> <ns> <hostAttr> <hostName> <hostAddr> <nsgroup> <ownerAuthCode> <cancel> <reason> <secDNS:alg> <secDNS:create> <secDNS:digest> <secDNS:digestType> <secDNS:dsData> <secDNS:flags> <secDNS:infData> <secDNS:keyData> <secDNS:keyTag> <secDNS:maxSigLife> <secDNS:protocol> <secDNS:pubKey> <clTRID>

1 0-5 0-5 0-9 1-* 1 0-* 0-9 0-1 1 1

token: 3-16 token: 3-16 token: 3-16

token: 4-255 attribute ip value v4(default) or v6 token: 3-45 normalizedString 1-50 token: [0-9]{15} only when op="cancel" normalizedString: 1-250 3|5|6|7 String hexadecimal 40 characters long 1 Delegation signer data 256 | 257 (value is 256 for ZSK, or 257 for KSK)

0-1

Normalized string 0-9 Maximum signature lifetime (in seconds). This field is ignored by EURid. 3 A base 64 value. Any spaces in the public key will be removed. Maximum is 1024 base64 characters token: 3-64

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <transfer op="request"|"cancel"> Is the command tag to request or to cancel a transfer. The other operations are not implemented. <name> Is the domain name to be transferred, with or without a trailing .eu. <period> Is the domain validity period. Only accepted values are 1 with unit "y" (year) and 12 with unit "m" (month). This element can be removed. When specified, it must be 1 year or 12 months. <registrant> Is the registrant handle of the transferred domain; instead of specifying the handle, you can specify: #AUTO#. The registrant info will then be copied from the current registration. <trDate> Is the requested date of the transfer; the default value is the date of the request. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST). <billing>, <tech>, <onsite> Are the different contact handles of the transferred domain. Each contact should belong to the new registrar. Please refer to create contact for information on the meaning of each label. <ns> Is a set of name servers, with or without IP addresses (only needed as glue records). See also create domain for more info. <nsgroup> Is a set of name server groups.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 105

EPP Guidelines

<ownerAuthCode> Providing the authorisation code, the transfer request can be preconfirmed. An authorisation code always consists of 15 decimal digits. It is valid for 30 calendar days and is linked to one combination of registrant and domain name only. <reason> Contains the reason for cancelling the transfer request. The reason will be forwarded by email to the registrant. <secDNS:dsData> Contains the DNSSEC related information - Delegation signer data <keyTag> Contains keytag value for the associated key <digestType>Type of the digest currently only 1 is supported <digest> Value of the DS record <maxSigLife> Maximum signature lifetime (in seconds). This field is ignored by EURid. <keyData> Contains the DNSSEC key information. <flags> Indicates the type of the key it can be either 256 for ZSK, or 257 for KSK <protocol> Contains protocol value for the associated key, standard value for EURid is 3. <alg> Contains the number representing the algorithm <pubKey> Contains the public DNSSEC key

Examples:
Overview of the examples Example Number 1 2 3 4 5 6 7 8 Summary A simple transfer command example Invalid case: trying to perform a transfer of a domain name that is already in registrars portfolio A transfer with authorisation code Cancellation of a pending transfer request Invalid case: Attempt to transfer that is locked Initiating a transfer with AUTO option Transferring a domain name and link a given keygroup to it Transferring a domain name and link DNSSEC keys

Example 1: A correct transfer command for the domain name something, without providing the authorisation code, looks like: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <transfer op="request"> <domain:transfer> <domain:name>something</domain:name> </domain:transfer> </transfer> <extension> <eurid:ext> <eurid:transfer> <eurid:domain> <eurid:registrant>ak4589</eurid:registrant> <eurid:trDate>2005-09-29T22:00:00.0Z</eurid:trDate> <eurid:billing>jj1</eurid:billing> <eurid:tech>mt24</eurid:tech> <eurid:nsgroup>nsgroup-eurid</eurid:nsgroup>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 106

EPP Guidelines

</eurid:domain> </eurid:transfer> </eurid:ext> </extension> <clTRID>trf-001</clTRID> </command> </epp> When a transfer command has been processed successfully, the server responds with an EPP response with no <resData> element: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>trf-001</clTRID> <svTRID>eurid-6990862</svTRID> </trID> </response> </epp> Example 2: When the registrar tries to transfer a domain name that is already linked to his account, he will receive an error message: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <transfer op="request"> <domain:transfer> <domain:name>mytestdomain</domain:name> </domain:transfer> </transfer> <extension> <eurid:ext> <eurid:transfer> <eurid:domain> <eurid:registrant>c981095</eurid:registrant> <eurid:trDate>2006-03-21T22:00:00.0Z</eurid:trDate> <eurid:billing>c112575</eurid:billing> <eurid:tech>c112574</eurid:tech> <eurid:nsgroup>nsgroup-eurid</eurid:nsgroup> </eurid:domain> </eurid:transfer> </eurid:ext> </extension> <clTRID>trf-001</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 107

EPP Guidelines

The server will then reply the following message: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2106"> <msg>Object is not eligible for transfer</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>The domain mytestdomain is already yours</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>trf-001</clTRID> <svTRID>eurid-5423267</svTRID> </trID> </response> </epp> Example 3: A correct transfer command for the domain name domaintobetransfered and providing the authorisation code, looks like: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <transfer op="request"> <domain:transfer> <domain:name>domaintobetransfered</domain:name> </domain:transfer> </transfer> <extension> <eurid:ext> <eurid:transfer> <eurid:domain> <eurid:registrant>#auto#</eurid:registrant> <eurid:trDate>2008-04-22T22:00:00.0Z</eurid:trDate> <eurid:billing>c4436955</eurid:billing> <eurid:tech>c4436957</eurid:tech> </eurid:domain> <eurid:ownerAuthCode>238110218175066</eurid:ownerAuthCode> </eurid:transfer> </eurid:ext> </extension> <clTRID>trf-001</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 108

EPP Guidelines

For a correct transaction, the following response is given: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>trf-001</clTRID> <svTRID>eurid-40592831</svTRID> </trID> </response> </epp> If an erroneous authorisation code has been entered in the request, the response from the system is as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2306"> <msg>Parameter value policy error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>authorisation code owner is invalid or has expired</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>trf-001</clTRID> <svTRID>eurid-40592841</svTRID> </trID> </response> </epp> Example 4: Cancellation of a pending transfer request: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain=http://www.eurid.eu/xml/epp/domain-1.0 xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <transfer op="cancel"> <domain:transfer> <domain:name>domaintransfertobecancelled</domain:name> </domain:transfer> </transfer> <extension> <eurid:ext> <eurid:cancel> <eurid:reason>The reason for cancelling the transfer</eurid:reason> </eurid:cancel> </eurid:ext>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 109

EPP Guidelines

</extension> <clTRID>clTRID0001</clTRID> </command> </epp> For a correct request, the following response is given: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>clTRID0001</clTRID> <svTRID>eurid-40590647</svTRID> </trID> </response> </epp> If the registrar does not have a pending transfer request for the domain name, the following response is given: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2304"> <msg>Object status prohibits operation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Transfer not found</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>clTRID0001</clTRID> <svTRID>eurid-40590648</svTRID> </trID> </response> </epp> Example 5: Initiating a transfer for a locked domain name results in the following error: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2308"> <msg>Data management policy violation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>domain [TransferTest] has invalid status (serverTransferprohibited)</eurid:msg>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 110

EPP Guidelines

</eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-123</svTRID> </trID> </response> </epp> To detect whether a certain domain name is locked or not, version 2 of the EPP commands info:domain and check:domain can be used. Please note that filing a transfer request for a locked domain name will result in the allocation of one hit point. Example 6: Initiating a transfer with Auto-command and 2 name servers used: <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xsi:schemaLocation="http://www.eurid.eu/xml/epp/eurid-1.0 eurid1.0.xsd" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <transfer op="request"> <domain:transfer> <domain:name>test.eu</domain:name> </domain:transfer> </transfer> <extension> <eurid:ext> <eurid:transfer> <eurid:domain> <eurid:registrant>#AUTO#</eurid:registrant> <eurid:billing>c185752</eurid:billing> <eurid:tech>c185793</eurid:tech> <eurid:ns> <domain:hostAttr> <domain:hostName>ns1.eurid.eu</domain:hostName> </domain:hostAttr> <domain:hostAttr><domain:hostName>ns2.eurid.eu</domain:hostName> </domain:hostAttr> </eurid:ns> </eurid:domain> </eurid:transfer> </eurid:ext> </extension> <clTRID>1268963615775</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 111

EPP Guidelines

System reply would be the following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>trf-001</clTRID> <svTRID>eurid-61545445</svTRID> </trID> </response> </epp> Example 7: Initiating a transfer for a domain name specifying a keygroup: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <transfer op="request"> <domain:transfer> <domain:name>avaialebledomainsaname2xr.eu</domain:name> <domain:period unit="y">1</domain:period> </domain:transfer> </transfer> <extension> <eurid:ext> <eurid:transfer> <eurid:domain> <eurid:registrant>c11130723</eurid:registrant> <eurid:billing>c4436955</eurid:billing> <eurid:tech>c4436957</eurid:tech> <eurid:keygroup>lmgpblhauvcmlxyrlldlhxzyzsguzesshqqkubcteacsc</eurid: keygroup> </eurid:domain> </eurid:transfer> </eurid:ext> </extension> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 112

EPP Guidelines

System reply would be the following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <svTRID>eurid-55684679</svTRID> </trID> </response> </epp> Example 8: Initiating a transfer for a domain name specifying 4 DNSSEC keys: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"> <command> <transfer op="request"> <domain:transfer> <domain:name>lzp.eu</domain:name> <domain:period unit="y">1</domain:period> </domain:transfer> </transfer> <extension> <eurid:ext> <eurid:transfer> <eurid:domain> <eurid:registrant>c9232372</eurid:registrant> <eurid:billing>c129179</eurid:billing> <eurid:tech>c7838742</eurid:tech> </eurid:domain> </eurid:transfer> </eurid:ext> <secDNS:create> <secDNS:dsData> <secDNS:keyTag>6615</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>610ec51c45c10233f5ab21e5874ab35a24f4758d</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAcTnEOkfH1FsT9EI2BmjMB83uDWXpSp57YHa0v6Xg60Usm3Y2F ct1em y+h0+uDstyUl5eILy9eO2eI67m5r0Lck=</secDNS:pubKey> </secDNS:keyData>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 113

EPP Guidelines

</secDNS:dsData> <secDNS:dsData> <secDNS:keyTag>7434</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>4f5a2c9faaa9eaf18404d048acef39ec5ff1f298</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAbsYgvpGRUH9Z0JpgM05Jqi3ghZnF+RQ3+y2MBZBwzmSOPjYEN r/Kb+Y RClJB6wCR+GPy82x5WH8dPUaLzj5UY8=</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> <secDNS:dsData> <secDNS:keyTag>15114</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>e2216fc2c3889f56963df8b211aa5755a7f1f966</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAeCQT2XXaLx+ushYsvbeFOXThH7p3L0lhSROL2zyEO1j+Y51Kq TU c2H5eakXg9hI3SFRiGfqegN6wxPzPioGWsU=</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> <secDNS:dsData> <secDNS:keyTag>2460</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>f1cb5cd9243bd884a671000ddaee829434155204</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAdwbYlysDKjKJxqmErziaw48nunDZdjMn40V/PCD2bqXzB1D2H Lf Lz2ey6zmpvcy6/+k8j+qT7ijeaaxG0zEtMs=</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> </secDNS:create> </extension> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 114

EPP Guidelines

System reply would be the following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <svTRID>eurid-61465237</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 115

EPP Guidelines

Transfer from quarantine


PURPOSE: To transfer a domain from another registrar to your portfolio when the domain name is in quarantine. When a registrar deletes a domain name, it will be put in quarantine for 40 days. During this period the domain name can not be registered, updated or transferred via the normal procedure. However, the registrant can ask another registrar to transfer his domain name out of the quarantine. The new registrar has to use the specific transfer from quarantine command for this purpose. This makes it explicitly clear what type of transaction the registrar intends to execute. This transaction should be considered as a last resort and as such will have a higher cost (documented on the EURid website). A new registration period begins once the transfer has been processed. It is the new registrar (the one the domain name is transferred to) that has to initiate this transaction. Once this command has been received, the initiating registrar will be notified by an automated message. Confirmation by the registrant is obligatory for a transfer from quarantine. Registrars can initiate transfers using a unique authorisation code given to them by their registrants. The authorisation code is used to pre-confirm the transfer transaction. If no authorisation code is specified in the command, an email is sent to the registrant to ask for a confirmation, either through a secure web page or (as a fallback) by fax. Upon receipt of the confirmation by the registrant (via the authorisation code, via the secure web page, or via fax), EURid will check the data provided. If everything is correct, EURid will accept the transfer. The domain name will be transferred on the day that was specified in the command. Please note that the request will automatically fail if EURid does not receive a confirmation from the registrant within 14 days. A transfer from quarantine request can be cancelled by the registrar. Upon completion of the transfer both registrars involved are informed. The structure of the document is identical to the structure of a normal transfer, except for the tag <transferQ>: TAG <epp> <command> <transferq> <name> <extension> <ext> <transferq> <domain> <registrant> <trDate> <billing> Occurrences min-max 1 1 1 1 0-1 1 1 1 1 0-1 1 Size + remarks

required attrib: op="request"|"cancel" token: 1-255

only when op=request token: 3-16 dateTime token: 3-16

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 116

EPP Guidelines

<tech> <onsite> <ns> <hostAttr> <hostName> <hostAddr> <nsgroup> <ownerAuthCode> <cancel> <reason> <secDNS:alg> <secDNS:create> <secDNS:digest> <secDNS:digestType> <secDNS:dsData> <secDNS:flags> <secDNS:infData> <secDNS:keyData> <secDNS:keyTag> <secDNS:maxSigLife> <secDNS:protocol> <secDNS:pubKey> <clTRID>

0-5 0-5 0-9 1-* 1 0-* 0-9 0-1 1 1 3|5|6|7

token: 3-16 token: 3-16 token: 4-100 token: 4-255 attribute ip value v4(default) or v6 token: 3-45 normalizedString 1-50 token: [0-9]{15} only when op="cancel" normalizedString: 1-250

String hexadecimal 40 characters long 1 256 | 257 Delegation signer data Value is 256 for ZSK, or 257 for KSK

Normalized string 0-9 Maximum signature lifetime (in seconds). This field is ignored by EURid. 3 A base 64 value. Any spaces in the public key will be removed. Maximum is 1024 base64 characters token: 3-64

0-1

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <transferq op="request" | "cancel"> Is the command tag to request or to cancel a transfer from quarantine. <name> Is the domain name to be transferred from quarantine, with or without a trailing .eu. <registrant> Is the registrant handle of the transferred domain, instead of specifying the handle, you can specify: #AUTO#. The registrant info will then be copied from the current registration. <trDate> Is the requested date of the transfer, the default value is the date of the request. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST). <billing>, <tech>, <onsite> Are the different contact handles of the transferred domain. Each contact should belong to the new registrar. Please refer to create contact for information on the meaning of each label. <ns> Is a set of name servers, with or without IP addresses (only needed as glue records). <nsgroup> Is a set of name server groups. <ownerAuthCode> Providing the authorisation code, the transfer from quarantine request can be pre-confirmed. An authorisation code always consists of 15 decimal digits. It is valid for 30 calendar days and is linked to one combination of registrant and domain name only. <reason> Contains the reason for cancelling the transfer from quarantine request. The reason will be forwarded by email to the registrant. <secDNS:dsData> Contains the DNSSEC related information - Delegation signer data

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 117

EPP Guidelines

<keyTag> Contains keytag value for the associated key <digestType>Type of the digest currently only 1 is supported <digest> Value of the DS record <maxSigLife> Maximum signature lifetime (in seconds). This field is ignored by EURid. <keyData> Contains the DNSSEC key information. <flags> Indicates the type of the key it can be either 256 for ZSK, or 257 for KSK <protocol> Contains protocol value for the associated key, standard value for EURid is 3. <alg> Contains the number representing the algorithm <pubKey> Contains the public DNSSEC key

Examples:
Example 1: A valid command to initiate a transfer from quarantine for the domain name superdomain without providing the authentication code: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <transferq op="request"> <domain:transferq> <domain:name>superdomain.eu</domain:name> </domain:transferq> </transferq> <extension> <eurid:ext> <eurid:transferq> <eurid:domain> <eurid:registrant>#auto#</eurid:registrant> <eurid:trDate>2002-02-18T22:00:00.0Z</eurid:trDate> <eurid:billing>c11111</eurid:billing> <eurid:tech>c22222</eurid:tech> <eurid:ns> <domain:hostAttr> <domain:hostName>ns1.superdomain.eu</domain:hostName> </domain:hostAttr> <domain:hostAttr> <domain:hostName>ns.test.eu</domain:hostName> </domain:hostAttr> </eurid:ns> </eurid:domain> </eurid:transferq> </eurid:ext> </extension> <clTRID>clientref-123233</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 118

EPP Guidelines

When a transfer from quarantine command has been processed successfully, the server responds with an EPP response with no <resData> element: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>clientref-123233</clTRID> <svTRID>eurid-6993784</svTRID> </trID> </response> </epp> Example 2: A valid command to initiate a transfer from quarantine for the domain name superdomain providing the authentication code: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <transferq op="request"> <domain:transferq> <domain:name>superdomain</domain:name> </domain:transferq> </transferq> <extension> <eurid:ext> <eurid:transferq> <eurid:domain> <eurid:registrant>#AUTO#</eurid:registrant> <eurid:trDate>2002-02-18T22:00:00.0Z</eurid:trDate> <eurid:billing>c35420 </eurid:billing> <eurid:tech>c35475</eurid:tech> <eurid:ns> <domain:hostAttr> <domain:hostName>ns1.superdomain.eu</domain:hostName> </domain:hostAttr> <domain:hostAttr> <domain:hostName>ns.test.eu</domain:hostName> </domain:hostAttr> </eurid:ns> </eurid:domain> <eurid:ownerAuthCode>249054442531789</eurid:ownerAuthCode> </eurid:transferq> </eurid:ext> </extension> <clTRID>clientref-123233</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 119

EPP Guidelines

For a correct request, the following response is given: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>clientref-123233</clTRID> <svTRID>eurid-6996008</svTRID> </trID> </response> </epp> Example 3: Below you find an example of a correct cancellation of a pending transfer from quarantine: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain=http://www.eurid.eu/xml/epp/domain-1.0 xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <transferq op="cancel"> <domain:transferq> <domain:name>domaintransferqtobecancelled</domain:name> </domain:transferq> </transferq> <extension> <eurid:ext> <eurid:cancel> <eurid:reason>The reason for cancelling the transfer from quarantine</eurid:reason> </eurid:cancel> </eurid:ext> </extension> <clTRID>clTRID0001</clTRID> </command> </epp> For a correct request, the following response is given: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>clTRID0001</clTRID> <svTRID>eurid-40590647</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 120

EPP Guidelines

For an incorrect request, for example, the registrar does not have a pending transfer from quarantine request for the domain name at hand; the following response is given: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2304"> <msg>Object status prohibits operation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Transfer from quarantine not found</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>clTRID0001</clTRID> <svTRID>eurid-40590648</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 121

EPP Guidelines

Trade domain
PURPOSE: To transfer a domain from one registrant to another registrant. It is the registrar of the new holder (the one the domain name is transferred to) that has to initiate the trade. When the new registrar has filed the trade request he will receive an automated message confirming that the request has been initiated. An email is at the same time sent to the old registrant (old holder) and to the new registrant (new holder), to ask for a confirmation of the trade, either by web or (as a fallback) by fax. Confirmation by both registrants is obligatory for a trade. Please note that the request will automatically fail if EURid does not receive the confirmations from both registrants within 14 days. A trade request can be cancelled by the registrar. Upon receipt of the confirmations by the registrants, EURid will check the data provided. If everything is correct, EURid will accept the trade. The domain name will be transferred on the day that was specified in the command. Upon completion of the trade both registrars involved are informed. This transaction can be used to trade a domain name from one registrant to another. The new holder is free to choose a registrar; it is thus possible that the registrar for this domain remains the same. The structure of the document is nearly identical to the transfer transaction: TAG <epp> <command> <trade> <name> <extension> <ext> <trade> <domain> <registrant> <trDate> <billing> <tech> <onsite> <ns> <hostAttr> Occurrences min-max 1 1 1 1 0-1 1 1 1 1 0-1 1 0-5 0-5 0-9 1-* token: 3-16 DateTime token: 3-16 token: 3-16 token: 3-16 token: 4-100 only when op="request" required attrib: op="request"|"cancel" token: 1-255 Size + remarks

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 122

EPP Guidelines

<hostName> <hostAddr> <nsgroup> <cancel> <reason> <secDNS:alg> <secDNS:create> <secDNS:digest> <secDNS:digestType> <secDNS:dsData> <secDNS:flags> <secDNS:infData> <secDNS:keyData> <secDNS:keyTag> <secDNS:maxSigLife> <secDNS:protocol> <secDNS:pubKey> <clTRID>

1 0-* 0-9 1 1 3|5|6|7

token: 4-255 attribute ip value v4(default) or v6 token: 3-45 normalizedString 1-50 only when op="cancel" normalizedString: 1-250

String hexadecimal 40 characters long 1 Delegation signer data 256 | 257 Value is 256 for ZSK, or 257 for KSK

Normalized string 0-9 Maximum signature lifetime (in seconds). This field is ignored by EURid. 3 A base 64 value. Any spaces in the public key will be removed. Maximum is 1024 base64 characters 0-1 token: 3-64

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <trade op="request" | "cancel"> Is the command tag to request or to cancel a trade. <name> Is the domain name to be transferred, with or without a trailing .eu. <registrant> Is the new holder (registrant) handle of the transferred domain. <trDate> Is the requested date of the trade; the default value is the date of the request. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST). <billing>, <tech>, <onsite> Are the different contact handles of the transferred domain. Each contact should belong to the registrar of the new registrant. Please refer to create contact for information on the meaning of each label. <ns> Is a set of name servers, with or without IP addresses (only needed as glue records). <nsgroup> Is a set of name server groups. <reason> Contains the reason for cancelling the trade request. The reason will be forwarded by email to the registrants involved. <secDNS:dsData> Contains the DNSSEC related information - Delegation signer data <keyTag> Contains keytag value for the associated key <digestType>Type of the digest currently only 1 is supported <digest> Value of the DS record <maxSigLife> Maximum signature lifetime (in seconds). This field is ignored by EURid. <keyData> Contains the DNSSEC key information. <flags> Indicates the type of the key it can be either 256 for ZSK, or 257 for KSK <protocol> Contains protocol value for the associated key, standard value for EURid is 3. <alg> Contains the number representing the algorithm

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 123

EPP Guidelines

<pubKey> Contains the public DNSSEC key

Examples:
Example 1: A valid command to file a trade request for the domain name somethings would therefore be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <trade op="request"> <domain:trade> <domain:name>somethings</domain:name> </domain:trade> </trade> <extension> <eurid:ext> <eurid:trade> <eurid:domain> <eurid:registrant>c1573194</eurid:registrant> <eurid:trDate>2005-09-29T22:00:00.0Z</eurid:trDate> <eurid:billing>c35420</eurid:billing> <eurid:tech>c35475</eurid:tech> <eurid:nsgroup>nsgroup-eurid</eurid:nsgroup> </eurid:domain> </eurid:trade> </eurid:ext> </extension> <clTRID>trd-001</clTRID> </command> </epp> When a trade command has been processed successfully, the server responds with an EPP response with no <resData> element: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>trd-001</clTRID> <svTRID>eurid-6996920</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 124

EPP Guidelines

Example 2: Below you find an example of a correct cancellation of a pending trade: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain=http://www.eurid.eu/xml/epp/domain-1.0 xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <trade op="cancel"> <domain:trade> <domain:name>domaintradetobecancelled</domain:name> </domain:trade> </trade> <extension> <eurid:ext> <eurid:cancel> <eurid:reason>The reason for cancelling the trade</eurid:reason> </eurid:cancel> </eurid:ext> </extension> <clTRID>clTRID0001</clTRID> </command> </epp> For a correct request, the following response is given: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>clTRID0001</clTRID> <svTRID>eurid-40590647</svTRID> </trID> </response> </epp> For an incorrect request, for example, the registrar does not have a pending trade request for the domain name at hand; the following response is given: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2304"> <msg>Object status prohibits operation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Trade not found</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>clTRID0001</clTRID>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 125

EPP Guidelines

<svTRID>eurid-40590648</svTRID> </trID> </response> </epp> Example 3: Initiating a trade for a locked domain name results in the following error: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2308"> <msg>Data management policy violation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>domain [TransferTest] has invalid status (serverTransferprohibited)</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-123</svTRID> </trID> </response> </epp> To detect whether a certain domain name is locked or not, version 2 of the EPP commands info:domain and check:domain can be used. Please note that filing a trade request for a locked domain name will result in the allocation of one hit point.

Example 4: Initiating trade for a domain name with 4 DNSSEC keys <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0"> <command> <trade op="request"> <domain:trade> <domain:name>ktz.eu</domain:name> </domain:trade> </trade> <extension> <eurid:ext> <eurid:trade> <eurid:domain> <eurid:registrant>c9232372</eurid:registrant> <eurid:billing>c129179</eurid:billing> <eurid:tech>c7838742</eurid:tech> </eurid:domain> </eurid:trade> </eurid:ext>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 126

EPP Guidelines

<secDNS:create> <secDNS:dsData> <secDNS:keyTag>6615</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>e8dadacffab754e9cf40b919d6f698c03309f47c</secDNS:diges t> <secDNS:maxSigLife>604800</secDNS:maxSigLife> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAcTnEOkfH1FsT9EI2BmjMB83uDWXpSp57YHa0v6Xg60U sm3Y2Fct1emy+h0+uDstyUl5eILy9eO2eI67m5r0Lck=</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> </secDNS:create> </extension> </command> </epp> For a correct request, the following response is given: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <svTRID>eurid-61462091</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 127

EPP Guidelines

Example 4: Initiating trade for a domain name with a keygroup <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <trade op="request"> <domain:trade > <domain:name>cxlbbmyncvebyqsum.eu</domain:name> </domain:trade> </trade> <extension> <eurid:ext> <eurid:trade> <eurid:domain> <eurid:registrant>c11130723</eurid:registrant> <eurid:billing>c4436955</eurid:billing> <eurid:tech>c4436957</eurid:tech> <eurid:keygroup>keygroup1</eurid:keygroup> </eurid:domain> </eurid:trade> </eurid:ext> </extension> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 128

EPP Guidelines

Transfer reminder
PURPOSE: To resend transfer and trade confirmation emails. When a trade or transfer is initiated in the EURid system, an email is automatically sent to the current registrant (and in case of a trade, also to the future registrant) to ask for the confirmation of the transaction. Using this command, registrars can resend each confirmation email twice for any pending trade or transfer. If confirmation emails are sent more than twice, the registrar is allocated one hit point. Registrars can send reminder emails for transfers, trades and transfers from quarantine. The structure of the command is: TAG <epp> <extension> <ext> <command> <transferRemind> <domainName> <destination> Occurrences min-max 1 1 1 1 1 1 1 token: 1-255 owner|buyer Size + remarks

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace prefixes to use. <domainName> Is the domain name to be transferred. <destination> Is the destination of the reminder email. The reminder will be sent to the email address of the current registrant (owner) or the future registrant (buyer). In case a transfer has been initiated the email can only be resent to the owner. In case a trade has been initiated the email can be resent to the owner or the buyer.

Examples:
Example 1: The EPP command to send a reminder email to the current registrant can be used for both trade and transfer transactions (including transfer from quarantine). The command is as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <extension> <eurid:ext> <eurid:command> <eurid:transferRemind> <eurid:domainname>abc.eu</eurid:domainname> <eurid:destination>owner</eurid:destination> </eurid:transferRemind> <eurid:clTRID>myCLientID12345</eurid:clTRID> </eurid:command> </eurid:ext> </extension> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 129

EPP Guidelines

The EPP command to send a reminder email to the future registrant can be used for trade transactions only. The command is as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <extension> <eurid:ext> <eurid:command> <eurid:transferRemind> <eurid:domainname>abc.eu</eurid:domainname> <eurid:destination>buyer</eurid:destination> </eurid:transferRemind> <eurid:clTRID>myCLientID12345</eurid:clTRID> </eurid:command> </eurid:ext> </extension> </epp> After a successful command the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <clTRID>myCLientID12345</clTRID> <svTRID>eurid-7219</svTRID> </trID> </response> </epp> Example 2: Resending a reminder for a trade or transfer that was not initiated by that registrar will result in the following reply from the server: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2201"> <msg>Authorization error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Not allowed to send a reminder</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>myCLientID12345</clTRID> <svTRID>eurid-7212</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 130

EPP Guidelines

Example 3: Each reminder email can only be sent twice. If this number is exceeded, the registration system sends the following response: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2305"> <msg>Object association prohibits operation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Maximum number of reminders reached for the owner</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>myCLientID12345</clTRID> <svTRID>eurid-46181174</svTRID> </trID> </response> </epp> Example 4: If the command is used to resend the confirmation email to the buyer although the domain name is only being transferred and not traded, the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2306"> <msg>Parameter value policy error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Parameter value policy error</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>myCLientID12345</clTRID> <svTRID>eurid-7183532</svTRID> </trID> </response> </epp> Please note that registrars would receive one hit point for each situation that resulted in an error message from the server (such as the ones described above).

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 131

EPP Guidelines

Check contact for transfer


PURPOSE: To get an indication on whether to request a transfer or a trade for a certain domain name. CheckContactForTransfer is a command that can be used to determine which transaction type (a trade or a transfer) would be most appropriate to use for a given domain name. The command indicates the likelihood that a transaction should be a transfer by performing a sophisticated fuzzy matching between the contact names. The EPP client sends the CheckContactForTransfer command with two arguments: the domain name and the contact ID of the requesting party. The requesting party is the person or organisation that has asked the registrar to perform the transaction. It could be the current registrant (transfer), or the future registrant (trade). The command returns an integer value between 0 and 100 that represents a similarity percentage. The similarity percentage is the likelihood (probability) that the transaction should be a transfer. Only complete fields are used for the calculations. For natural persons, the full first and last name is used. For organisations, the full organisation name is used. Before similarity is calculated, the names to be compared: have all their special characters, white spaces and punctuation removed; have all their characters set to lower case.

When the fields are completely identical, a similarity of 100% is returned. 100% similarity is also returned when parts of the fields are identical but the order in which they appear is different. Please note that 100% similarity of the full names is no guarantee that: The correct operation is indeed a transfer. The similarity percentage returned only indicates the probability that a transfer would be the correct operation. The operation will meet the other approval checks. For instance, even though a high similarity is returned, a transfer can still be rejected when the address is incomplete or incorrect.

The structure of the document is: TAG <epp> <extension> <ext> <command> <checkContactForTransfer> <domainName> <registrant> Occurrences min-max 1 1 1 1 1 1 1 token: 1-255 token: 3-16 Size + remarks

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <domainName> Is the domain name to be transferred, without a trailing .eu.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 132

EPP Guidelines

<registrant> Is the registrant handle of the registrant to be compared against the current holder.

Example:
Example 1: A correct checkContactForTransfer command for the domain name something looks like: <?xml version="1.0" encoding="UTF-8"?><epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" > <extension> <eurid:ext> <eurid:command> <eurid:checkContactForTransfer> <eurid:domainName>something</eurid:domainName> <eurid:registrant>c3456789</eurid:registrant> </eurid:checkContactForTransfer> <eurid:clTRID>123456</eurid:clTRID> </eurid:command> </eurid:ext> </extension> </epp> If the contact matches the current registrant, the response is as below: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:response> <eurid:checkContactForTransfer <eurid:percentage>100</eurid:percentage> </eurid:checkContactForTransfer> </eurid:response> </eurid:ext> </extension> <trID> <svTRID>eurid-40594348</svTRID> </trID> </response> </epp> Please note that the percentage value returned will be an integer ranging from 0 to 100, where 100 is a perfect match and 0 indicates that the two registrants are of different kinds, in other words one organisation and one natural person.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 133

EPP Guidelines

Example 2: If the request was erroneous, e.g. the registrant contact is not an active contact, the system responds in the following format: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2303"> <msg>Object does not exist</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>contact [c8896696] is not an active contact</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-40594347</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 134

EPP Guidelines

Reactivate domain
PURPOSE: To reactivate a domain name in the registration database after a successful delete operation. This transaction is used when a domain name has been deleted and is now in the status quarantine. The REACTIVATE will re-establish the name in exactly the same state as before the deletion. The term of the registration will be prolonged with one year. This transaction should be considered as a last resort and as such will have a higher cost (documented on the EURid website). The structure of the document is very simple: TAG <epp> <command> <reactivate> <name> <clTRID> Occurrences min-max 1 1 1 1 0-1 token: 1-255 token: 3-64 Size + remarks

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <name> Is the domain name to reactivate, with or without a trailing .eu (see <create> domain for details).

Example:
A valid command to reactivate the domain name ecom would therefore be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <reactivate> <domain:reactivate> <domain:name>ecom</domain:name> </domain:reactivate> </reactivate> <clTRID>reac-01</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 135

EPP Guidelines

When a reactivate command has been processed successfully, the server responds with an EPP response with no <resData> element: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:contact="http://www.eurid.eu/xml/epp/contact-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xmlns:nsgroup="http://www.eurid.eu/xml/epp/nsgroup-1.0" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp-1.0.xsd http://www.eurid.eu/xml/epp/contact-1.0 contact-1.0.xsd http://www.eurid.eu/xml/epp/domain-1.0 domain-1.0.xsd http://www.eurid.eu/xml/epp/eurid-1.0 eurid-1.0.xsd http://www.eurid.eu/xml/epp/nsgroup-1.0 nsgroup-1.0.xsd"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>OK</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>reac-01</clTRID> <svTRID>eurid-517644</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 136

EPP Guidelines

Check domain
PURPOSE: - To check the availability of a domain name; - To check the availability date for a domain name currently in quarantine, provided version 2.0 is chosen in the extension; - To check if a domain name has been locked by the registry for the initiation of trades and transfers provided version 2.0 is chosen in the extension. Registrars can optionally specify a version when using the command check-domain. By default, the command currently uses the old version (1.0). The new version (2.0) returns additional information. In order to avoid abusive querying, rate-limits have been introduced for the EPP command checkdomain. The rate-limits are for a sliding window of 60 (sixty) seconds and the quotas are as follows: EPP Command Check-domain version 1.0 Check-domain version 2.0 Please see the XML-examples for more information. The structure of the document: TAG <epp> <command> <check> <name> <extension> <ext> <check> <domain> <clTRID> Occurrences min-max 1 1 1 1-* 0-1 1 1 1 0-1 attrib: version="1.0"|"2.0" token: 3-64 token: 1-255 Size + remarks Rate limit 360 checks per 60 seconds 60 checks per 60 seconds

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <name> Is a list of names, with or without the .eu, to be checked for availability. You can check the availability of several names at the same time. <eurid:domain version="2.0"/>: The version 2.0 can be specified to access additional information.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 137

EPP Guidelines

Examples:
Example 1: In this example we want to check the availability of the domain names mytestdomain, availableforregistration, application and 001-atlas, using version 1.0 of the command: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <check> <domain:check> <domain:name>mytestdomain</domain:name> <domain:name>availableforregistration</domain:name> <domain:name>application</domain:name> <domain:name>001-atlas</domain:name> </domain:check> </check> <clTRID>check-domain-012</clTRID> </command> </epp> After a successful command the server will return: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:chkData> <domain:cd> <domain:name avail="false">mytestdomain.eu</domain:name> <domain:reason lang="en">in use</domain:reason> </domain:cd> <domain:cd> <domain:name avail="true">availableforregistration.eu</domain:name> </domain:cd> <domain:cd> <domain:name avail="false">application.eu</domain:name> <domain:reason lang="en">quarantine</domain:reason> </domain:cd> <domain:cd> <domain:name avail="false">001-atlas.eu</domain:name> <domain:reason lang="en">application pending</domain:reason> </domain:cd> </domain:chkData> </resData> <extension> <eurid:ext> <eurid:chkData> <eurid:domain> <eurid:cd> <eurid:name accepted="0" expired="0" initial="1" rejected="0">001atlas.eu</eurid:name>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 138

EPP Guidelines

</eurid:cd> </eurid:domain> </eurid:chkData> </eurid:ext> </extension> <trID> <clTRID>check-domain-012</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> <domain:name> Contains an attribute "avail" that can either be false when the domain is not available for registration or true if the domain is available at the time of the check.

In the example above 3 of the 4 domains we checked are not available for registration and 1 is. If there are Sunrise applications pending for the domain name, the reply will also return an extension with the status of the applications. Example 2: A valid command using version 2.0 would look like: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <check> <domain:check> <domain:name>0001-quarantinedomain-0001.eu</domain:name> </domain:check> </check> <extension> <eurid:ext> <eurid:check> <eurid:domain version="2.0"/> </eurid:check> </eurid:ext> </extension> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 139

EPP Guidelines

In case the domain name is in the status quarantine, the reply from the server will be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:chkData> <domain:cd> <domain:name avail="false">0001-quarantinedomain-0001.eu</domain:name> <domain:reason lang="en">quarantine</domain:reason> </domain:cd> </domain:chkData> </resData> <extension> <eurid:ext> <eurid:chkData> <eurid:domain> <eurid:cd> <eurid:name accepted="0" expired="0" initial="0" rejected="0">0001-quarantinedomain-0001.eu</eurid:name> <eurid:availableDate>2007-09-09T23:00:00.000Z</eurid:availableDate> </eurid:cd> </eurid:domain> </eurid:chkData> </eurid:ext> </extension> <trID> <clTRID>epperl-v0.1-s74883-m7</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> <eurid:availableDate> In the case of a quarantined domain name version 2.0 returns the date and time at which the domain name will become available. Please note that the time indicates the start of a 24h time period in which the domain name will be released. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST).

Example 3: When the initiation of trades and transfers has been prohibited by the registry, the response from the server will look like: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:chkData>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 140

EPP Guidelines

<domain:cd> <domain:name avail="false">eurid.eu</domain:name> <domain:reason lang="en">in use</domain:reason> </domain:cd> </domain:chkData> </resData> <extension> <eurid:ext> <eurid:chkData> <eurid:domain> <eurid:cd> <eurid:name accepted="0" expired="0" initial="0" rejected="0">eurid.eu</eurid:name> <eurid:status s="serverTransferProhibited"/> </eurid:cd> </eurid:domain> </eurid:chkData> </eurid:ext> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> <eurid:status s="serverTransferProhibited"/> If a locked domain name is queried by using the version 2 command, this additional attribute is returned.

Example 4: Should a registrar exceed the rate-limit for this command, the server reply will look like: </epp> <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2306"> <msg>Parameter value policy error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Excessive querying</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>epperl-v0.1-s71554-m63</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 141

EPP Guidelines

Example 5: Check the availability of the domain names dmain.eu, .eu and xn--80aa6d.eu: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <check> <domain:check> <domain:name>dmain.eu</domain:name> <domain:name>.eu</domain:name> <domain:name>xn--80aa6d.eu</domain:name> </domain:check> </check> <clTRID>check-domain-00</clTRID> </command> </epp> The EPP server sends the following response: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns=http://www.eurid.eu/xml/epp/epp-1.0 xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:chkData> <domain:cd> <domain:name avail="false">dmain.eu</domain:name> <domain:reason lang="en">in use</domain:reason> </domain:cd> <domain:cd> <domain:name avail="true">.eu</domain:name> </domain:cd> <domain:cd> <domain:name avail="true">xn--80aa6d.eu</domain:name> </domain:cd> </domain:chkData> </resData> <extension> <idn:mapping> <idn:name> <idn:ace>xn--80aa6d</idn:ace> <idn:unicode></idn:unicode> </idn:name> <idn:name> <idn:ace>xn--dmain-jua</idn:ace> <idn:unicode>dmain</idn:unicode> </idn:name> <idn:name> <idn:ace>xn--mxaa9d</idn:ace> <idn:unicode></idn:unicode> </idn:name> </idn:mapping> </extension> <trID>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 142

EPP Guidelines

<clTRID>check-domain-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> The responses for versions 1.0 and 2.0 of <check domain> have been adapted to include the <idn:mapping> extension. For IDN domain names the result will also contain the following fields in the extension: <idn:mapping> <idn:name> <idn:ace></idn:ace> <idn:unicode></idn:unicode> </idn:name> </idn:mapping> < idn:ace > Contains the registered IDN domain name in the ACE representation. <idn:unicode > Contains the registered IDN domain name in the Unicode representation

IDN Extension for IDN domain names always displays the both notations: Unicode and ACE. The reply contains the domain name queried in the format used in the command. Please note that for IDN domain names in Unicode the reply can be different due to a Nameprepping (RFC 3490/3491) Example 6: Check the domain name .eu (nameprep transformation of an unicode domain name): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <check> <domain:check> <domain:name>.eu</domain:name> </domain:check> </check> <clTRID>check-domain-00</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 143

EPP Guidelines

The EPP server sends the following response: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns=http://www.eurid.eu/xml/epp/epp-1.0 xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:chkData> <domain:cd> <domain:name avail="false">.eu</domain:name> <domain:reason lang="en">in use</domain:reason> </domain:cd> </domain:chkData> </resData> <extension> <idn:mapping> <idn:name> <idn:ace>xn--uxaa160sfa</idn:ace> <idn:unicode></idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <clTRID>check-domain-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> The domain name and its Unicode representation have been transformed by a nameprep. In such case the returned output does not contain the original version of the requested domain name.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 144

EPP Guidelines

Info domain
PURPOSE: To retrieve the current information about a domain name. Registrars can optionally specify a version when using the command info-domain. By default, the command currently uses the old versions (1.0). The new version (2.0) returns additional information. A registrar can only request information about a domain name he is currently managing. Domain names under the management of another registrar will not return any info. There is only one exception: using version 2.0 a registrar can also retrieve information about a pending trade or transfer that has been initiated for that domain name by the querying registrar. In order to avoid abusive querying, a rate-limit has been introduced for the EPP command infodomain. The rate-limit is for a sliding window of 60 (sixty) seconds and the quota is as follows: EPP Command Info-domain Please see the XML-examples for more information. The structure of the document: TAG <epp> <command> <info> <name> <extension> <ext> <info> <domain> <clTRID> Occurrences min-max 1 1 1 1 0-1 1 1 1 0-1 attrib: version="1.0"| "2.0" token: 3-64 token: 1-255 attrib: hosts="all"|"del"|"none"|"sub" Size + remarks Rate limit 180 checks per 60 seconds

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <name> Is the domain name, with or without the .eu extension; the attribute hosts is ignored (its default value is all). <eurid:domain version="2.0"/>: The version 2.0 can be specified to access additional information.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 145

EPP Guidelines

Example version 1.0:


Example 1: In this example we want to retrieve information regarding the domain name mytestdomain3.eu: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <info> <domain:info> <domain:name>mytestdomain3</domain:name> </domain:info> </info> <clTRID>info-domain-011</clTRID> </command> </epp> When an info command has been processed successfully, the EPP <resData> element contains a child element <domain:infData> which contains all information related to the domain: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>mytestdomain3.eu</domain:name> <domain:roid>2221881-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c972723</domain:registrant> <domain:contact type="billing">c112575</domain:contact> <domain:contact type="tech">c396292</domain:contact> <domain:ns> <domain:hostAttr> <domain:hostName>ns.anything.eu</domain:hostName> </domain:hostAttr> <domain:hostAttr> <domain:hostName>ns.everything.eu</domain:hostName> </domain:hostAttr> <domain:hostAttr> <domain:hostName>ns.unknown.eu</domain:hostName> </domain:hostAttr> </domain:ns> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2006-05-21T12:19:25.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-05-21T11:09:25.000Z</domain:upDate> <domain:exDate>2009-05-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 146

EPP Guidelines

<eurid:ext> <eurid:infData> <eurid:domain> <eurid:nsgroup>epp-nsgroup1</eurid:nsgroup> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>info-domain-011</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> <domain:name> Is the domain name queried. <domain:roid> Is the Repository Object IDentifier assigned to the object when the object was created. <domain:status> Is the current status of the object. Currently only the "ok" status is supported. <domain:registrant> Is the contact handle of the current registrant of the domain. <domain:contact> Is a list of all contact handles related to the domain. <domain:ns> Is a list of all name servers associated to the domain. <domain:clID> Is the identifier of the sponsoring registrar. <domain:crID> Is the identifier of the registrar who created the object (in the EURID implementation, this is always the same as clID). <domain:crDate> Is the UTC date/time of object creation. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST). <domain:upID> Is the identifier of the client who last updated the object. <domain:upDate> Is the UTC date/time of the last object update. <domain:exDate> Is the UTC expiration date/time of the object. Please be aware that dates in EPP are returned in UTC while scheduled operations will be performed in Belgian time (CET/CEST). <eurid:nsgroup> If a name server group has been attached to the domain, it will be listed in the extension.

Examples version 2.0:


Example 2: A valid command using version 2.0 would look like: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <info> <domain:info> <domain:name>0001-inusedomain-0001-test.eu</domain:name> </domain:info> </info> <extension> <eurid:ext> <eurid:info>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 147

EPP Guidelines

<eurid:domain version="2.0"/> </eurid:info> </eurid:ext> </extension> <clTRID>info-domain-00</clTRID> </command> </epp> In the following you will find an overview of EPP server replies in different situations. For the sake of completeness we will also give the corresponding replies in case version 1.0 would have been used. Reply 1.1: Domain is IN USE and belongs to the querying registrar (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-inusedomain-0001-test.eu</domain:name> <domain:roid>3787937-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c195332</domain:registrant> <domain:contact type="billing">c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T16:43:44.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T16:46:16.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:nsgroup>test</eurid:nsgroup> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-inusedomain-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 148

EPP Guidelines

The output of the version 2 command returns additional information: <eurid:onhold> Contains the value true when the domain is on hold or false if the domain is not on hold. <eurid:quarantined> Contains the value true if the domain name is in quarantine or false if the domain name is not in quarantine.

Reply 1.2: Domain is IN USE and belongs to the querying registrar (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-inusedomain-0001-test.eu</domain:name> <domain:roid>3787937-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c195332</domain:registrant> <domain:contact type="billing">c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T16:43:44.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T16:46:16.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:nsgroup>test</eurid:nsgroup> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-inusedomain-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 149

EPP Guidelines

Reply 2.1: Domain is IN USE, belongs to the querying registrar and is scheduled for deletion (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-scheduledfordelete-0001-test.eu</domain:name> <domain:roid>3787636-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c195332</domain:registrant> <domain:contact type="billing">c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T14:50:19.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T16:46:58.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:nsgroup>test</eurid:nsgroup> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> <eurid:deletionDate>2009-0731T18:00:00.000Z</eurid:deletionDate> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-scheduledfordelete-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> The output of the version 2 command returns additional information: <eurid:onhold> Contains the value true when the domain is on hold or false if the domain is not on hold. <eurid:quarantined> Contains the value true if the domain name is in quarantine or false if the domain name is not in quarantine. <eurid:deletionDate> Is the date on which the domain name will be deleted. Note that dates in EPP are returned in UTC, while scheduled operations are performed in local Belgian time (CET/CEST).

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 150

EPP Guidelines

Reply 2.2: Domain is IN USE, belongs to the querying registrar and is scheduled for deletion (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-scheduledfordelete-0001-test.eu</domain:name> <domain:roid>3787636-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c195332</domain:registrant> <domain:contact type="billing">c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T14:50:19.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T16:46:58.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:nsgroup>test</eurid:nsgroup> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-scheduledfordelete-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Reply 3.1: Domain is in QUARANTINE and belongs to the querying registrar (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-quarantinedomain-0001.eu</domain:name> <domain:roid>3787640-EURID</domain:roid> <domain:status s="ok"/>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 151

EPP Guidelines

<domain:registrant>c195332</domain:registrant> <domain:contact type="billing">c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T14:51:37.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T14:51:37.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>true</eurid:quarantined> <eurid:availableDate>2007-0909T23:00:00.000Z</eurid:availableDate> <eurid:deletionDate>2007-0803T14:00:00.000Z</eurid:deletionDate> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-quarantinedomain-0001</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> The output of the version 2 command returns additional information: <eurid:onhold> Contains the value true when the domain is on hold or false if the domain is not on hold. <eurid:quarantined> Contains the value true if the domain name is in quarantine or false if the domain name is not in quarantine. <eurid:availableDate> In the case of a quarantined domain name, version 2.0 returns the date and time at which the domain name will become available. Note that the time given indicates the start of a 24h time period in which the domain name will be released. Also note that dates in EPP are returned in UTC, while scheduled operations are performed in local Belgian time (CET/CEST). <eurid:deletionDate> Is the date on which the domain name will be deleted. Note that dates in EPP are returned in UTC, while scheduled operations are performed in local Belgian time (CET/CEST).

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 152

EPP Guidelines

Reply 3.2: Domain is in QUARANTINE and belongs to the querying registrar (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <response> <result code="2303"> <msg>Object does not exist</msg> <value> <domain:name>0001-quarantinedomain-0001.eu</domain:name> </value> </result> <trID> <clTRID>0001-quarantinedomain-0001</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Reply 4.1: Domain is ON HOLD and belongs to the querying registrar (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-domainonhold-0001-test.eu</domain:name> <domain:roid>3787823-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c8033037</domain:registrant> <domain:contact type="billing">c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T16:01:26.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T16:49:58.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:nsgroup>test</eurid:nsgroup> <eurid:onhold>true</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-domainonhold-0001-test</clTRID>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 153

EPP Guidelines

<svTRID>eurid-0</svTRID> </trID> </response> </epp> The output of the version 2 command returns additional information: <eurid:onhold> Contains the value true when the domain is on hold or false if the domain is not on hold. <eurid:quarantined> Contains the value true if the domain name is in quarantine or false if the domain name is not in quarantine.

Reply 4.2: Domain is ON HOLD and belongs to the querying registrar (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>domain-name-onhold.eu </domain:name> <domain:roid>3787823-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c8033037</domain:registrant> <domain:contact type="billing"> c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T16:01:26.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T16:49:58.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <trID> <clTRID>info-domain-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 154

EPP Guidelines

Reply 5.1: Domain is IN USE and a trade has been initiated by the querying registrar (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-internaltradedomain-0001-test.eu</domain:name> <domain:roid>3787827-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c195332</domain:registrant> <domain:contact type="billing">c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T16:02:21.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T16:50:25.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:nsgroup>test</eurid:nsgroup> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> <eurid:pendingTransaction> <eurid:trade> <eurid:domain> <eurid:registrant>c7557462</eurid:registrant> <eurid:trDate>2007-07-30T22:00:00.000Z</eurid:trDate> <eurid:billing>c31</eurid:billing> <eurid:tech>c34</eurid:tech> </eurid:domain> <eurid:initiationDate>2007-0803T16:19:58.000Z</eurid:initiationDate> <eurid:status>NotYetApproved</eurid:status> <eurid:replySeller>NoAnswer</eurid:replySeller> <eurid:replyBuyer>NoAnswer</eurid:replyBuyer> </eurid:trade> </eurid:pendingTransaction> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-internaltradedomain-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 155

EPP Guidelines

The output of the version 2 command returns additional information regarding the transaction that has been initiated: <eurid:pendingTransaction> Opens a block that contains information regarding the pending transaction. <eurid:trade> Indicates the type of transaction: <trade>, <transfer> or <transferq>. <eurid:registrant> The contact handle of the registrant to be linked to the domain name registration once the transaction has been completed. <eurid:trDate> The requested date of the transaction. Please be aware that dates in EPP are returned in UTC, while scheduled operations are performed in local Belgian time (CET/CEST). <eurid:billing>, <eurid:tech>, <eurid:onsite> The different contact handles of the transferred domain. Please refer to create contact for information on the meaning of each label. <eurid:initiationDate> The date on which the registrys system received the request. <eurid:status> The status of the pending transaction. Possible values are: o NotYetApproved: the transaction still needs at least one confirmation (registrant(s), registry). o ApprovedAndScheduled: all involved parties have approved the transaction but the transaction has not yet been executed.

<eurid:replySeller> (in case of a trade) or <eurid:replyOwner> (in case of a transfer or transferq) The status of the current domain name holders reply. Possible values are: NoAnswer, FaxRequested, ReplyReceived and Approved. <eurid:replyBuyer> (in case of a trade) The status of the future domain name holders reply. Possible values are: NoAnswer, FaxRequested, ReplyReceived and Approved.

Reply 5.2: Domain is IN USE and a trade has been initiated by the querying registrar (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-internaltradedomain-0001-test.eu</domain:name> <domain:roid>3787827-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c195332</domain:registrant> <domain:contact type="billing">c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T16:02:21.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T16:50:25.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 156

EPP Guidelines

<eurid:domain> <eurid:nsgroup>test</eurid:nsgroup> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-internaltradedomain-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Reply 6.1: Domain is IN USE and a trade has been initiated by a registrar other than the querying registrar (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-tradedomain-0001-test.eu</domain:name> <domain:roid>3787767-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c195332</domain:registrant> <domain:contact type="billing">c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T15:38:15.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T16:51:06.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:nsgroup>test</eurid:nsgroup> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-tradedomain-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 157

EPP Guidelines

In this case no additional information regarding the initiated trade is returned. Reply 6.2: Domain is IN USE and a trade has been initiated by a registrar other than the querying registrar (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-tradedomain-0001-test.eu</domain:name> <domain:roid>3787767-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c195332</domain:registrant> <domain:contact type="billing">c31</domain:contact> <domain:contact type="tech">c34</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2007-08-03T15:38:15.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2007-08-03T16:51:06.000Z</domain:upDate> <domain:exDate>2009-08-31T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:nsgroup>test</eurid:nsgroup> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-tradedomain-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 158

EPP Guidelines

Reply 7.1: Domain is IN USE and belongs to a registrar other than the querying registrar (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="2201"> <msg>Authorization error</msg> </result> <trID> <clTRID>registry</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Reply 7.2: Domain is IN USE and belongs to a registrar other than the querying registrar (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="2201"> <msg>Authorization error</msg> </result> <trID> <clTRID>registry</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Reply 8.1: Domain is ON HOLD and belongs to a registrar other than the querying registrar (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="2201"> <msg>Authorization error</msg> </result> <trID> <clTRID>0001-otherdomainonhold-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 159

EPP Guidelines

Reply 8.2: Domain is ON HOLD and belongs to a registrar other than the querying registrar (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="2201"> <msg>Authorization error</msg> </result> <trID> <clTRID>0001-otherdomainonhold-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Reply 9.1: Domain is IN USE, belongs to a registrar other than the querying registrar and a trade has been initiated by the querying registrar (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-domaintrade-0001-test.eu</domain:name> <domain:roid>0-EURID</domain:roid> <domain:clID>#non-disclosed#</domain:clID> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> <eurid:pendingTransaction> <eurid:trade> <eurid:domain> <eurid:registrant>c7557462</eurid:registrant> <eurid:trDate>2007-07-30T22:00:00.000Z</eurid:trDate> <eurid:billing>c31</eurid:billing> <eurid:tech>c34</eurid:tech> </eurid:domain> <eurid:initiationDate>2007-0803T16:21:44.000Z</eurid:initiationDate> <eurid:status>NotYetApproved</eurid:status> <eurid:replySeller>NoAnswer</eurid:replySeller> <eurid:replyBuyer>NoAnswer</eurid:replyBuyer> </eurid:trade> </eurid:pendingTransaction> </eurid:domain> </eurid:infData> </eurid:ext>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 160

EPP Guidelines

</extension> <trID> <clTRID>0001-domaintrade-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> The output of the version 2 command returns additional information regarding the transaction that has been initiated: <eurid:pendingTransaction> Opens a block that contains information regarding the pending transaction. <eurid:trade> Indicates the type of transaction: <trade>, <transfer> or <transferq>. <eurid:registrant> The contact handle of the registrant to be linked to the domain name registration once the transaction has been completed. <eurid:trDate> The requested date of the transaction. Please be aware that dates in EPP are returned in UTC, while scheduled operations are performed in local Belgian time (CET/CEST). <eurid:billing>, <eurid:tech>, <eurid:onsite> The different contact handles of the transferred domain. Please refer to create contact for information on the meaning of each label. <eurid:initiationDate> The date on which the registrys system received the request. <eurid:status> The status of the pending transaction. Possible values are: o NotYetApproved: the transaction still needs at least one confirmation (registrant(s), registry). o ApprovedAndScheduled: all involved parties have approved the transaction but the transaction has not yet been executed.

<eurid:replySeller> (in case of a trade) or <eurid:replyOwner> (in case of a transfer or transferq) The status of the current domain name holders reply. Possible values are: NoAnswer, FaxRequested, ReplyReceived and Approved. <eurid:replyBuyer> (in case of a trade) The status of the future domain name holders reply. Possible values are: NoAnswer, FaxRequested, ReplyReceived and Approved.

Reply 9.2: Domain is IN USE, belongs to a registrar other than the querying registrar and a trade has been initiated (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="2201"> <msg>Authorization error</msg> </result> <trID> <clTRID>0001-domaintrade-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 161

EPP Guidelines

Reply 10.1: Domain is IN USE, belongs to a registrar other than the querying registrar and a transfer has been initiated by the querying registrar (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>0001-domaintransfer-0001-test.eu</domain:name> <domain:roid>0-EURID</domain:roid> <domain:clID>#non-disclosed#</domain:clID> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> <eurid:pendingTransaction> <eurid:transfer> <eurid:domain> <eurid:registrant>c7557462</eurid:registrant> <eurid:trDate>2007-07-30T22:00:00.000Z</eurid:trDate> <eurid:billing>c31</eurid:billing> <eurid:tech>c34</eurid:tech> </eurid:domain> <eurid:initiationDate>2007-0803T16:22:19.000Z</eurid:initiationDate> <eurid:status>NotYetApproved</eurid:status> <eurid:replyOwner>NoAnswer</eurid:replyOwner> </eurid:transfer> </eurid:pendingTransaction> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>0001-domaintransfer-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> The output of the version 2 command returns additional information regarding the transaction that has been initiated: <eurid:pendingTransaction> Opens a block that contains information regarding the pending transaction. <eurid:trade> Indicates the type of transaction: <trade>, <transfer> or <transferq>. <eurid:registrant> The contact handle of the registrant to be linked to the domain name registration once the transaction has been completed.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 162

EPP Guidelines

<eurid:trDate> The requested date of the transaction. Please be aware that dates in EPP are returned in UTC, while scheduled operations are performed in local Belgian time (CET/CEST). <eurid:billing>, <eurid:tech>, <eurid:onsite> The different contact handles of the transferred domain. Please refer to create contact for information on the meaning of each label. <eurid:initiationDate> The date on which the registrys system received the request. <eurid:status> The status of the pending transaction. Possible values are: o NotYetApproved: the transaction still needs at least one confirmation (registrant(s), registry). o ApprovedAndScheduled: all involved parties have approved the transaction but the transaction has not yet been executed.

<eurid:replySeller> (in case of a trade) or <eurid:replyOwner> (in case of a transfer or transferq) The status of the current domain name holders reply. Possible values are: NoAnswer, FaxRequested, ReplyReceived and Approved. <eurid:replyBuyer> (in case of a trade) The status of the future domain name holders reply. Possible values are: NoAnswer, FaxRequested, ReplyReceived and Approved.

Reply 10.2: Domain is IN USE, belongs to a registrar other than the querying registrar and a transfer has been initiated (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="2201"> <msg>Authorization error</msg> </result> <trID> <clTRID>0001-domaintransfer-0001-test</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Reply 11.1: Domain is IN USE, belongs to the querying registrar and the initiation of trades and transfers has been prohibited by the registry (version: 2.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>eurid.eu</domain:name> <domain:roid>2624530-EURID</domain:roid> <domain:status s="serverTransferProhibited"/> <domain:status s="ok"/> <domain:registrant>c1487742</domain:registrant> <domain:contact type="billing">c35420</domain:contact> <domain:contact type="tech">c35475</domain:contact> <domain:clID>a000005</domain:clID>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 163

EPP Guidelines

<domain:crID>a000005</domain:crID> <domain:crDate>2009-01-27T14:44:48.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2009-01-27T14:44:48.000Z</domain:upDate> <domain:exDate>2010-01-31T22:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> </eurid:domain> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>info-domain-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> The output of the version 2 command returns additional information: <domain:status s="serverTransferProhibited"/> If a locked domain name is queried by using the version 2 command, this additional attribute is returned.

Reply 11.2: Domain is IN USE, belongs to the querying registrar and the initiation of trades and transfers has been prohibited by the registry (version: 1.0): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>eurid.eu</domain:name> <domain:roid>2624530-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c1487742</domain:registrant> <domain:contact type="billing">c35420</domain:contact> <domain:contact type="tech">c35475</domain:contact> <domain:clID>a000005</domain:clID> <domain:crID>a000005</domain:crID> <domain:crDate>2009-01-27T14:44:48.000Z</domain:crDate> <domain:upID>a000005</domain:upID> <domain:upDate>2009-01-27T14:44:48.000Z</domain:upDate> <domain:exDate>2010-01-31T22:59:59.999Z</domain:exDate> </domain:infData> </resData> <trID> <clTRID>info-domain-00</clTRID> <svTRID>eurid-0</svTRID>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 164

EPP Guidelines

</trID> </response> </epp> Example:3 A valid command used for an IDN domain name (dmain.eu) would look like (version1): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <info> <domain:info> <domain:name>dmain.eu</domain:name> </domain:info> </info> <clTRID>info-domain-00</clTRID> </command> </epp> Reply 3: IDN domain name is IN USE, belongs to the querying registrar. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns=http://www.eurid.eu/xml/epp/epp-1.0 xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>dmain.eu</domain:name> <domain:roid>17941-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c100000</domain:registrant> <domain:contact type="billing">c100003</domain:contact> <domain:contact type="tech">c100002</domain:contact> <domain:clID>a100000</domain:clID> <domain:crID>a100000</domain:crID> <domain:crDate>2009-10-14T08:44:50.000Z</domain:crDate> <domain:upID>a100000</domain:upID> <domain:upDate>2009-10-14T08:44:50.000Z</domain:upDate> <domain:exDate>2010-10-31T22:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <idn:mapping> <idn:name> <idn:ace>xn--dmain-jua</idn:ace> <idn:unicode>dmain</idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <clTRID>info-domain-00</clTRID> <svTRID>eurid-0</svTRID>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 165

EPP Guidelines

</trID> </response> </epp> The responses for versions 1.0 and 2.0 of <info domain> have been adapted to include the <idn:mapping> extension. For IDN domain names the result will also contain the following fields in the extension: <idn:mapping> <idn:name> <idn:ace></idn:ace> <idn:unicode></idn:unicode> </idn:name> </idn:mapping> < idn:ace > Contains the registered IDN domain name in the ACE representation. <idn:unicode > Contains the registered IDN domain name in the Unicode representation

IDN Extension for IDN domain names always displays the both notations: Unicode and ACE. The reply contains the domain name queried in the format used in the command. Please note that for IDN domain names in Unicode the reply can be different due to a Nameprepping (RFC 3490/3491)

Example:4 A valid command used for an IDN domain name (dmain.eu) would look like (version 2): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <info> <domain:info> <domain:name>dmain.eu</domain:name> </domain:info> </info> <extension> <eurid:ext> <eurid:info> <eurid:domain version="2.0"/> </eurid:info> </eurid:ext> </extension> <clTRID>info-domain-00</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 166

EPP Guidelines

Reply 3: IDN domain name is IN USE, belongs to the querying registrar. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns=http://www.eurid.eu/xml/epp/epp-1.0 xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>dmain.eu</domain:name> <domain:roid>17941-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c100000</domain:registrant> <domain:contact type="billing">c100003</domain:contact> <domain:contact type="tech">c100002</domain:contact> <domain:clID>a100000</domain:clID> <domain:crID>a100000</domain:crID> <domain:crDate>2009-10-14T08:44:50.000Z</domain:crDate> <domain:upID>a100000</domain:upID> <domain:upDate>2009-10-14T08:44:50.000Z</domain:upDate> <domain:exDate>2010-10-31T22:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> </eurid:domain> </eurid:infData> </eurid:ext> <idn:mapping> <idn:name> <idn:ace>xn--dmain-jua</idn:ace> <idn:unicode>dmain</idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <clTRID>info-domain-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 167

EPP Guidelines

Example:5 A valid command used for an IDN domain name (xn--dmain-ju.eu) would look like (version1): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <info> <domain:info> <domain:name>xn--dmain-jua.eu</domain:name> </domain:info> </info> <clTRID>info-domain-00</clTRID> </command> </epp> Reply 5: IDN domain name is IN USE, belongs to the querying registrar. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name> xn--dmain-jua.eu</domain:name> <domain:roid>17941-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c100000</domain:registrant> <domain:contact type="billing">c100003</domain:contact> <domain:contact type="tech">c100002</domain:contact> <domain:clID>a100000</domain:clID> <domain:crID>a100000</domain:crID> <domain:crDate>2009-10-14T08:44:50.000Z</domain:crDate> <domain:upID>a100000</domain:upID> <domain:upDate>2009-10-14T08:44:50.000Z</domain:upDate> <domain:exDate>2010-10-31T22:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <idn:mapping> <idn:name> <idn:ace>xn--dmain-jua</idn:ace> <idn:unicode>dmain</idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <clTRID>info-domain-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 168

EPP Guidelines

Example:6 A valid command used for an IDN domain name (xn--dmain-jua.eu) would look like (version 2): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <info> <domain:info> <domain:name>xn--dmain-jua.eu</domain:name> </domain:info> </info> <extension> <eurid:ext> <eurid:info> <eurid:domain version="2.0"/> </eurid:info> </eurid:ext> </extension> <clTRID>info-domain-00</clTRID> </command> </epp> Reply 6: IDN domain name is IN USE, belongs to the querying registrar. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns=http://www.eurid.eu/xml/epp/epp-1.0 xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name> xn--dmain-jua.eu</domain:name> <domain:roid>17941-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c100000</domain:registrant> <domain:contact type="billing">c100003</domain:contact> <domain:contact type="tech">c100002</domain:contact> <domain:clID>a100000</domain:clID> <domain:crID>a100000</domain:crID> <domain:crDate>2009-10-14T08:44:50.000Z</domain:crDate> <domain:upID>a100000</domain:upID> <domain:upDate>2009-10-14T08:44:50.000Z</domain:upDate> <domain:exDate>2010-10-31T22:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> </eurid:domain> </eurid:infData>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 169

EPP Guidelines

</eurid:ext> <idn:mapping> <idn:name> <idn:ace>xn--dmain-jua</idn:ace> <idn:unicode>dmain</idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <clTRID>info-domain-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Example 7: Domain info version 1 used on the domain name .eu (nameprep transformation of an unicode domain name): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0"> <command> <info> <domain:info> <domain:name>.eu</domain:name> </domain:info> </info> <clTRID>info-domain-00</clTRID> </command> </epp> The EPP server sends the following response: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns=http://www.eurid.eu/xml/epp/epp-1.0 xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>.eu</domain:name> <domain:roid>110-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c13</domain:registrant> <domain:contact type="billing">c12</domain:contact> <domain:contact type="tech">c11</domain:contact> <domain:clID>s000001</domain:clID> <domain:crID>s000001</domain:crID> <domain:crDate>2009-10-28T09:24:31.000Z</domain:crDate> <domain:upID>s000001</domain:upID> <domain:upDate>2009-10-28T09:24:31.000Z</domain:upDate> <domain:exDate>2010-10-31T22:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 170

EPP Guidelines

<idn:mapping> <idn:name> <idn:ace>xn--uxaa160sfa</idn:ace> <idn:unicode></idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <clTRID>info-domain-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Domain name and its Unicode representation have been transformed by a nameprep. In such case return output does not contain original version of the requested domain name

Example 8: Domain info version 2 used on the domain name .eu (nameprep transformation of a Unicode domain name): <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <info> <domain:info> <domain:name>.eu</domain:name> </domain:info> </info> <extension> <eurid:ext> <eurid:info> <eurid:domain version="2.0"/> </eurid:info> </eurid:ext> </extension> <clTRID>info-domain-00</clTRID> </command> </epp> The EPP server sends the following response: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>.eu</domain:name> <domain:roid>110-EURID</domain:roid>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 171

EPP Guidelines

<domain:status s="ok"/> <domain:registrant>c13</domain:registrant> <domain:contact type="billing">c12</domain:contact> <domain:contact type="tech">c11</domain:contact> <domain:clID>s000001</domain:clID> <domain:crID>s000001</domain:crID> <domain:crDate>2009-10-28T09:24:31.000Z</domain:crDate> <domain:upID>s000001</domain:upID> <domain:upDate>2009-10-28T09:24:31.000Z</domain:upDate> <domain:exDate>2010-10-31T22:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> </eurid:domain> </eurid:infData> </eurid:ext> <idn:mapping> <idn:name> <idn:ace>xn--uxaa160sfa</idn:ace> <idn:unicode></idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <clTRID>info-domain-00</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Example 9: Domain info version 2 used on the domain name in registrars own portfolio containing DNSSEC information. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <info> <domain:info> <domain:name></domain:name> </domain:info> </info> <extension> <eurid:ext > <eurid:info> <eurid:domain version="2.0"/> </eurid:info> </eurid:ext> </extension>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 172

EPP Guidelines

</command> </epp> The EPP server sends the following response: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>.eu</domain:name> <domain:roid>6907116-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c8664111</domain:registrant> <domain:contact type="billing">c129179</domain:contact> <domain:contact type="onsite">c3408416</domain:contact> <domain:clID>a000475</domain:clID> <domain:crID>a000475</domain:crID> <domain:crDate>2010-04-06T07:00:25.000Z</domain:crDate> <domain:upID>a000475</domain:upID> <domain:upDate>2010-04-09T07:04:54.000Z</domain:upDate> <domain:exDate>2011-04-30T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <secDNS:infData> <secDNS:dsData> <secDNS:keyTag>6615</secDNS:keyTag> <secDNS:alg>7</secDNS:alg> <secDNS:digestType>1</secDNS:digestType> <secDNS:digest>7674956565F67AC99DCF8EC5C95EFD736D4C2816</secDNS:digest> <secDNS:keyData> <secDNS:flags>257</secDNS:flags> <secDNS:protocol>3</secDNS:protocol> <secDNS:alg>7</secDNS:alg> <secDNS:pubKey>AwEAAcTnEOkfH1FsT9EI2BmjMB83uDWXpSp57YHa0v6Xg60 Usm3Y2Fct1emy+h0+uDstyUl5eILy9eO2eI67m5r0Lck=</secDNS:pubKey> </secDNS:keyData> </secDNS:dsData> </secDNS:infData> <eurid:ext> <eurid:infData> <eurid:domain> <eurid:onhold>false</eurid:onhold> <eurid:quarantined>false</eurid:quarantined> </eurid:domain> </eurid:infData> </eurid:ext> <idn:mapping> <idn:name>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 173

EPP Guidelines

<idn:ace>xn--b1aepz.eu</idn:ace> <idn:unicode>.eu</idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> When domain info v1 is used then server reply is the following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:domain="http://www.eurid.eu/xml/epp/domain-1.0" xmlns:idn="http://www.eurid.eu/xml/epp/idn-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <domain:infData> <domain:name>.eu</domain:name> <domain:roid>6907256-EURID</domain:roid> <domain:status s="ok"/> <domain:registrant>c8664111</domain:registrant> <domain:contact type="billing">c129179</domain:contact> <domain:contact type="onsite">c3408416</domain:contact> <domain:ns> <domain:hostAttr> <domain:hostName>ns2.unoeuro.com</domain:hostName> </domain:hostAttr> </domain:ns> <domain:clID>a000475</domain:clID> <domain:crID>a000475</domain:crID> <domain:crDate>2010-04-08T06:42:57.000Z</domain:crDate> <domain:upID>a000475</domain:upID> <domain:upDate>2010-04-08T06:42:57.000Z</domain:upDate> <domain:exDate>2011-04-30T21:59:59.999Z</domain:exDate> </domain:infData> </resData> <extension> <idn:mapping> <idn:name> <idn:ace>xn--kxalba5ee.eu</idn:ace> <idn:unicode>.eu</idn:unicode> </idn:name> </idn:mapping> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Note that the <secDNS:infData> extension is not returned.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 174

EPP Guidelines

Example version 1.0 and 2.0:


Reply 13: Should a registrar exceed the rate-limit for this command, the server reply will look like: </epp> <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2306"> <msg>Parameter value policy error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Excessive querying</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>epperl-v0.1-s71554-m63</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 175

EPP Guidelines

Info registrar
PURPOSE: To obtain registrar account information. This command can be used by registrars to retrieve current information about their registrar account and can help them to monitor the status of their account. The information returned can, for example, be used to predict whether certain transactions will fail due to insufficient funds or too many hit points. The structure of the command is: TAG <epp> <command> <info> <registrar> <extension> <ext> <info> <registrar> <clTRID> Occurrences min-max 1 1 1 1 1 1 1 1 0-1 Size + remarks

required attrib: version="1.0" token: 3-64

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use. <eurid:registrar version="1.0"/>: Only version 1.0 is supported.

Example:
A valid command to obtain the registrar account information is as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:registrar="http://www.eurid.eu/xml/epp/registrar-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <command> <info> <registrar:info/> </info> <extension> <eurid:ext> <eurid:info> <eurid:registrar version="1.0"/> </eurid:info> </eurid:ext> </extension> <clTRID>info-registrar</clTRID> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 176

EPP Guidelines

The system will reply with the following information: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:registrar="http://www.eurid.eu/xml/epp/registrar-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <registrar:infData/> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:registrar> <eurid:amountAvailable>63434.00</eurid:amountAvailable> <eurid:hitPoints> <eurid:nbrHitPoints>1</eurid:nbrHitPoints> <eurid:maxNbrHitPoints>1000</eurid:maxNbrHitPoints> </eurid:hitPoints> <eurid:nbrRenewalCreditsAvailable>2</eurid:nbrRenewalCreditsAvailable> <eurid:nbrPromoCreditsAvailable xsi:nil="true"/> </eurid:registrar> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>info-registrar</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> When the registrar has been blocked due to too many hit points the server will reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:registrar="http://www.eurid.eu/xml/epp/registrar-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <registrar:infData/> </resData> <extension> <eurid:ext> <eurid:infData> <eurid:registrar> <eurid:amountAvailable>1043.24</eurid:amountAvailable> <eurid:hitPoints> <eurid:nbrHitPoints>1001</eurid:nbrHitPoints> <eurid:maxNbrHitPoints>1000</eurid:maxNbrHitPoints>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 177

EPP Guidelines

<eurid:blockedUntil>2008-12-04T15:43:52.000Z</eurid:blockedUntil> </eurid:hitPoints> <eurid:nbrRenewalCreditsAvailable>0</eurid:nbrRenewalCreditsAvailable> <eurid:nbrPromoCreditsAvailable xsi:nil="true"/> </eurid:registrar> </eurid:infData> </eurid:ext> </extension> <trID> <clTRID>info-registrar</clTRID> <svTRID>eurid-1</svTRID> </trID> </response> </epp>

The following information can be seen in the registration systems reply: <eurid:amountAvailable> The amount of money left in the registrar account which can be used to perform transactions on the registration system. <eurid:hitPoints> This block contains information about the hit points in case the hit point limit has been exceeded. o <eurid:nbrHitPoints> The current number of hit points. o <eurid:maxNbrHitPoints> The maximum number of hit points allowed. o <eurid:blockedUntil> The date and time until when the registrar account will be blocked. <eurid:nbrRenewalCreditsAvailable> The number of renewal credits available. <eurid:nbrPromoCreditsAvailable xsi:nil="true"/> Indicates that the registrar is currently not in the promo campaign. <eurid:nbrPromoCreditsAvailable>0</eurid:nbrPromoCreditsAvailable> The number of unused promo credits (collected during an accumulation period) for registrars currently in a promo campaign.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 178

EPP Guidelines

Poll
PURPOSE: To retrieve notifications from the registration system. Registrars can specify how they would like to receive system-generated notifications from the registration system and EPP <poll> is one of the possible channels. EURids system will store all system-generated notifications in a queue and registrars can connect to the EPP server to retrieve the messages one by one. Upon the first successful <poll> request from the registrar EURids server will send a reply containing a message counter, a server-unique message identifier and the first message from the message queue. In case the message queue is empty the server will reply that there are no messages pending. Each message sent to the registrars system following his <poll> request, needs to be acknowledged by the registrar by sending a ack command including the server-unique ID of the message that is being acknowledged. Having received the acknowledgement from the registrar the EURid server will send another reply to the registrar confirming the registrars acknowledgement, giving the new number of messages pending in the queue and making the next message in the queue available for retrieval. This method can be used to iterate through all pending messages. The system makes sure that all notifications can only be acknowledged once regardless of the chosen channel. If pending messages are not acknowledged within 86400s (1 day), the registration system will revert to email notification. The system will attempt to send each message via the selected notification channel first before reverting to email, even though previous messages may not have been delivered via the selected channel. Please be aware of the fact that once a notification has been sent via EPP poll and the registrars system has acknowledged receiving it, that notification is no longer available via any notification channel. The EPP poll rate is limited to 60/60 seconds. This limit only applies in case there are no messages pending in the queue. The structure of the command is: TAG <epp> <command> <poll> Occurrences min-max 1 1 1 required attrib: op="req"|"ack"; msgID= required attribute when op=ack: token; the value of the msgID has to correspond to the value of the id attribute in the message that is being acknowledged. token: 3-64 Size + remarks

<clTRID>

0-1

To keep the notation simple, we have left out the namespace indication. Please refer to the examples to see what namespace-prefixes to use.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 179

EPP Guidelines

<poll op="req"/> Is the command tag to request the first message from the queue. <poll op="ack" msgID="ID of the message that is being acknowledged"/> Is the command tag to acknowledge a notification from the registration system. The value of the msgID attribute has to correspond to the id attribute of the message that is being acknowledged.

Examples:
Example 1: The command to retrieve pending messages is as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <command> <poll op="req"/> <clTRID>ABC-12345</clTRID> </command> </epp> When there are no new messages waiting, the system will respond with the following reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1300"> <msg>Command completed successfully; no messages</msg> </result> <trID> <clTRID>ABC-12345</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> When there are messages waiting, the system will respond with the following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1301"> <msg>Command completed successfully; ack to dequeue</msg> </result> <msgQ count="3" id="6830"> <qDate>2008-09-18T21:29:28.179+02:00</qDate> <msg>Transfer of domain name mytransferdomain.eu</msg> </msgQ> <resData> <eurid:pollRes> <eurid:action>CONFIRM</eurid:action> <eurid:domainname>mytransferdomain.eu</eurid:domainname> <eurid:returncode>1155</eurid:returncode> <eurid:type>TRANSFER</eurid:type> </eurid:pollRes> </resData> <trID> <clTRID>ABC-12345</clTRID>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 180

EPP Guidelines

<svTRID>eurid-0</svTRID> </trID> </response> </epp> The following information can be seen in the registration systems reply: <msgQ count> Contains information about the number of messages waiting in the queue and the unique identifier (id) of the message that is returned in that response. In this example, we see that there are 3 messages waiting (<msgQ count="3") and that the id of this message that is included in this response is 6830 (id="6830"). <qDate> Contains the date and time that the message was enqueued. <eurid:action> Please refer to ADDENDUM 3 for an overview of the different EURid actions. <eurid:domainname> Is the domain name concerned in the message. <eurid:returncode> Please refer to ADDENDUM 3 for an overview of the different return codes. <eurid:type> Please refer to ADDENDUM 3 for an overview of the different EURid types.

The poll request will keep on returning this message until it has been acknowledged: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <command> <poll op="ack" msgID="6830"/> <clTRID>ABC-12346</clTRID> </command> </epp> Once it has received an acknowledgement, the system will reply with: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <msgQ count="2" id="6848"/> <trID> <clTRID>ABC-12346</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> To get the content of the new message (ID 6848) an EPP poll request must be sent. This method can be used to iterate through all pending messages. Once the last message has been acknowledged the system will respond as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1300"> <msg>Command completed successfully; no messages</msg>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 181

EPP Guidelines

</result> <trID> <clTRID>ABC-12346</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Example 2: Acknowledging a message that has already been acknowledged or that is meant for another registrar will result in the following response: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2002"> <msg>Command use error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>No poll acknowledgement expected for the specified id</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>ABC-12346</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Example 3: Excessive querying results in the following system response: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2306"> <msg>Parameter value policy error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Excessive querying</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <clTRID>ABC-12345</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 182

EPP Guidelines

Create keygroup
To simplify the management of keys linked to domain names, EURid has introduced the concept of keygroups. Without keygroups, you would need to create keys (e.g. a KSK and a ZSK) for each DNSSECenabled domain name. In cases where a large number of domain names needs to be made secure, this would also mean the creation a large number of individual key files (public and private keys). The amount of work required to manage these keys would increase even more when they are about to expire and need to be replaced individually. Keygroups help to address this issue. A keygroup is a reusable, named set of keys. Each keygroup has a unique name and can contain up to four keys. Once a domain name has been created (registered), it can be linked to a keygroup simply by using the keygroup name. Linking a domain name to a keygroup has the same effect as individually linking all the keys in that keygroup to the domain name when the zone file is generated or updated. Since one keygroup can be linked to any number of domain names, the number of keys to be created or replaced is drastically reduced. For instance, consider a keygroup linked to 1000 domain names. Changing a single key in that keygroup is the same as changing that key 1000 times for each individual domain name (if keygroups were not used). Rules when working with keygroups: Each keygroup must have a distinct name within your portfolio. A keygroup may have up to four DNSSEC keys at the time. A keygroup may be associated to any number of domain names. A domain name may at most be linked to one keygroup. A domain name that is linked to individual keys cannot also be linked to a keygroup and vice versa.

The valid document structure is for keygroup creation is: TAG <epp> <command> <create> <eurid:keygroup> <keygroup:name> <keygroup:key> <keygroup:keyTag> <keygroup:flags> <keygroup:protocol> <keygroup:alg> <keygroup:pubKey> <clTRID> Occurrences min-max 1 1 1 1 0-9 1 1 1 1 1 0-1 Size + remarks

normalizedString 1-50 containing characters from [a-z][A-Z][0-9][-.] token: 4-100 Normalized string 0-9 256 | 257 Value is 256 for ZSK, or 257 for KSK Only 3 is currently accepted at EURid 3|5|6|7 A base 64 value. Any spaces in the public key will be removed. Maximum is 1024 base64 characters token: 3-64

<name> Contains the (chosen) name for the name server group. <key> Contains the DNSSEC key information.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 183

EPP Guidelines

<keyTag> Contains keytag value for the associated key <flags> Indicates the type of the key it can be either 256 for ZSK, or 257 for KSK <protocol> Contains protocol value for the associated key, standard value for EURid is 3. <algorithm> Contains the number representing the algorithm <pubKey> Contains the public DNSSEC key <clTRID> Contains the transaction ID (for tracking the command) that was provided by the registrar in the incoming command.

Example 1: Creation of an empty keygroup <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <create> <keygroup:create> <keygroup:name>eurid2</keygroup:name> </keygroup:create> </create> </command> </epp> Response 1: The response from the server for this command would be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <svTRID>eurid-6805</svTRID> </trID> </response> </epp> Response 2: Name of the keygroup is too long. In this case the response is the following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>Invalid value for name (value too long)</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6807</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 184

EPP Guidelines

Response 3: Name of the keygroup contains illegal characters (illegal<>?/.,). In this case response is the following: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>line:9 column:28: Unexpected character encountered (lex state 9): '>'</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Example 2: Creation of a keygroup with a valid key: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <create> <keygroup:create> <keygroup:name>eurid3</keygroup:name> <keygroup:key> <keygroup:keyTag>49049</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAaQx/SAfK9rmTYsyThhUgvUBQORqQhUNbcIx67sfUtC6Ii1W Hn0C dIMcO8FUMT3PE7BhJ04zYiJdX2Gr6VEHXW0=</keygroup:pubKey> </keygroup:key> </keygroup:create> </create> </command> </epp> Example 3: Creation of a keygroup with 4 valid keys: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <create> <keygroup:create> <keygroup:name>eurid4</keygroup:name> <keygroup:key> <keygroup:keyTag>49049</keygroup:keyTag>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 185

EPP Guidelines

<keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAaQx/SAfK9rmTYsyThhUgvUBQORqQhUNbcIx67sfUtC6Ii1W Hn0C dIMcO8FUMT3PE7BhJ04zYiJdX2Gr6VEHXW0=</keygroup:pubKey> </keygroup:key> <keygroup:key> <keygroup:keyTag>57695</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAdVHFEnY8q8xuiiSO0XvX0LWlcCMWQByFyyCzPFfUmso0677 qjIZ YEF/fIx/WJuIRup1/Ay58U8pvCnsk0iXIV0=</keygroup:pubKey> </keygroup:key> <keygroup:key> <keygroup:keyTag>57458</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAcCmKsGJgZ9J6xO51/by9W4c1p2EmO24oxL0iFr968O53cX/ TlgZ WPnIfLXj+GwB1eW/JN/B+z655jN9JRAARZE=</keygroup:pubKey> </keygroup:key> <keygroup:key> <keygroup:keyTag>62087</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAfDlDXi7fizdyml3KT92zHvoIY9Ya6r5LUf+PYeeQYm4TUMp +Ckd pNSi4YKmVGQn57gxMRGwzT+o+lxPKX6LpKE=</keygroup:pubKey> </keygroup:key> </keygroup:create> </create> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 186

EPP Guidelines

Response 4. When trying to create a keygroup with more than 4 keys, the system replies as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>line:38 column:5: Element not allowed: key@http://www.eurid.eu/xml/epp/keygroup-1.0 in element create@http://www.eurid.eu/xml/epp/keygroup-1.0</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Response 5. When trying to create a keygroup with a key which is too long the system replies as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>line:15 column:7: Invalid value: not encoded properly</eurid:msg> </eurid:result> </eurid:ext> Response 6. When trying to create a keygroup with an empty key and other key data filled the system replies as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> </result> <extension> <eurid:ext> <eurid:result>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 187

EPP Guidelines

<eurid:msg>line:15 column:7: base64Binary encoded data has only 0 bytes, fewer than minLength facet (1) for keyType in namespace http://www.eurid.eu/xml/epp/keygroup1.0</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Response 7. When trying to create a keygroup with an empty protocol value and other key data filled the system replies as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>invalid protocol: 0</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6560</svTRID> </trID> </response> </epp> Response 8. When trying to create a keygroup with an incorrect protocol value and other key data filled the system replies as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>line:13 column:7: decimal value (684,324) is greater than maxInclusive facet (255) for xs:unsignedByte</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 188

EPP Guidelines

Response 9. When trying to create a keygroup with an empty flags value and other key data filled the system replies as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>line:12 column:7: Invalid decimal value: expected at least one digit</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Response 10. When trying to create a keygroup with an invalid flag and other key data filled the system replies as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>invalid flags: 258</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6562</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 189

EPP Guidelines

Response 11. When trying to create a keygroup with an invalid keytag value and other key data filled the system replies as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2005"> <msg>Parameter value syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>wrong keytag value</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6563</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 190

EPP Guidelines

Update keygroup
PURPOSE: To update the contents of a keygroup. Please note: A keygroup update updates the whole object at once (there is no <add>, <chg> or <rem> sections as with others EPP objects)! The document structure is identical to the one for the <create> keygroup: TAG <epp> <command> <update> <eurid:keygroup> <keygroup:name> <keygroup:key> <keygroup:keyTag> <keygroup:flags> <keygroup:protocol> <keygroup:alg> <keygroup:pubKey> <clTRID> Occurrences min-max 1 1 1 1 0-9 1 1 1 1 1 0-1 Size + remarks

normalizedString 1-50 containing characters from [a-z][A-Z][0-9][-.] token: 4-100 Normalized string 0-9 256 | 257 Value is 256 for ZSK, or 257 for KSK Only 3 is currently accepted at EURid 3|5|6|7 A base 64 value. Any spaces in the public key will be removed. Maximum is 1024 base64 characters token: 3-64

<name> Contains the (chosen) name for the name server group. <key> Contains the DNSSEC key information. <keyTag> Contains keytag value for the associated key <flags> Indicates the type of the key it can be either 256 for ZSK, or 257 for KSK <protocol> Contains protocol value for the associated key, standard value for EURid is 3. <algorithm> Contains the number representing the algorithm <pubKey> Contains the public DNSSEC key <clTRID> Contains the transaction ID (for tracking the command) that was provided by the registrar in the incoming command.

Examples:
Example1:A valid command for the update of a keygroup would be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <update> <keygroup:update> <keygroup:name>eurid1</keygroup:name> </keygroup:update> </update> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 191

EPP Guidelines

The response from the server will then be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <svTRID>eurid-6799</svTRID> </trID> </response> </epp> Please note that when updating a keygroup, you are replacing all existing keys by the set provided in the update command. So if you want to keep the existing keys and just add another one, you need to re-specify the old ones and add the new one. Example 2: Adding a DNSSEC key to the keygroup: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <update> <keygroup:update> <keygroup:name>eurid1</keygroup:name> <keygroup:key> <keygroup:keyTag>49049</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAaQx/SAfK9rmTYsyThhUgvUBQORqQhUNbcIx67sfUtC6Ii1W Hn0C dIMcO8FUMT3PE7BhJ04zYiJdX2Gr6VEHXW0=</keygroup:pubKey> </keygroup:key> </keygroup:update> </update> </command> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 192

EPP Guidelines

Example 3: A valid command to add/update 4 keys in a keygroup: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <update> <keygroup:update> <keygroup:name>eurid1</keygroup:name> <keygroup:key> <keygroup:keyTag>49049</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAaQx/SAfK9rmTYsyThhUgvUBQORqQhUNbcIx67sfUtC6Ii1W Hn0C dIMcO8FUMT3PE7BhJ04zYiJdX2Gr6VEHXW0=</keygroup:pubKey> </keygroup:key> <keygroup:key> <keygroup:keyTag>57695</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAdVHFEnY8q8xuiiSO0XvX0LWlcCMWQByFyyCzPFfUmso0677 qjIZ YEF/fIx/WJuIRup1/Ay58U8pvCnsk0iXIV0=</keygroup:pubKey> </keygroup:key> <keygroup:key> <keygroup:keyTag>57458</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAcCmKsGJgZ9J6xO51/by9W4c1p2EmO24oxL0iFr968O53cX/ TlgZ WPnIfLXj+GwB1eW/JN/B+z655jN9JRAARZE=</keygroup:pubKey> </keygroup:key> <keygroup:key> <keygroup:keyTag>62087</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAfDlDXi7fizdyml3KT92zHvoIY9Ya6r5LUf+PYeeQYm4TUMp +Ckd pNSi4YKmVGQn57gxMRGwzT+o+lxPKX6LpKE=</keygroup:pubKey> </keygroup:key> </keygroup:update> </update> </command> </epp> Example 4: Trying to add 5 keys to a keygroup: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <update> <keygroup:update> <keygroup:name>eurid1</keygroup:name> <keygroup:key> <keygroup:keyTag>4343</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 193

EPP Guidelines

<keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAbN3e4DebC/c6CvtoTpD2jd6h5N3bxSLjkSdbTEG7Y7DSFdG 7wNW BzFvuXlwNfB641dWh2s4BzZWlQIAFzF9SsE=</keygroup:pubKey> </keygroup:key> <keygroup:key> <keygroup:keyTag>49049</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAaQx/SAfK9rmTYsyThhUgvUBQORqQhUNbcIx67sfUtC6Ii1W Hn0C dIMcO8FUMT3PE7BhJ04zYiJdX2Gr6VEHXW0=</keygroup:pubKey> </keygroup:key> <keygroup:key> <keygroup:keyTag>57695</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAdVHFEnY8q8xuiiSO0XvX0LWlcCMWQByFyyCzPFfUmso0677 qjIZ YEF/fIx/WJuIRup1/Ay58U8pvCnsk0iXIV0=</keygroup:pubKey> </keygroup:key> <keygroup:key> <keygroup:keyTag>57458</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAcCmKsGJgZ9J6xO51/by9W4c1p2EmO24oxL0iFr968O53cX/ TlgZ WPnIfLXj+GwB1eW/JN/B+z655jN9JRAARZE=</keygroup:pubKey> </keygroup:key> <keygroup:key> <keygroup:keyTag>62087</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAfDlDXi7fizdyml3KT92zHvoIY9Ya6r5LUf+PYeeQYm4TUMp +Ckd pNSi4YKmVGQn57gxMRGwzT+o+lxPKX6LpKE=</keygroup:pubKey> </keygroup:key> </keygroup:update> </update> </command> </epp> The response from the server will then be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>line:36 column:5: Element not allowed: key@http://www.eurid.eu/xml/epp/keygroup-1.0 in element update@http://www.eurid.eu/xml/epp/keygroup-1.0</eurid:msg> </eurid:result> </eurid:ext>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 194

EPP Guidelines

</extension> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> Example 5: Emptying a keygroup: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eurid.eu/xml/epp/epp-1.0 epp1.0.xsd" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <update> <keygroup:update> <keygroup:name>krqkdcnjtiigrbvgrsom</keygroup:name> </keygroup:update> </update> </command> </epp> The response from the server will then be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <svTRID>eurid-55684527</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 195

EPP Guidelines

Delete keygroup
PURPOSE: To delete a keygroup. Please note: It is not possible to delete a keygroup that is still used on 1 or more domains! The structure of the document is identical to that of a <delete> contact: TAG <epp> <command> <delete> <keygroup:name> <clTRID> Occurrences min-max 1 1 1 1 0-1 normalizedString 1-50 containing characters from [a-z][A-Z][0-9][-.] token: 3-64 Size + remarks

<keygroup:name> Contains the name of the keygroup.

Example:
A valid command to delete a keygroup: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <delete> <keygroup:delete> <keygroup:name>eurid</keygroup:name> </keygroup:delete> </delete> </command> </epp> After a successful deletion the server will respond: ?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <svTRID>eurid-6796</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 196

EPP Guidelines

When trying to delete non existing keygroup system will respond: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2303"> <msg>Object does not exist</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>keygroup [incorrectkeygroup] does not exist</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6575</svTRID> </trID> </response> </epp> When trying to delete keygroup which is still linked to at least one domain name system will respond: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="2305"> <msg>Object association prohibits operation</msg> </result> <extension> <eurid:ext> <eurid:result> <eurid:msg>keygroup [eurid] still linked to 1 domains</eurid:msg> </eurid:result> </eurid:ext> </extension> <trID> <svTRID>eurid-6576</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 197

EPP Guidelines

Check keygroup
PURPOSE: The EPP <check> keygroup command is used to determine if one or several objects can be provisioned within a repository. It provides a hint that allows a client to anticipate the success or failure of provisioning an object using the <create> command. The structure of the document: TAG <epp> <command> <check> <keygroup:name> <clTRID>

Occurrences min-max 1 1 1 1-* 0-1

Size + remarks

normalizedString 1-50 containing characters from [a-z][A-Z][0-9][-.] token: 3-64

<keygroup:name> Contains the name of the keygroup that was checked. There is an entry in the reply document for each of the keygroups that were checked. The 'avail' attribute contains a value of 'false' if the keygroup is not available and a value of 'true' if the keygroup is available, at the time of the check.

Please note that a check can be done on several objects within the same command.

Example:
We would like to check two different objects: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <check> <keygroup:check> <keygroup:name>eurid1</keygroup:name> <keygroup:name>eurid2</keygroup:name> </keygroup:check> </check> </command> </epp> The EPP server will return: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <keygroup:chkData> <keygroup:cd> <keygroup:name avail="false">eurid1</keygroup:name>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 198

EPP Guidelines

</keygroup:cd> <keygroup:cd> <keygroup:name avail="true">eurid2</keygroup:name> </keygroup:cd> </keygroup:chkData> </resData> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> The example shows that keygroup eurid2 is available and keygroup eurid1 is not.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 199

EPP Guidelines

Info keygroup
PURPOSE: Allows the registrar to retrieve information about the current status of an existing keygroup. The structure of the document that must be sent: TAG <epp> <command> <info> <keygroup:name> <clTRID> Occurrences min-max 1 1 1 1 0-1 normalizedString 1-50 containing characters from [a-z][A-Z][0-9][-.] token: 3-64 Size + remarks

<keygroup:name> Contains the name of the keygroup.

Example:
A valid command to retrieve information about the current status of the keygroup eurid would be: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <command> <info> <keygroup:info> <keygroup:name>eurid</keygroup:name> </keygroup:info> </info> </command> </epp> The server will return the information for that keygroup: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <keygroup:infData> <keygroup:name>eurid</keygroup:name> <keygroup:key> <keygroup:keyTag>49049</keygroup:keyTag> <keygroup:flags>256</keygroup:flags> <keygroup:protocol>3</keygroup:protocol> <keygroup:algorithm>7</keygroup:algorithm> <keygroup:pubKey>AwEAAaQx/SAfK9rmTYsyThhUgvUBQORqQhUNbcIx67sfUtC6Ii1WHn0C dIMcO8FUMT3PE7BhJ04zYiJdX2Gr6VEHXW0=</keygroup:pubKey>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 200

EPP Guidelines

</keygroup:key> </keygroup:infData> </resData> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> If the name of the keygroup was incorrect then the system replies as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:keygroup="http://www.eurid.eu/xml/epp/keygroup-1.0"> <response> <result code="2303"> <msg>Object does not exist</msg> <value> <keygroup:name>illegal_</keygroup:name> </value> </result> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 201

EPP Guidelines

Dynamic updater results


The table below contains the EPP extensions used when retrieving information from the Dynamic Updater. Tag <eurid:response> <eurid:dynUpdateStatus> <eurid:domainName> <eurid:updatetime> <eurid:stoptime> <eurid:result> <eurid:errors> <eurid:error> <eurid:code> <eurid:arguments> nameServer | missingNameServer | masterNameServer | domainName | otherMasterNameServer | keyTag | masterNameServerIP | dnsError | otherMasterNameServerIP 256 | 257 | 258 | 259 260 | 261 | 262 | 263 More codes might be added in the future (time) (time) 0 | 1 0 indicates success and 1 a failure Value Remark

<eurid:argument>

Placeholders used in the error messages

<eurid:message> List of the .of the arguments. Argument Description Error provided by the name server that was queried at that time. (ie: .eu master or the registrars). If the name server was unreachable it is said so here Domain name An IP address mentioned in the domain name entry in the registration system database. Name server Host name Key tag Master name server Master name servers IP address Missing name server Name server

${dnsError}

${domainName} ${domainNameIP} ${firstNameServer} ${hostName} ${keyTag} ${masterNameServer} ${masterNameServerIP} ${missingNameServer} ${nameServer}

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 202

EPP Guidelines

${nameServerIP} ${otherMasterNameServer} ${otherMasterNameServerIP} ${resourceRecordType} ${secondNameServer}

Name servers IP address Master name server Master name servers IP address RR type (see list below) Name server

Example: To obtain the dynamic update test results, your EPP client sends the following command: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <extension> <eurid:ext xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <eurid:command> <eurid:dynUpdateStatus> <eurid:domainName>example.eu</eurid:domainName> </eurid:dynUpdateStatus> <eurid:clTRID>updatorFeedback-0001</eurid:clTRID> </eurid:command> </eurid:ext> </extension> </epp> If the test was successful the .eu EPP server replies as follows: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:response> <eurid:dynUpdateStatus> <eurid:domainName>example.eu</eurid:domainName> <eurid:updateTime>2010-06-07T02:55:30.000Z</eurid:updateTime> <eurid:stopTime>2010-06-07T02:55:31.000Z</eurid:stopTime> <eurid:result>0</eurid:result> </eurid:dynUpdateStatus> </eurid:response> </eurid:ext> </extension> <trID> <clTRID>updatorFeedback-0001</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 203

EPP Guidelines

If the result is not 0, the reply will include the errors found during validation. Below is an example including errors 263 and 256: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0" xmlns:eurid="http://www.eurid.eu/xml/epp/eurid-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <extension> <eurid:ext> <eurid:response> <eurid:dynUpdateStatus> <eurid:domainName>example.eu</eurid:domainName> <eurid:updateTime>2010-06-05T02:11:30.000Z</eurid:updateTime> <eurid:stopTime>2010-06-05T02:11:31.000Z</eurid:stopTime> <eurid:result>1</eurid:result> <eurid:errors> <eurid:error> <nameserver>ns7.domain.eu</eurid:nameserver> <eurid:code>263</eurid:code> <eurid:arguments> <eurid:argument key=masterNameServer>ns1.domain.eu</eurid:argument> <eurid:argument key=masterNameServerIP>123.45.67.89</eurid:argument> <eurid:argument key=otherMasterNameServerIP>132.54.76.98</eurid:argument> </eurid:arguments> <eurid:message>Master name server ${masterNameServer}'s IP ${masterNameServerIP} differs from ${otherMasterNameServerIP}</eurid:message> </eurid:error> <eurid:error> <eurid:code>256</eurid:code> <eurid:arguments> <eurid:argument key="nameServer">ns1.other.eu</eurid:argument> <eurid:argument key="domainName">example.eu</eurid:argument> </eurid:arguments> <eurid:message>No IP address found for name server ${nameServer} - domain name ${domainName}</eurid:message> </eurid:error> </eurid:errors> </eurid:dynUpdateStatus> </eurid:response> </eurid:ext> </extension> <trID> <clTRID>updatorFeedback-0001</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 204

EPP Guidelines

Sending the dynUpdateStatus command for a domain name that is not DNSSEC enabled (i.e. that is not linked to any nameserver or nameserver group and any key or keygroup) results in the following reply: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="http://www.eurid.eu/xml/epp/epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <trID> <svTRID>eurid-0</svTRID> </trID> </response> </epp>

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 205

EPP Guidelines

UNIMPLEMENTED EPP COMMANDS Renew


The EPP protocol contains the possibility to renew the registration of a domain name. As the renewal is automatic in .eu, this command is not implemented.

Check contact
As EURid always generates unique aliases for newly created contacts, there is no reason to check for the availability of a certain alias. This query is not implemented.

Transfer contact
In the model underlying the EPP standard, a contact is global, i.e. not belonging to the registrar who created it. However it can only be updated by the "sponsoring client", the one who created it. A contact object can be transferred (as is the case for a domain in EURid) to a new sponsoring client. In the EURid system this is not allowed. If the same object needs to be used by another registrar, that registrar has to create a new (identical) object.

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 206

EPP Guidelines

ADDENDUM 1: List of all accepted country codes for registrant contacts


AT BE BG CZ CY DE DK ES EE FI FR GR GB HU IE IT LT LU LV MT NL PL PT RO SE SK SI (Austria) (Belgium) (Bulgaria) (Czech Republic) (Cyprus) (Germany) (Denmark) (Spain) (Estonia) (Finland) (France) (Greece) (Great-Britain) (Hungary) (Ireland) (Italy) (Lithuania) (Luxemburg) (Latvia) (Malta) (The Netherlands) (Poland) (Portugal) (Romania) (Sweden) (Slovak Republic) (Republic of Slovenia)

Other accepted country codes AX GF GI GP MQ RE (Aland Islands) (French Guiana) (Gibraltar) (Guadeloupe) (Martinique) (Reunion Island)

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 207

EPP Guidelines

ADDENDUM 2: List of all accepted language codes for contacts and <evidence-lang>
bg cs da de el en es et fi fr ga hu it lt lv mt nl pl pt ro sk sl sv (Bulgarian) (Czech) (Danish) (German) (Greek) (English) (Spanish) (Estonian) (Finnish) (French) (Gaelic) (Hungarian) (Italian) (Lithuanian) (Latvian) (Maltese) (Dutch) (Polish) (Portuguese) (Romanian) (Slovak) (Slovene) (Swedish)

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 208

EPP Guidelines

ADDENDUM 3: Overview of EURid return codes in EPP Poll


Eurid:type APPLICATION APPLICATION APPLICATION APPLICATION APPLICATION FAX FAX FAX FAX FAX MONITORED_UPD_CONTACT MONITORED_UPD_CONTACT MONITORED_UPD_CONTACT MONITORED_UPD_CONTACT OTHER OTHER TRADE TRADE TRADE TRADE TRADE TRADE TRADE TRADE TRADE TRADE TRADE TRADE TRADE TRADE TRADE TRADE TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER ACCEPT ACTIVATED NOTCONSIDERED OTHERACTIVATED REJECT INVALIDATE INVALIDATE INVALIDATE INVALIDATE INVALIDATE READY APPROVED EXPIRED REJECTED INVALIDATE REJECTED AWAY DONE SCHEDULED REJECT REJECT REJECT REJECT INVALIDATE INVALIDATE ANSWER_NEW_HOLDER_REQUIRED ANSWER_CURRENT_HOLDER_REQUIRED EXPIRE DOMAIN_DELETED CONFIRM CANCEL DOMAIN_ON_HOLD AWAY DONE SCHEDULED REJECT REJECT REJECT INVALIDATE INVALIDATE INVALIDATE REJECT REJECT REJECT Eurid:action Eurid:returncode 1000 1000 1601 1602 1603 1301 1302 1303 1304 1305 1501 1502 1503 1504 1401 1402 1000 1000 1000 1201 1202 1203 1204 1205 1206 1251 1252 1253 1254 1255 1256 1258 1000 1000 1000 1101 1102 1103 1104 1105 1106 1107 1108 1109

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 209

EPP Guidelines

TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER TRANSFER WATERMARK

REJECT REJECT ANSWER_REQUIRED EXPIRE DOMAIN_DELETED CONFIRM CONFIRM CANCEL CANCEL DOMAIN_ON_HOLD REACHED

1110 1111 1151 1152 1153 1154 1155 1156 1157 1158 1000

Registration Guidelines Part II: EPP-XML v 1.3D published on 3 June 2010 210

Das könnte Ihnen auch gefallen