You are on page 1of 125

Registration Guidelines for .

eu
PART II: EPP-XML, VERSION 2.0.15

-2-

Table of Contents
1. 2. INTRODUCTION ................................................................................................................ - 9 EURID IMPLEMENTATION SPECIFICITIES .......................................................................... - 11 2.1. TIME ZONE.......................................................................................................................................... - 11 2.2. STANDARD AND EURID EPP SCHEMA DIFFERENCES .................................................................................... - 11 2.2.1. Standard EPP Schemas ........................................................................................................... - 11 2.2.2. EURid-specific schemas .......................................................................................................... - 12 2.2.3. Conceptual differences ........................................................................................................... - 12 2.2.4. Data differences ..................................................................................................................... - 13 2.2.5. Added commands ................................................................................................................... - 14 2.2.6. Unimplemented EPP commands ............................................................................................ - 14 2.3. TRANSPORT AND SECURITY ..................................................................................................................... - 15 2.4. NUMBER OF PARALLEL CONNECTIONS ....................................................................................................... - 15 2.5. VERSIONS ........................................................................................................................................... - 15 2.6. EURID-SPECIFIC OBJURI’S ..................................................................................................................... - 16 2.7. EURID-SPECIFIC EXTURI’S ..................................................................................................................... - 16 -

3.

STRUCTURE OF EPP COMMANDS AND RESPONSES .......................................................... - 18 3.1. INTRODUCTION .................................................................................................................................... - 18 3.2. XML ................................................................................................................................................. - 18 3.2.1. XML declaration ..................................................................................................................... - 18 3.3. BYTE COUNT HEADING........................................................................................................................... - 18 3.4. XML VALIDATION................................................................................................................................. - 20 3.4.1. XML syntax error .................................................................................................................... - 20 3.5. COMMAND FORMAT ............................................................................................................................. - 22 3.5.1. Client EPP command ............................................................................................................... - 22 3.5.2. Server EPP response ............................................................................................................... - 23 -

4.

SESSION HANDLING ........................................................................................................ - 26 4.1. INTRODUCTION .................................................................................................................................... - 26 4.1.1. Transport and security ............................................................................................................ - 26 4.1.2. Hostnames and port numbers ................................................................................................ - 26 4.2. HELLO / GREETING ............................................................................................................................... - 27 4.2.1. Purpose ................................................................................................................................... - 27 4.2.2. Request syntax........................................................................................................................ - 27 4.2.3. Reply syntax ............................................................................................................................ - 28 4.2.4. Examples................................................................................................................................. - 28 4.3. LOGIN ................................................................................................................................................ - 29 4.3.1. Purpose ................................................................................................................................... - 29 4.3.2. Request syntax........................................................................................................................ - 29 4.3.3. Which <objURI> or <extURI> to use? ...................................................................................... - 30 4.3.4. What happens if one forgets a required extURI? ................................................................... - 30 4.3.5. Reply syntax ............................................................................................................................ - 30 4.3.6. Return codes ........................................................................................................................... - 31 4.3.7. Examples................................................................................................................................. - 31 4.4. LOGOUT ............................................................................................................................................. - 32 4.4.1. Purpose ................................................................................................................................... - 32 4.4.2. Request syntax........................................................................................................................ - 32 4.4.3. Reply syntax ............................................................................................................................ - 32 -

-3-

....................................2.............. ... Domain name extension .................................49 5........... ...................... DELETE CONTACT .............................35 5..................5.............4...............................................1...................2................ Request syntax........43 5.............................................4....5.........................54 6...1. ........................42 5..................................5..... ..............................................35 5....2.....48 5..... ......................... ............................................................................................ Purpose .............. ...........2..................2..1....... Purpose ..............................................................52 6.............61 - -4- .........57 6.4.................................3.............................................................................................1..... ........... Examples..............................................................39 5....... ................................................................. Examples........................................................... Reply syntax ................................................ Request syntax.............................2............. UPDATE CONTACT ..52 6.............. .......57 6.....................................................................................3...................................... Examples.........................................................................2..........................1) .............4...........................................................................4............ ..4..................3.......................................1.................................................44 5...2........................ CREATE CONTACT .....................43 5........2...2...54 6..................................... ........................................................................................3...............................35 5..............5.....................................3.....3......................................................................................................................................................4.............2...............50 - 6................................. Reply syntax ......................................2........................................................60 6................... Return codes ................. .5................................3......................1................................................................. Contact ID’s .3..........................52 6........................3..........................................................5........................... ....3.....................1..5.............................................................33 - 5........... Associating name servers to a domain name ..............................42 5.. ......................................................1...........44 5.................................... ..................52 6...1..................37 5..... Reply syntax .... ..........................................................................1..3........... ................ CREATE DOMAIN ... Purpose .................. Return codes .................................................... DOMAINS ..............1.............. Purpose .......... ....52 6...................................................... Purpose ......................................42 5..........................32 Examples....... ............3................ .......................................................... Request syntax......... .................... .........................................................1...........................3........2...........................................3............ ......................................................................................50 5...............................................................46 5..........................................................5.................................. ....................................................... Return codes .................3............ DELETE DOMAIN ...... INFO CONTACT ......................................41 5...................................................................... .................................................... ..............................................4.......4.2...........60 6..................... ........................................................ 4............................4.... ..1................................................................................... ........46 5.........48 5.............................................. Request syntax...................40 5.. ..........42 5.. CONTACTS ...........2.................................................................................................................................. Contact coordinates ...............3..................5..........................................................................47 5....1............37 5......................... Reply syntax ................................................. ..............................54 6......................... ...... ..................4................... .....................................................1....4............................................................. Contact types .. ........4............................. Key Data Interface (secDNS 1.......... ......................................60 6.............5...........................5.......................... INTRODUCTION ........ ....2......... ..................................................3........ ......35 5.......................2.... Examples...............................60 6.....................................4.....................4......... .......................44 5.......................... Cancelling a scheduled deletion ...........................................3. .....................53 6.......... .................. ..................................................... Request syntax......5.................................................................................................. Request syntax.........1..48 5............. Reply syntax .................... Reply syntax . Return codes ... ...................1..............................61 6.................. . Return codes ...................... ........................ Return codes ....................................4..3.............. Valid term period values ............37 5..2...................................................2.............................2.............................. ................................................... Return codes ......................................................... Purpose ...........................1....................59 6................................................................3........... ..................4.................. Examples...............................36 5........................................................................................................... INTRODUCTION ...........1.....

.........................90 8............................2..............................93 8....................84 RETURN CODES ..............3....................................................63 6....92 8.........................82 REPLY SYNTAX ....... ........... Request syntax............................................ Examples.......................... ........... Reply syntax ....................................................1..................6.... Reply syntax ........................................67 6................. INFO DOMAIN ....4...3..............89 8................................................. ....................................4.........................................4..............................................................................................1.1.................... UPDATE NAME SERVER GROUPS .............................................................................................................................1............. .......... .................. 7.............73 6............................................... .....7. Request syntax............3..................................................................................................................65 6...................................91 8...................................... Return codes ........... ..... ..................................3......................................................6..........2.............................................................................80 - 7......... .....................................................6.................................................................3....................................................3.................... Reply syntax .... RENEW DOMAIN ............................................................................90 8.......................................70 6......................................................6......6.82 7.......................... ..............76 6..5...................................................................................... Examples............... ............................ Purpose .......... Request syntax..... ..................86 - 8....................... .............. ........... ............................... INTRODUCTION .............. .................................................................93 8.................. CREATE NAME SERVER GROUPS ..............................................................70 6.......................................................................... NAME SERVER GROUPS ........................2................................. DELETE NAME SERVER GROUPS ........................ UPDATE DOMAIN ..............................6.7......................................................................................66 6.....................................................................................................4.......5..........................................3...................5...............................................................................74 6........ Purpose ............................ Purpose ...................................................... Examples.......2....................5..................................................................... ........5............................................................73 6.......................................................................4.................................. ................................................. Examples...............................................75 6.........................................62 6... ..................................................2....................................................................... .... ... .......4......................................3.............4......................................82 REQUEST SYNTAX ..2.............. CHECK DOMAIN .................. TRANSFER DOMAIN ...........3..................5......................................................................... ................. ................... ...................... ...........................1...................................................................................................................................................79 6.............. ................................................ Reply syntax .....3...77 6......89 8..........................................................................................................5................................... 7...............4..........................................................3.............................5............................................................. ..................66 6....... Examples....4..............7..... ............. ...........................7.......1...................... ...............5.......3.. ....................... Request syntax................. Request syntax.......................................................................4...2........................6..............3........ .............................................................................................1..................... Request syntax....... Purpose .........91 8........................................... . .. 7..... Request syntax......................... Reply syntax .......... ............................4................4....... Purpose ......92 8.................................................2................... ....................................75 6.............. ................... Purpose ............................................... ...... Return codes ...................84 EXAMPLES ............................................................................5............... Purpose .............. Examples.....2...............4.......................2...............................2... ............................................. ....................................................................5.............91 8............ ......76 6......................................................... Reply syntax .........................................2............................. Return codes ......................................................................2.............. .........5.......4.......71 6........... Return codes . Examples............................... 7........................................................64 6..... Return codes .............91 8.................. .................73 6...5.....................................3.....................2.......................................................89 8...1.................... PURPOSE ...............................................4....................64 6..........................................89 8....63 6......... ........3..7....................1....... Return codes .......................93 8.....................................................5..89 8........................7...........76 6.....................................................63 6..... .....................................4............. Reply syntax .................................................................. .90 8................ ............... ............................................4...........................93 - -5- .

.........................................108 9............................................................ .113 - 10........................................................................................ ....112 9.......... .............................................................. CHECK KEYGROUP........... ..102 9.................................................. Reply syntax ........................ INTRODUCTION ..5............................................ Request syntax.................................. INFO NAME SERVER GROUPS .5............. .........................................................96 8.................................3.......... Return codes ............................................ ..................... ...103 9........ ...........................................................4........................... ...98 8....................................................................6.....2................... Purpose ................97 8.................................... Reply syntax . ..................................1........................................ ....... ...............1.......................................................5.4...................................1....................3...........................................................................97 8.............. Reply syntax .......................6.............................5...............5.6.95 8..............................................................3..............................................................5...... INFO KEYGROUP ....................................................................................115 - -6- ........ ...............2..................3....................... ...............................................2............. ........ Request syntax................. Reply syntax .............. Reply syntax ........................... .............. Request syntax.107 9.................................................................................110 9..........107 9............................................................................3.2.......... Purpose ...... Return codes ............................................................103 9.............................1......................4..........................6...................105 9.1..........5.............102 9..................112 9.......110 9.......................................5.......................................................................................................... .............................................................. ..................................................................................................... Examples................ ...................................................................................... Reply syntax ...... ...................................... ..................6......................5................5......... Return codes .........................................................5......................................95 8...........................................4......... Return codes .......2............111 9...................................................................... ...............6................5.......................................... ..................................................... Return codes ...............................................................104 9.101 9.........6....................................... Request syntax....... ............... .......... ................................................................ ......................................... .. ................................105 9......................................................................5................................................94 8..........................................3..............2..................112 9..........................2......................................1.....................................95 8..................................................................... .....................................................4...............3..................4. Purpose ........101 9..................................................113 9.................................. Purpose ..... Return codes ...........4.......... POLL .................................................................4.............. Return codes ...................................................................................4..................... Examples.......... . Examples................1........... ....110 9.............3......................................... ...................3.......................................4...................................................................112 9......................5................2...........................................4.......4...................................... ......... Examples.... .........6............................ Purpose ...........8................................................................... ...................2........4..................................5............................. Request syntax.....4...........................2............6...................................................111 9...............97 8.............. ..............................3........ ............................. Request syntax......108 9....... .......5..................... Examples.....................................................3................... Examples....1.....94 8............. CHECK NAME SERVER GROUPS ............ ..........................................................105 9.................... ...............................................................110 9.... Request syntax...........................106 9.........................................2......105 9....... Examples....................................................................... ...106 9..................................................................................................96 8............................................................ PURPOSE ........ .......... Return codes ........................................102 9..115 REQUEST SYNTAX .......5...6............................................. ............2..............................................................................................................................................6.......2................... CREATE KEYGROUP ...... ............................................................................................................................. Purpose ..........................5.... Reply syntax .... Purpose ......................1........... Examples.................5.........109 9..................4........ DELETE KEYGROUP............................. 10..... ..........6..............4............................................................... KEYGROUPS.............3..........................................................................96 8..... UPDATE KEYGROUP .......................... ...............................3............................ ......98 8............................................5....107 9...................115 10..............................2.....99 - 9... .......

.....................1....................................................................119 REQUEST SYNTAX ............................ ..........119 11.......... ................................................................................................................10................. ................................ 11...........2............116 10.............................................................119 EXAMPLES ............................................... 11...........117 10....... PURPOSE ................................. Response to an ‘ack’ operation ......................................... .......................... RETURN CODES ....................................120 - APPENDIX 1: ACCEPTED COUNTRY CODES FOR REGISTRANT CONTACTS ..................................3....3....... REPLY SYNTAX .....119 REPLY SYNTAX ...............................................................................................1.............. ..................................................................... .................. .......123 APPENDIX 3: INDEX FOR ALL EPP COMMAND EXAMPLES ............................ ...............................116 10.......122 APPENDIX 2: ACCEPTED LANGUAGE CODES FOR REGISTRANT CONTACTS ...............2.......... ....................... EXAMPLES .................................3........................................116 10........................................... ..........................3............ ....................4...............................................124 - -7- ....................................................... ............. 11......5...................... Response to a ‘req’ operation ................................. ................................. INFO REGISTRARS .....................4...........117 - 11.......

-8- .

but certain policy decisions for the . you are expected to send a valid document. Introduction This document details the EPP based interface as implemented by EURid. As such. there are some fundamental differences that must be taken into account. Each registry has its own way of working. while others will have a slightly different implementation.1. Invalid documents will generate an error message from the validation tool which is sent back to the sender. In order to ensure that this is carried out in all cases. because of the legal framework we are working within. we will look briefly at the command and response syntax and relate it to the EURid situation.eu domain space simply do not fit within the EPP framework. Due to some fundamental differences in the conceptual model. When working with XML. As you will discover. which means that some features will apply. -9- . the EURid EPP system will use a validating XML parser to run a validation as the first step of the handling of the XML document. For each possible command. EPP is a protocol for registering and managing domain names (and not only) in a generic way. XML schemas are a means of describing exactly the possible content of an XML document. as well as in the data format of some fields. This is why the designers of EPP have made it "extensible" from the outset. It is for this reason that you should validate your document against the schemas provided. a few compromises have been made. We have tried to keep as close to the standard as possible. we refer to the schema definitions that describe EPP’s syntax.

10 - ..

EURid implementation specificities 2. Time zone EURid's EPP system returns the date and time in UTC. The Extensible Provisioning Protocol aims at being generic in order to accommodate a range of situations where other TLDs have different procedures. Please note that this can have an impact when scheduling transactions close to midnight.eu policy or technical implementation. we have used the standard schema) and one imposed by the . EURid opted to adapt the schema (through extensions) that keeps divergences from the “standard” to a minimum. however.A.1. During Daylight Savings Time it is UTC +2h.2.1. EPP allows for the protocol to be extended (these can be mandatory).0. Schema file contact-1. as specified by the EPP standard. Belgian time is UTC +1h.2.xsd RFC5733 RFC5731 RFC5730 RFC5730 N.xsd eppcom-1. a document that is valid in one environment might be invalid in another.xsd domain-1. RFC5910 Remark .0. the registry uses local Belgian time (CET/CEST) for all operations. 2.0.g.2.xsd epp-1. a command scheduled at 2012-08-31T23:59:59. Standard EPP Schemas Use the standard EPP schemas as defined in the RFCs. Also note that there are two (2) levels of limitations: one imposed by the EPP schema (as far as possible. 2. Furthermore.0.xsd host-1.xsd secDNS-1. Consequently.0.000 CEST).1.000Z would be executed at 2012-09-01 01:59:59. This may result in the command being executed on a different day (e.11 - . Standard and EURid EPP Schema differences The schemas describe SYNTACTICALLY VALID documents (as far as the protocol is concerned). Normally.

12 - .1.0. Name servers There are two possible ways of working: A name server is not an independent object. each of these differences will require some extension to the standard.xsd nsgroup-1.xsd dss-1. EURid defines objects called keygroups. A contact is generic and control can be passed A contact object belongs to a registrar and on to another registrar.g. In most cases.xsd contact-ext-1.2. Name server groups Name server group is an object type unknown EURid defines objects called name server groups.2.xsd keygroup-1.3.0. they must be created belongs to the same domain as the one it is before they can be linked to a domain.0.1.0.2.xsd domain-ext-1.xsd Description Utility schema file that imports all the other schema files. domain name registration. The same contact can be be used in that role. a billing contact and a technical contact) then it has to be defined twice. Conceptual differences In the following table. When it addresses).xsd registrar-1. it is 1.xsd authInfo-1.0.xsd poll-1. Name servers are objects in their own an attribute of the domain and comes into right. .xsd idn-1.xsd dynUpdate-1. If they need glue records (IP existence when it is linked to a domain. cannot be transferred to another registrar. which are a grouping of DNSSEC keys. linked to.0. This is the option chosen by EURid. roles (e.xsd nsgroup-1. it must be provided with an IP address 2. If the same person has two used in different roles.0.0. Extension to info command (in the context of a domain name transfer). Name servers are just ‘attributes’ of (a "glue record"). we will list the conceptual differences between the “standard” EPP and EURid’s implementation.0. It acquires A contact has a type BY DEFINITION and can only its type from its usage. EURid-specific schemas Schema file all-1. which are a set of name servers. Specification of the contact object extensions Specification of the domain object extensions Specification of the DSS extension Specification of dynamic update notifications Shared elements in EURid extensions. to EPP.xsd euridcom-1. EPP EURid Contacts A contact is defined without a type.0. Keygroups Keygroup is an object type unknown to EPP.2. Specification of the idn:mapping extension Specification of the keygroup object Specification of the nsgroup object (deprecated) Specification of the nsgroup object Specification for displaying poll data Specification of the registar:info command 2.0.

2. Data differences The following tables will give an idea of the data differences that exist between the EPP draft and the EURid implementation.4. More detailed information can be found in the description of each command. ns (hostname) 4-100 1-255 ns (hostAddr) nsgroup 15 1-50 3-45 NA Contact object Field name language EURid length 50 2 EPP length 1-255 NA Remarks ATTENTION: The “name” field is limited to 50 characters. The backend will only accept valid IP addresses for the glue records. org street pc city sp country phone fax email vat 100 1-255 1-16 1-255 1-255 2 1-17 0-17 255 20 0-255 1-255 1-16 1-255 1-255 2 0-17 0-17 Min 1 NA Defined as an extension .2. 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. No change in the format but the software returns an error when shorter than 4 and longer than 100 characters.13 - . Domain object Field domain EURid 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 than 63 characters.

2.5. Update a keygroup. See previous item. NOT IMPLEMENTED. Unimplemented EPP commands EPP commands that are not implemented in the EURid system: EPP-command(s) transfer approve Remarks NOT IMPLEMENTED. Check a name server group.14 - . Get info on a name server group. 2. Obtain registrar account information. Get information on a keygroup.2.6. Create a keygroup.2. transfer reject transfer query . The use of an authorisation code for the transfer of domain names renders the approval by domain name holders unnecessary. Update a name server group Delete a name server group. Added commands The following table shows commands that have been added in the EURid system: EURid <create> nsgroup <update> nsgroup <delete> nsgroup <check> nsgroup <info> nsgroup <info> registrar <create> keygroup <update> keygroup <delete> keygroup <check> keygroup <info> keygroup Purpose Create a name server group. NOT IMPLEMENTED. Check a keygroup. See previous item. Delete a keygroup.

Number of parallel connections The number of simultaneously open connections per registrar account is six (6).3. A connection-less mode can be simulated by sending a login/command/logout combination in one set.2. Versions New versions of the EURid implementation.5. but this is not the normal way to proceed. . 2. EURid only uses EPP in synchronous mode: a response to a command must be received by the client before sending another command (the EPP standard. The most recent version of the EURid EPP implementation can be found in the EPP response after:  Opening a connection to the EPP server.15 - . EURid will only provide a connection-oriented EPP service. There is no actual timeout on the connection open time by clients. The EPP protocol can be layered over multiple transport protocols. however. can co-exist for a (defined) period of time. However. EPP security considerations are resolved by the transport layer and are beyond the scope of this document. Transport and security EPP is intended for use in diverse operating environments where transport and security requirements vary greatly. An EPP session requires the connection between two peers as described in the standard. offering new functionality. allows synchronous as well as asynchronous mode).  Sending a <hello> command. the first connection to be established). Attempting to open a seventh connection will close the oldest connection (i.4. or. Version management will be done via the <extURI> element of the <svcExtension> element. 2. EURid provides EPP only on a Secure Socket Layer (SSL) mechanism over standard TCP/IP sockets.e. We only use EPP in a connection-oriented mode.

eurid.0 http://www.2.eu/xml/epp/nsgroup-1.0 extURI can only mentioned at login by registrars that are subscribed to the DSS service. .1 Namespace prefix nsgroup nsgroup registrar keygroup Notice that the nsgroup-1.0 http://www.eurid.eu/xml/epp/authInfo-1.0 http://www.0 http://www.eu/xml/epp/dynUpdate-1. URI of <objURI> http://www.eu/xml/epp/nsgroup-1.0 http://www. EURid-specific objURI’s These are the EURid-specific objURI’s to use in the login command. 2.eurid.eurid.eurid.1 http://www.0 1 Notice that the DSS-1.eu/xml/epp/idn-1.eu/xml/epp/poll-1.0 objURI can be still be used but is considered deprecated.eurid.7.eurid.6.eurid.eurid.eu/xml/epp/registrar-1.eurid.0 http://www.eurid.eu/xml/epp/dss-1.eu/xml/epp/keygroup-1.0 http://www.0 Namespace prefix contact-ext domain-ext dynupdate authinfo poll idn dss 1 http://www. EURid-specific extURI’s These are the EURid-specific extURI’s to use in the login command.16 - .eu/xml/epp/contact-ext-1. URI of <extURI> http://www.eu/xml/epp/domain-ext-1.

.17 - .

second. XML specifications and examples provided with this document must be interpreted in the character case presented. For instance. The message size is expressed in bytes.2. Structure of EPP Commands and responses 3.2. First. Introduction The main standard reference document that specifies the client-server EPP protocol is the RFC5730. 3. with an XML version of 1. The byte count must be represented in Network order/big endian format.0. </epp> Notice that the recommended character set for client-generated commands is UTF-8. XML declaration Every client request must start with a <?xml?> declaration using a recognized character set (UTF-8.0"> . ASCII-7 or ISO-8859-1). it provides the cleanest support for IDNs. It fixes the format of the commands and responses as well as their possible extensions. it is the character set used in the server responses. 3.3. the client software should be able to read UTF-8 encoded server responses.1. Byte count heading Any client message sent to the EPP server must consist of:  A 4 bytes header followed by  The EPP command as an XML instance. In such situation..18 - . the following EPP logout command: . XML Recall that XML is case sensitive. In particular. including the 4 bytes header itself.3. any client command mentioning an IDN causes the EPP server to return the domain name both in ACE and Unicode representations.1. 3. Unless otherwise stated. The header is a 32 bit integer value equal to the total message size.. <?xml version='1. All EPP commands and responses are enclosed within an <epp> … </epp> XML block.0' encoding='UTF-8'?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.

then the XML part is 167 bytes long. and then by reading a block of the size indicated by the heading.0"> <command> <logout/> <clTRID>logout-example01</clTRID> </command> </epp> Becomes the following message (shown here in a hexadecimal dump): Figure 1 . .Logout message with its byte counter heading (highlighted).e. 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.<?xml version='1. Adding the 4 bytes from the header. The server will parse incoming XML messages on the socket by reading the first 4 bytes. minus 4. Please note that when working with IDN domain names or IDN name servers. the number of characters may not equal the number of bytes. Assuming that newlines are encoded with a LF (0A hex) character and that indentation was done with space pairs (20 20 hex). the total message length is 173 bytes or AB in hexadecimal notation.0' encoding='UTF-8'?> <epp xmlns="urn:ietf:params:xml:ns:epp-1. last byte in the highlighted section). Hence the AB value in the fourth byte (i.19 - .

eu/library/technical.int. These files can be found in the Library – Technical – XML section of the Registrar Extranet on http://registry.empty: <?xml version="1.xsd files) used to validate all XML messages sent to the server for conformance with the EURid EPP implementation.eurid. XML validation The EPP server uses a validating XML parser that controls the conformance of the incoming messages to the XML schema. A client who wants to design an EPP client implementation should use from the EPP XML schema (.20 - .4. then it replies with a syntax error.1. XML syntax error When the server receives a message that does not conform to the published XML schemas.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0</reason> </extValue> </result> <trID> <clTRID>invalid1</clTRID> <svTRID>eurid-0</svTRID> </trID> </response> </epp> . For example.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.4. 3.0"> <contact:id></contact:id> </contact:delete> </delete> </command> </epp> The server replies with a response like: <?xml version="1.0"> <response> <result code="2001"> <msg>Command syntax error</msg> <extValue> <value> <undef/> </value> <reason>line:6 column:9: string length (0) is less than minLength facet (3) for clIDType in namespace urn:ietf:params:xml:ns:eppcom-1.3.0"> <command> <delete> <contact:delete xmlns:contact="urn:ietf:params:xml:ns:contact-1. assume that an authenticated EPP client sends a <contact:delete> command with a <contact:id> that is –incorrectly.

Every validation error will follow the above pattern:  A result code equal to 2001. 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. .  The <reason> tag contains a detailed error message with the position of the detected error(s) and the XML schema that was infringed (in the above example ‘eppcom’).21 - .  The <msg> tag has the value “Command syntax error”.

0'> <contact-ext:type>registrant</contact-ext:type> … </contact-ext:create> </extension> <clTRID>contact-create02</clTRID> </command> </epp> </epp> Elements <command> <create> <extension> <clTRID> Description Contains the whole EPP command block. Defines a set of DNSSEC or EURid-specific extensions for the command.e.5.22 - . it is only returned as-is to the client in the response. <login>. without the preceding 4 bytes. <?xml version='1.3..0'> <contact:id>client_id002</contact:id> … </contact:create> </create> <extension> <contact-ext:create xmlns:contact-ext='http://www. It defines the requested action to be performed.eurid.g. Commands are described in the following chapters.).0"> <command> <create> <contact:create xmlns:contact='urn:ietf:params:xml:ns:contact-1. Some of them are mandatory. See the official EPP specification for constraints about this ID. To be replaced by one of the allowed commands.0' encoding='UTF-8'?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.. 3. <update>. <info>. Command format Client EPP command A generic EPP client command is formed as below (we will show client documents with a light blue background).eu/xml/epp/contact-ext-1. This ID is chosen by the client and needs to be unique only within the client's scope.<delete> . defined in the schema (e. The EPP server does not process or use this ID.5.1. . <check>. i. (Client transaction identifier) uniquely identifies the command to the client.

0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.3. Contains the EURid-specific response extension.059Z</contact:crDate> </contact:creData> </resData> <trID> <clTRID>contact-create02</clTRID> <svTRID>eurid-94044093</svTRID> </trID> </response> </epp> Elements <response> <result> <msg> <value> <resData> <extension> <trID> Description Contains the whole server response block. information data etc. Contains a context-specific value for more informative reference.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <resData> <contact:creData> <contact:id>c16212471</contact:id> <contact:crDate>2012-10-03T12:14:04. See each specific command for more information on the content of the value field. such as XML parsing error column.2. .23 - . line and message. Server EPP response A generic EPP server response is formed as follows (we will show all server response documents on a light red background). define a unique transaction identifier. together. Contains the EPP message text for the corresponding reply code. Contains object-specific data related to the object and command in process.5. Is composed of 2 blocks which. message and service-specific values for the command. specific transactionprocessing error. such as a newly created ID. without the preceding 4 bytes: <?xml version="1. Contains the result code. There is a one to one mapping between error code and error messages.

24 - .1. “Command completed successfully. “Command completed successfully.” This is the default response code for a successfully completed command. Commands that requires offline activity are:  The transfer command.5. .” This response code is used when responding to a <poll> request command and when the server message queue is empty. “Command completed successfully.” This response code is returned when responding to a successful <logout> command.3. the response code 1000 will not be mentioned further in the document unless the successful response code can be different than 1000.2. ack to dequeue. no messages.” This response code is used when responding to a <poll> request command and a message has been retrieved from the server message queue. ending session. action pending.  The delete command. Response code 1000 1001 1300 1301 1500 As a convention. “Command completed successfully. Successful response codes Response text “Command completed successfully.” This response code is used when responding to a command that requires offline activity before the requested action can be completed.

25 - ..

Session handling 4. allows synchronous as well as asynchronous mode). However. Introduction Transport and security EPP is intended for use in diverse operating environments where transport and security requirements vary greatly.4. However.2. we list here the pages for the different environments. 4. The SSL Certificates can be found in the Registrar Extranet at: https://secure.registry. a connection-less mode can be simulated by sending a login/command/logout combination in one set.eu/services/tryout-system https://secure.eu/services/epp 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. The EPP protocol can be layered over multiple transport protocols.eu/services/staging-system . Hostnames and port numbers Up-to-date addresses of the EPP servers are documented in the Registrar Extranet. For convenience.1.1. An EPP session requires the connection between two peers as described in the standard. EURid is providing EPP only on a Secure Socket Layer (SSL) mechanism over standard TCP/IP sockets.26 - .registry.eu/services/epp https://secure. EURid provides a connectionoriented EPP service. but this is not the normal way to proceed.registry. 4.registry. Environment Production Try-out Staging Link https://secure. There is no actual timeout on the connection open time by clients.1.1.

Hello / Greeting Purpose The purpose is to obtain a <greeting> from the EPP server that will handle your requests and that contains an enumeration of EPP services that the server provides. The server will also send a <greeting> when a connection or session is established.4.2. the syntax of a <greeting> is specified in the same RFC5730 under section 2. The syntactic validation rules for the <hello> and <greeting> commands are to be found in the XML Schema file ‘epp-1. The <hello> tag must be an empty XML element with no child element.1.3. the EPP server answers with a <greeting>.2.27 - . It is used to keep an open connection with the EPP servers. The <greeting> tag contains the following elements: Elements <hello> Occurrence Min-max 1 Description . 4. Request syntax The content of a <hello> element is specified in the RFC5730 section 2. In response. A client can request a <greeting> from the EPP server by sending a <hello> command at any time. An EPP client can send a <hello> command at any time.0.4. Similarly. 4.2.xsd’.2.

The EPP version currently supported.0</extURI>.2. 4. This tag is present even if a registrar does not use the DNSSEC Signing Service.3. Examples Description Command file Response file greeting Hello message/greeting response hello-cmd .eu). Reply syntax Description The name of the server (eurid. domains.2.4. The list of namespace URIs representing extended objects that the server is capable of managing. Elements <svID> <svDate> <svcMenu> <version> <lang> <objURI> <svcExtension><extURI> <dcp> Please note the <extURI> tag in the svc extension in the greeting above: <extURI>http://www. … etc. Please be aware that dates in EPP are returned in UTC. The text response language currently supported as defined in RFC3066.eu/xml/epp/dss-1. However.4.28 - . while scheduled operations will be performed in Belgian time (CET/CEST).eurid. The services supported by the server. The list of namespace URIs representing the objects that the server is capable of managing: contacts. Only “en” (English) is available for the time being. Information related to privacy policies. this extURI element can only be used in your login command once you have subscribed to the DNSSEC Signing Service. The current server date and time in UTC.

4.0.3. The EPP version the client supports (1.3.2.1.9.1.4.3. 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. This will be used for versioning (on EPP standard level) in the future.1. An EPP connection is kept open by the server between a <login> and a <logout> command from the client.29 - .xsd’. The syntactic validation rules are to be found in the XML Schema file ‘epp-1. A list of <objURI> and <extURI> the client wants to use with the EPP server . The login command contains the following elements (only the begin tags are shown and each block should be ended by its corresponding end tag “</tag>”): Elements <login> <clID> <pw> <newPW> <options> <version> <lang> <svcs> <objURI> <svcExtension> <extURI> <clTRID> Occurrence min-max 1 1 1 0-1 1 1 1 1 1-* 0-1 0-* 0-1 token: 3-16 token: 6-16 ignored by EPP reg exp: [1-9]+\. This command is used to establish the registrar’s credentials. Request syntax The content of a <login> command is explained in the RFC5730 under section 2. Login Purpose The purpose is to authenticate the user/client with the EPP server. The preferred language of the client for this connection (actually ignored by EURid). 4.0). The userid and EPP password are used to authenticate the party that wants to set up the session.[0-9]+ language (XML built-in) any URI any URI any URI token: 3-64 Size + remarks Elements <cIID> <pw> <version> <lang> <svcs> Description The registrar ID of the connecting client. Both <version> and <lang> must match one of the server proposition(s). The login command must be sent before any other command can be executed (except for the <hello> command).

. Copy all the <objURI> and <extURI> from the <greeting> response.during this connection. Which <objURI> or <extURI> to use? The <objURI> and <extURI> occurring in a <login> must be a subset of the <objURI> and <extURI> that are listed in a <greeting> command that is returned by the EPP server. 4. In other words: a <login> may not contain a <objURI> or a <extURI> that was not part of a <greeting> command. Remove the object(s) or extension(s) that you did not subscribe to. 2. Registrars that are not subscribed to DSS should not use the DSS <extURI> in their login.3.3. If that extension wasn’t mentioned in a <extURI> tag at login. 4. 4. The transaction ID that is provided by the server.4.30 - .”. then any <domain:transfer> will fail with a result code 2002. Example: The DNSSEC Signing Service (DSS) can be used by registrars that have explicitly enrolled to this service. 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. it is used to indicate the desired “build” number of the server. Ground rule: The easiest approach for selecting the URI’s for your login command is to follow these steps: 1. What happens if one forgets a required extURI? When a login command is submitted with one or more missing extURI’s. One <extURI> has a special meaning (and is mandatory). then any future command that requires one of the missing extensions will fail with a result code = 2002 and a <msg> tag with “Command use error” text and a <reason> with the message “Extension does not match command. the command <domain:transfer> requires the domain-ext extension. Reply syntax Description Elements <result code> <msg> <clTRID> <svTRID> The transaction ID for tracking the command that was provided by the EPP client in the incoming command. Each transaction can be completed with a user-provided transaction ID that can be used to identify a command/response pair.3.3. As an example.5.

4. Examples Description Command file login01-cmd.xml login03-resp. 2103 2103 Unimplemented extension Unimplemented extension Authentication error Authorization error An <extURI> tag was empty Attempting to use an unknown <extURI> Password is not correct Attempting to use DSS but not subscribed to this service The objURI foobar-1. Unknown objURI 'http://www.xml login02-resp. Result code 2001 <msg> Command syntax error Likely cause Incorrect value in <version> tag (MUST be 1.7.0.xml Logging in EPP without DNSSEC Logging in EPP with DNSSEC & login02-cmd. extURI cannot be empty.3.z’ is not a valid enumeration value for versionType in namespace urn:ietf:params:xml:ns:epp-1.1 login03-cmd.eurid. Return codes Error cases <reason> Line:xx column:yy: string value ‘zz.xml nsgroup 1.0).0’.xml Response file login01-resp. N.eu/xml/epp/ foobar-1.1 Logging in EPP with nsgroup 1. objURI cannot be empty.31 - .0'. Unknown extURI: ‘http://www. DNSSEC Signing Service is not enabled for this account.eurid.eu/xml/epp/ foobar-1.xml and DSS .0' is not known Attempting to use an empty objURI 2200 2201 2307 Unimplemented object service Unimplemented object service 2307 4.6.3.A.

A. The transport connection (SSL socket) is closed by the server after the emission of the <logout> response by the server.4.4.1.32 - . Logout Purpose The EPP <logout> command is used to close a session with the EPP server.4. 4. 4.4.4. Return codes Result code 2002 <msg> Command error Error cases <reason> use N. The transaction ID that is provided by the server. . Likely cause Trying to logout while not logged in.4. Request syntax The <logout> tag contains the following elements: Elements <logout/> <clTRID> Occurrence min-max 1 The transaction ID for tracking the command that was provided by the EPP client in the incoming command. Reply syntax Description Elements <result code> <msg> <clTRID> <svTRID> The transaction ID for tracking the command that was provided by the EPP client in the incoming command.3. Size + remarks 4.4. 4. The <logout> command is represented as a tag with no child elements.2.

4.4.5.

Examples

Description Example of logout command

Command file logout-cmd.xml

Response filex logout-resp.xml

- 33 -

- 34 -

5. Contacts
5.1. Introduction

This chapter is based on RFC5733 which describes the individual or organisational social information identifiers, better known as “contacts”. It defines the EPP command syntax and semantics of these contacts. RFC5733 supersedes RFC4933.

5.1.1.

Contact ID’s

Every EPP contact object is identified by a server-unique identifier. Contact identifiers start with a small letter “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.

5.1.2.

Contact types

The types of contacts that can be linked to a domain name are described below: Contact type registrant billing Description A private person or an organisation that is the holder of the domain name. A contact from the registrar to whom invoices related to the domain name will be sent.  Only one active billing contact per registrar. A contact person working for the registrar that is responsible for the technical support related to the domain name.  Up to of 10 active technical contacts per registrar. A contact related to the registrant or a third party, e.g. an intermediate website builder, who can be contacted in case of a technical problem with the domain name.  A registrar can have from zero to an unlimited number of onsite contacts. A person or organisation to whom the registrar delegated part of the (commercial) relationship with the registrant.  A registrar can have from zero to an unlimited number of resellers.

technical

onsite

reseller

The rules governing the links between a domain name and the contacts are summarised here: Contact type registrant billing technical Rules     Exactly one registrant contact per domain name. Exactly one billing contact per domain name. From zero to nine technical contacts per domain name. A domain name must be linked to at least one active support - 35 -

Standard EPP does not enforce a specific role for each contact: in principle. Organization and Address fields” published in the Technical part in the “Library” section of the Registrar Extranet on www.3. <org> and <addr> fields. you MUST use it as a "tech". the same contact object could be used in different roles.36 - . a reseller contact can appear in every XML element where an onsite contact is allowed.eu . A contact can only be used in the role it was created for. The reseller contact type was introduced with version 9. you will need to create a new contact for each of them. From zero to one reseller contact per domain name. However. you cannot link a contact of type "tech" to a domain as a "billing". onsite    reseller   contact (technical or onsite). A domain name can be connected to another onsite contact at any time. Each link between a domain name and a contact should follow that rule. Contact coordinates Every contact also has associated postal address information. Except for the rule that stipulates that at most one reseller can be bound to a domain name. A domain name can be connected to another technical contact at will.registry. EURid requires that you define a role for a contact upon its creation in a <contact-ext> extension tag. A domain name can be connected to another reseller at any time.4. For example. EURid stores postal information in a less restrictive way to accommodate for the many different formats being used worldwide. It is the responsibility of the registrar to provide an address in a readable format. please consult the document “Characters allowed in Name. For a list of all allowed characters in the <name>.1. 5. If you want to use the same person for different roles. From zero to five onsite contacts per domain name. . A domain name must be linked to at least one active support contact (technical or onsite).

is required for a contact of type “tech” and “billing”.5. Is not used by EURid. normalizedString 0-255 normalizedString 1-255 normalizedString 0-255 token: 0-16. is required by EURid. 5. Request syntax The <contact:create> tag contains the following elements: Elements <contact:create> <contact:id> <contact:postalInfo> Occurrence min-max 1 1 1 Size + remarks token: 3-16 ignored by the EPP server Attribute type can only be the value ”loc”. technical). however.1. token: 2 (must be uppercase).37 - <contact:name> <contact:org> <contact:addr> <contact:street> <contact:city> <contact:sp> <contact:pc> <contact:cc> <contact:voice> 1 0-1 1 1-3 1 0-1 0-1 1 1 <contact:fax> 0-1 <contact:email> <contact:authInfo> <contact:pw> 1 1 1 <contact:disclose> <extension> 0 0-1 . see list of possible values in Addendum II. Contains EURID specific elements. normalizedString 1-50 normalizedString 0-100. it must be provided.80}-\w{1.2. If present. you do not have to specify a value between the tags. must always be . the value is ignored by the EPP server.3}\.14}) max length: 17 optional attrib: x: token This field is required by EURid. token: (\+[0-9]{1.3}\. a registrant or onsite. 5. token optional attrib: roid= token (\w|_){1. Only 1 block is accepted (although the schema allows for 2).[0-9]{1.2.14})? max length: 17 This field is required for “tech” and “billing” contacts. Create contact Purpose The <contact:create> command allows to create a contact object of a given type (billing.8} As it is a required element in the schema.[0-9]{1.2. token: (\+[0-9]{1.2.

"billing"|"tech"|"registrant"|"onsite"|"reseller" token: 1-20 See addendum II “Accepted language codes for registrant contacts. The first and the last name should be put in that field. this field contains the (proposed) ID for the contact. Not used by EURid. In the web interface there are two fields for the company name. Although optional in the schema. only country codes from countries belonging to . this will be rejected as a policy error. EURid only accepts the type “loc” with UTF-8 character set (containing non-ASCII characters). It is ignored by EURid since we always create a unique contact ID as “c” + a unique number. The company name of the contact. with a local address or an international address). It is a good practice to start with the last name.<ext> <contact-ext:create> <contact-ext:type> <contact-ext:vat> <contact-ext:lang> 1 1 1 0-1 0-1 present as the type is required.38 - . no “contact:org” is required. This field is limited to 50 characters. followed by the first name because in the web interface contacts are ordered by name. The schema allows it to occur twice (e. It contains the postal street information of the contact. as defined in [ISO3166]. The address information of the contact. However if the contact:type is “tech” or “billing” a “contact:org” tag is mandatory. The state or province of the contact. You can provide up to three instances of this element. Trying to register a contact using more than 100 characters in the “org” field will result in an error message. It should contain information in such a way that it could look like a correct address when printed on a letter as: COMPANY NAME (CONTACT) NAME STREET(1) STREET(2) STREET(3) PC CITY. Trying to register a contact using more than 50 characters in the “name” field will result in an error message.g. <clTRID> 0-1 token: 3-64 Elements <id> <postalInfoType> <name> <org> <street> <city> <sp> <pc> <cc> Description According to the EPP standard. This field can be up to 16 characters. Only one postalInfoType block is accepted. If the contact:type is “registrant”. SP The city of the contact. the back-end will return an error if this element is omitted. in case it would be needed. This is not used by EPP. The postal code of the contact. The two-letters country code of the contact to create. “onsite” or "reseller". For registrants. This field is limited to 100 characters. If “int” is specified as type. The complete name of the contact to create.

followed by a country code.3. "reseller". “onsite”. An optional "x" attribute is provided to note the telephone extension (but this attribute is ignored by EURid). It should be a string that begins with a plus sign ("+"). There is an additional (optional) element in the schema that contains postal information that can be disclosed. However. Although it is not a required field in the schema. followed by a dot (". due to a small oversight in the code. As this is considered to be more a cosmetic issue. EURid extensions: Elements <contact-ext:type> <contact-ext:vat> <contact-ext:lang> Description The type of contact to create. The VAT of the contact. an empty value is accepted by the system and treated equivalently as if the tag would not be there at all. Email address syntax is defined in [RFC2822]. This is not used by EURid. followed by a sequence of digits representing the telephone number. 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). and to not introduce any unnecessary code breaks. 5. Can be one of: “registrant”. . This date that is returned here.<voice> <fax> <email> <authInfo> <disclose> the EU are accepted as required by the regulation 874/2004. The recommended way to signal no VAT number is needed is by not providing the XML tags. Accepted ISO codes can be found in Addendum 1. Is ignored by EURid. it must be provided and only a language from the list (see addendum II) will be accepted. The transaction ID that is provided by the server.2. “tech”. EURid has opted not to correct this. The syntax is the same as for telephone but without the extension attribute. Reply syntax Description XXXX stands for the return code Elements <response> <result code=”XXXX”> <msg> <resData> <contact:creData> <contact:id> <contact:crDate> The unique ID assigned to the created contact by the EPP server. The facsimile number of the contact. as a EURid policy."). “billing”. is formatted in UTC while scheduled operations are performed in Belgian time (CET/CEST). The transaction ID for tracking the command that was provided by the EPP client in the incoming command. The creation date and time of the contact. This tag is optional. The preferred language of the holder of the domain name. The phone number of the contact that is being created.39 - <trID> <clTRID> <svTRID> .

Invalid value for organisation (invalid characters). Contact name exceeds the 50 characters limit Invalid characters used in the contact name Invalid characters used in the street name Invalid characters used in the city field Invalid characters used in the state/province field Country code does not exist. it is not in uppercase. it is not in the EU Not a correct email address Org name exceeds the 100 characters limit Invalid characters used in the organisation name Invalid characters used in the VAT field 2005 2005 2005 Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Object does not exist Parameter value policy error Data management policy violation Data management Invalid email. Value for postal code missing. Invalid value for name (invalid characters). it contains invalid characters. or if type =registrant. Result code 2001 2003 2003 2003 2003 2003 2005 2005 2005 2005 2005 <msg> Command syntax error Required parameter missing Required parameter missing Required parameter missing Required parameter missing Required parameter missing Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Likely cause Value missing for city Value missing for street Value missing for postal code Trying to create a tech contact without organisation name Trying to create a tech contact without fax number Trying to create a contact with no language code. Invalid country code.2.5. Value for fax number missing. Invalid value for organisation (value too long). Value for language code missing.4. Invalid value for name (value too long). Contact ‘cXXXX’ is not an active contact.40 - . Invalid value for city (invalid characters). Invalid contact type. Invalid value for state/province (invalid characters). Invalid value for VAT (invalid characters). Value for organisation missing. 2005 2005 2303 2306 2308 2308 Trying to create an unknown contact type Already at maximum Trying to create a second billing number of billing contacts. Return codes Error cases <reason> line:xx column:yy Value for street missing. Invalid value for street (invalid characters). contact Already at maximum Trying to create an 11th tech .

xml contact-create07-resp.xml Response file contact-create01-resp.xml (as contact-create02-cmd.xml ASCII contact-create08-resp.xml .5. contact 5.41 - .xml contact-create03-resp.xml contact-create02-resp.2.xml Creation of a registrant (as an contact-create03-cmd.xml ASCII Creation of a reseller contact in contact-create08-cmd.xml contact-create05-resp.xml contact-create06-resp.xml Creation of an onsite contact in contact-create07-cmd.policy violation number of technical contacts.xml organisation) Creation of a contact with special contact-create04-cmd. Examples Description Creation of a tech contact Creation of individual) a registrant Command file contact-create01-cmd.xml characters Creation of an onsite contact Creation of a reseller contact contact-create05-cmd.xml contact-create06-cmd.xml contact-create04-resp.

3. Delete contact Purpose The EPP <contact:delete> allows a client to delete a contact object. 5.3. when a contact is still linked to a domain name. The contact identifier is the server-unique identifier of the contact object to delete. 5. .42 - .5. 5.3. A contact object should not be deleted if it is associated with other known objects. The transaction ID that is provided by you for your own reference. Reply syntax Description XXXX stands for the return code Elements <result code=”XXXX”> <msg> <trID> <clTRID> <svTRID> The transaction ID that is provided by you for your own reference.3.2. for example.3. The transaction ID that is provided by the server. Request syntax The <contact:delete> tag contains the following elements: Elements <contact:delete> <contact:id> <clTRID> Occurrence min-max 1 1 0-1 token: 3-16 token: 3-64 Size + remarks Elements <id> <clTRID> Description The contact identifier of the contact you want to delete.1.

The contact is still linked to a domain(s). 2303 2305 Object does not exist Object association prohibits operation Object does not exist Contact ‘cxxxxx’ is still linked to 1 domain(s).xml .5.3. Return codes Error cases <reason> line:6 column:9: .43 - . Examples Description Contact delete example Command file contact-delete01-cmd. Non-compliant to the XML schema The contact does not exist..3. Result code 2001 <msg> Command syntax error Likely cause Contact delete command without a contact ID to delete.5.xml Response file contact-delete01-resp.4.. 5.

2. please consult the document “Characters allowed in Name. <org> and <addr> fields. This is not used by EURid and as it is an optional element in the schema.1. normalizedString 1-50 . Only 1 block is accepted (although the schema allows for 2). Organisation and Address fields” that has been published in the “Library” (“Technical” – “Registration Guidelines”) section of the Registrar Extranet on www. For a list of all allowed characters in the <name>. Updating the status is not supported.44 Token: 3-16 Not used by EURid Not used by EURid Not used by EURid Not used by EURid Size + remarks <contact:name> 1 . In addition.5. Update contact Purpose The EPP <contact:update> command allows to modify the attributes of a contact object. Request syntax The <contact:update> tag contains the following elements: Elements <contact:update> <contact:id> <contact:add> <contact:status> <contact:rem> <contact:status> <contact:chg> <contact:postalInfo> Occurrence min-max 1 1 0 0 0 0 0-1 0-2 Required attribute type =”loc”. meaning that you don’t have to re -specify all unchanged fields (with the exception for a change in address where the whole <addr> needs to be specified).4. The command must contain the server-unique identifier of the contact object to be updated. the application will only accept the type ”loc”.registry. Although the schema is not modified by EURid.4. the command must also contain this element: <contact:chg> The tag that contains object attribute values to be changed.4. it is not taken into account. If it is provided. The EPP protocol provides for a granular update. 5. 5. The EPP protocol offers the possibility of adding and removing a status from a contact.eu.

Except when you want to change a part of the <addr> block. <clTRID> 0-1 Token: 3-64 Elements <id> Description According to the EPP standard.14})? max length: 17 This field is required for “tech” and “billing” contacts.[0-9]{1. see list of possible values in Addendum II.3}\. <contact:fax> 0-1 token: (\+[0-9]{1.45 - . All fields are optional as you only need to specify those that change.14})? max length: 17 optional attrib: x= (token) This field is required by EURid. <chg> . is required for a contact of type “tech” and “billing” normalizedString 0-255 normalizedString 1-255 normalizedString 0-255 token: 0-16. The element that indicates that (one of) the following elements needs to be updated in the database. <contact:email> <extension> <contact-ext:update> <contact-ext:chg> <contact-ext:vat> <contact-ext:lang> 1 0-1 1 0-1 0-1 token Token: 1-20 See addendum II “Accepted language codes for registrant contacts.<contact:org> <contact:addr> <contact:street> <contact:city> <contact:sp> <contact:pc> <contact:cc> <contactvoice> 0-1 1 1-3 1 0-1 0-1 1 1 normalizedString 0-100.3}\.[0-9]{1. token: (\+[0-9]{1. Although optional in the schema. The various fields embedded in a <contact:chg> block are the same as for contact creation. is required by EURid. this field contains the (proposed) ID for the contact. the server will return an error if this element is omitted. because then you need to specify the complete block. It is ignored by EURid since we always create a unique contact ID as “C” + a unique number. Please refer to that command for more information. token: 2 (must be uppercase).

Invalid value for organisation (value too long).4. Result code 2001 2003 <msg> Command syntax error Required parameter missing Required parameter missing Required parameter missing Required parameter missing Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Likely cause The command doesn’t conform to XML Schema Organisation field is missing or it has no value for tech or onsite contacts Street field is missing or it has no value Postal code missing Fax missing on tech contact Name field no longer than 50 characters Name field contains invalid characters Org field longer than 100 characters Org field contains invalid characters Street field contains invalid characters City field contains invalid characters State field contains invalid characters Country code does not exist.3. Return codes Error cases <reason> line:xx column:yy … Value for organisation missing. Reply syntax Description XXXX stands for the return code Elements <response> <result code=”XXXX”> <msg> <trID> <svTRID> A server generated transaction ID. or if type =registrant. Invalid value for city (invalid characters). 5. it is not in uppercase.5. Invalid value for name (value too long). Invalid value for street (invalid characters).46 - . it is not in the EU Invalid email (at syntax level) 2003 2003 2003 2005 2005 2005 2005 2005 2005 2005 2005 Value for street missing. it contains invalid characters. . Value for postal code missing. Invalid value for name (invalid characters). 2005 Parameter value Invalid email. Invalid value for state/province (invalid characters). Invalid country code.4. Value for fax number missing. Invalid value for organisation (invalid characters).4.

xml contact-update01-resp.xml contact-update02-resp.5.47 - .4.xml Update of the phone number of a contact-update02-cmd.xml contact . Examples Description Command file Response file Update of the address of a contact contact-update01-cmd. Adding/removing status is not supported VAT field contains invalid characters Trying to use the unsupported tag <contact:add> 5.2005 2308 syntax error Parameter value syntax error Data management policy violation Invalid value for VAT (invalid characters).

5. 5. 5.48 - . This command must contain the server-unique identifier of the contact object to be queried.5. Info contact Purpose The EPP <contact:info> command is used to retrieve information associated with a contact object.5. you need to have a transfer authorisation code.2. . Attribute “roid” is ignored Not supported The transaction ID provided by the registrar for his own reference. When requesting information about a contact that is not in your portfolio. Request syntax The <contact:info> tag contains the following elements: Elements <contact:info> <contact:id> <contact:authInfo> <contact:pw> <clTRID> Occurrence min-max 1 1 0-1 0-1 0-1 token: 3-64 token: 3-16 Size + remarks Elements <contact:id> <contact:authInfo> <contact:pw> <ext> <clTRID> Description The contact ID for which you want to obtain the information.5.1.

3. The street information of the contact. The address information of the contact. The city of the contact. i.5. The telephone number of the contact. A server generated transaction ID. For EURid. The creation date and time of the contact. The email address of the contact The identifier of the current “sponsoring client”. The identifier of the client and subsystem that created the object. . it contains the same information as <CIID>. The status associated with the contact object.5. The postal code of the contact. Currently only the “ok” status is supported. This date is formatted in UTC while scheduled operations are performed in Belgian time (CET/CEST). The last date and time in UTC format when the contact was updated. Reply syntax The reply from the server contains the following contact information: Elements <result code> <msg> <resdata> <contact:id> <contact:roid> <contact:status> <contact:postalInfo> <contact:name> <contact:org> <contact:street> <contact:city> <contact:sp> <contact:pc> <contact:cc> <contact:voice> <contact:fax> <contactemail> <contact:cIID> <contact:crID> Description <contact:crDate> <contact:upDate> <extension> <contact-ext:type> <contact-ext:vat> <contact-ext:lang> <trID> <clTRID> <svTRID> The contact ID for which you want to obtain the information. The Repository Object Identifier assigned to the contact object when the contact was created. since an object belongs to a registrar and cannot be transferred or used by another registrar. the EURid identification. The complete name of the contact.49 - . The company name of the contact. The transaction ID for tracking the command that was provided by the EPP client in the incoming command. The state or province of the contact. The two-letter country code of the contact. This information can be discarded. The fax number of the contact.e.

xml registrant which is not in your portfolio Contact info of a reseller contact-info05-cmd.5.xml . 5. Examples Description Contact info of a tech contact Command file contact-info01-cmd.4.xml Response file contact-info01-resp.5.5.xml contact-info03-resp.xml contact-info04-resp.xml Contact info of an individual contact-info02-cmd.xml contact-info02-resp.xml registrant Contact info of an organisational contact-info04-cmd.50 - .5. Return codes Error cases <reason> Contact object does not exist Result code 2303 <msg> Object does not exist Likely cause You try to request info about a contact that does not exist.xml contact-info05-resp.xml registrant Contact info of an organisational contact-info03-cmd.

51 - ..

an extension is provided. The "Key Data Interface". deleted or updated as needed. is where the client and the server exchange the key data information with the <secDNS:keyData> tag only. The second interface.3.1. 6. If.1.52 - . The "DS Data Interface”. we will accept domain names without the “. For consistency reasons. 2.1.2. or. A host/name server cannot be accessed directly as an EPP object. a server must support one of the two secDNS interfaces: 1. In the first interface the client is responsible for the creation of the DS information and is required to pass DS information when performing adds and removes. . This is because EPP can be used by registries that manage more than one extension. Associating name servers to a domain name The EPP protocol specifies two possibilities of working with name servers:  Name servers as first class objects. In technical terms it means that you will need to use the <hostAttr> tag and not the <hostObj> element. Domains 6. A name server is specified on the domain object command and is created.  Name servers as attributes to a domain name. however.eu” extension. Top-level domain extension).1) As mandated by the RFC5910 .eu” extensions will be accepted. Domain name extension The EPP standard supposes that the domain name that is being registered contains the trailing TLD extension (i. EURid has adopted the second possibility.section 4 -.6. EURid does not have host objects as separate entities. It defines the EPP command syntax and semantics of domains. Key Data Interface (secDNS 1. Introduction This chapter is based on RFC5731 which describes the EPP Domain Name Mapping. 6.1. The server in turn is required to pass DS information for <domain:info> responses. it will be checked and only “.1. 6.e.

with the same hash algorithm). . 6.4.10] Value is a multiple of 12 in the range [12. Since it is not possible to indicate a number of months higher than 99 on EPP.1.eu DNS zone file in an uniform way (i.e. Valid term period values The valid period values for domain creation are: Unit y m Values ‘1’ | ‘2’ | ‘3’ | ‘4’ | ‘5’ | ‘6’ | ‘7’ | ’8’ | ‘9’ | ‘10’ ‘12’ | ‘24’ | ‘36’ | ‘48’ | ‘60’ | ‘72’ | ‘84’ | ‘96’ Remark Integer value in the range [1.96] The registration term of a domain name cannot exceed 10 years. The reason for selecting the Key Data Interface was to give the registry the possibility to generate all the DS records for the master . the period unit cannot be ‘m’ (months) for domain name registrations of 9 or 10 years.53 - . Also it is not possible to request the reduction of the registration term of a domain name.EURid has chosen to support the Key Data Interface.

2. Contains DNSSEC or EURid specific extensions onsite or reseller contacts normalizedString 1-50 normalizedString 1-50 . Create domain Purpose The EPP command <domain:create>allows a client to register an available domain name.2.8} Is not used by EURid. 6. it must be provided. Request syntax The <domain:create> tag contains the following elements: Elements <create> <domain:create> <domain:name> Occurrence min-max 1 1 1 token: 1-263 The valid period values for domain creation are:  1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | if the unit is years (y) (integer value in the range [1. 6. however.54 Size + remarks <domain:period> 0-1 <domain:ns> <domain:hostAttr> <domain:hostName> <domain:hostAddr> <domain:registrant> 0-1 1-9 1 0-* 1 <domain:contact> 2-* <domain:authInfo> 1 <domain:pw> <extension> <domain-ext:create> <domain-ext:contact> <domain-ext:nsgroup> <domain-ext:keygroup> 0-1 0-1 1 0-* 0-9 0-1 . optional attrib: roid= token (\w|_){1.10])  12 | 24 | 36 | 48 | 60 | 72 | 84 | 96 if the unit is in months (m) Attribute: unit = ”y” | “m” EURid server policy limits up to 9 token: 4-255 attribute “ip” value “v4”(default) or “v6”. As it is a required element in the schema. token: 3-45 token: 3-16 ATTENTION: Required by EURid. token: 3-16 required attrib: "billing" | "tech" ATTENTION: The registry policy requires 1 “billing” contact and at least 1 of “tech” contact.2. you do not have to specify a value between the tags.1.2.80}-\w{1.6.

or 257 for KSK 3 3 | 5 | 6 | 7| 8 | 10 A base 64 value. The authorisation information associated with the domain.55 - . The value is currently ignored.“tech” (0 to 9) An invalid number of contacts or other contact types are not allowed.optional Only NSEC is supported by EURid. Maximum is 1024 base64 characters Elements <domain:name> <domain:period> <domain:ns> <domain:registrant> <domain:contact> <domain:authInfo> Description Is the domain name to create with. The registrant must be a valid contact. either EPP or via the Registrar Extranet. A domain name can be registered for up to 10 years.“billing” (exactly 1) . The domain validity period. Any spaces in the public key will be removed. <hostAddr> elements allow for specifying required glue records. The type attribute can be one of: . the default type is IPv4. The registrant (or domain name holder) of the domain. When adding a name server and not specifying it IP type. or without the trailing “. created on the system before with. The list of contacts associated with this domain. value: "true" | "false" to be used with caution Token: 3-64 256 | 257 Value is 256 for ZSK. The EPP server will return an error when an IPv6 address is entered while the IP address type was set to IPv4 and vice versa.eu”. The attribute ip=”v4” or “v6” can be specified. . Is a list of name servers.<secDNScreate> <secDNS:keyData> <secDNS:flags> <secDNS:protocol> <secDNS:alg> <secDNS:pubKey> <dss:create> <dss:dssEnabled> <dss:master> <dss:slave> <dss:nsecVariant> <dss:useTsig> <clTRID> 1 0-* 1 1 1 1 1 1 1 1-9 0-1 0-1 0-1 value: "true" | "false" token: 3-45 value is an IP address token: 3-45 value is an IP address Value: “NSEC” .

In the secDNS:create extension. The IP address(es) of the slave(s) name server(s). The public DNSSEC key.<domain-ext:contact> <domain-ext:nsgroup> <domain-ext:keygroup> The identifier of the “onsite” contact. By default the TSIG is not enabled and the ACL is used (Access Control List).56 - . The name of name server groups A list of keys. <secDNS:protocol> <secDNSalg> <secDNS:pubKey> You can find the following elements in the <dss:create> extension: Elements <dss:dssEnabled> <dss:master> <dss:slave> <dss:useTsig> Description To put a domain under the DNSSEC Signing Service. The transaction signature. “NSEC” (optional) <dss:nsecVariant> Please refer to the information on the Registrar Extranet for subscribing to the DNSSEC Signing Service. The IP address of the (hidden) master. . The DNSSEC key information. the following elements can be found: Elements <secDNS:dsData> <secDNS:keyData> <secDNSflags> Description Groups the data for Delegation signer. Indicates the type of the key it can be: . The number that represents the cryptographic algorithm as described on RFC 4034. Please refer to “Create keygroup” for more information.eu can be used. Possible values are: .257 (KSK) The protocol value for the associated key. the terms of use have to be accepted. Before the DSS for .“false” (flag not enabled) Please note that there is one TSIG per master name server. the value should be indicated as “true”. The standard value is 3.256 (ZSK) .“true” (flag enabled) .

The end date of the registration term Elements <domain:creData> <domain:name> <domain:crDate> <domain:exData> 6.6.beçç'.4. Error cases <reason> Extension does not match command Result code 2002 <msg> Command use error Likely cause A required <extURI> or <objURI> was not mentioned in the login command. Invalid IP address '1234::1234’. Invalid IP address for the master 2005 2005 2005 Parameter value syntax Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Unimplemented Invalid IP address for the master name server: ${master} Invalid name server 'ns1. The given IP address has not the proper format. The name of the domain that has been created. 2005 2005 2005 2005 2005 2005 2005 2005 2102 Invalid name server 'abc.57 - .2.d'. hostObj is not supported.123. Invalid algorithm value '12'. Invalid IP address for the slave name server '123.123. Invalid protocol value '8'. Return codes The table here below lists error messages you can encounter while using the domain-create command.123.abc.3. Reply syntax Description The grouping of the domain creation data.'. The date and time the domain has been created. Invalid flags value '25'. Invalid IP address for the master name server '123.2. Invalid domain name 'a'. Invalid pubKey.'.123. .

pt'. when expressed in months. Too many billing contacts. invalid format or not existing Domain 'some-domain' is not available. Maximum 9 name servers allowed. Too many tech contacts. Duplicate contact alias 'c123'.somedomain. Name server group 'some-nsgroup' does not exist. reserved or blocked. 2303 2303 2303 2306 2306 2306 Object does not exist Object does not exist Object does not exist Parameter value policy error Parameter value policy error Parameter value policy error Parameter value policy error Data management policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Contact 'c123' is not an active contact. at least one slave name server . This NSEC variant is currently not allowed 'NSEC3'. Wrong type for contact 'cXXXX'. When DNSSEC Signing Service is enabled. You cannot use keys and a keygroup. Unknown authorisation code. Wrong authorisation code used “some-domain” cannot be registered: it is already in use.58 - max 1 max 9 max 5 . At least one tech or onsite contact required. wrong contact type on extension wrong type of contact has been selected 2306 2308 2308 2308 2308 2308 2308 2308 2308 2308 Period must be in range 1-10 years or. be a multiple of 12. Keygroup 'some-keygroup' does not exist. Not enough money for this transaction.2102 2104 2202 2302 option Unimplemented option Billing failure Invalid authorization information Object exists Contact type ‘admin’ is not supported. Contact type 'abc' is not supported. Too many onsite contacts. Glue not required for 'ns.

domain-create04-cmd. ZSK) and for a period of 1 year domain-create02-resp. 1 onsite and a reseller contact Domain create with 2 name domain-create03-cmd. 2 name server groups. no other DNSSEC Signing Service data can be defined.xml billing contact Domain create with IDN. Examples Description Command file Response file domain-create01-resp.xml domain-create04-resp.xml 1 name server (1 glue IPv4). 2 name domain-create02-cmd.xml Domain create with 1 tech and 1 domain-create01-cmd.xml .xml domain-create03-resp. Operation not available because of too many hit points.2.2308 Data management policy violation Data management policy violation Data management policy violation 2308 2308 must be defined. DNSSEC with 2 keys (KSK. a master name server must be defined. 1 tech and 1 onsite contact and for a period of 3 years Domain create with 1 tech contact.59 - .5. When DNSSEC Signing Service is enabled.xml servers with glue (IPv4 and IPv6). When DNSSEC Signing Service is not enabled.xml servers. dss false but dss data is indicated 6.

but that all operations scheduled to happen at a certain point in time will be processed in local Belgian time (CET/CEST). For example. 6. then existing deletion date is cleared.1. In the previous implementations. Request syntax The <domain:delete> tag contains the following elements: Elements <delete> <domain:delete> <domain:name> <extension> <domain-ext:delete> 0-1 0-1 1 token: 1-255 Occurrence min-max Size + remarks . The deletion date cannot be set farther than ten years in the future.3. the domain name will be available again for registration.1. Delete domain Purpose The EPP <domain:delete> command provides the possibility to delete a domain object at a given date. if on 20th September you set a deletion date on August the 10th. After the quarantine period. If a deletion date is set in the past. Cancelling a scheduled deletion When a <domain:delete> command is send with the tag <domain-ext:cancel>.1. the domain name will be placed in quarantine for 40 days. 6.2. Will be placed into quarantine at the first deletion job running at the specified date Happens immediately.3. this was implemented by the “undelete” command. Description Deletion date in the past Deletion date in the future Without deletion date Occurrence Will be placed into quarantine at the next deletion job.3. then the quarantine date will start at September 20th and not August 10th.3. Please keep in mind that EURid’s EPP system returns the date in UTC as specified by the EPP standard.60 - . When the deletion date is reached. 6.6. the quarantine period will start on the date the deletion request is received.

The deletion date. When overwriting a deletion date with a new deletion date.eu” extension. with or without a trailing “.4. The deletion will be executed at the specified deletion date or the next deletion job. 6.<domain-ext:schedule> <domain-ext:delDate> <domain-ext:cancel> <clTRID> 0-1 0-1 0-1 0-1 token: 3-64 Elements <domain:name> <domain-ext:delDate> <domain-ext:cancel> Description The domain to delete. than the new deletion date will be taken into account.61 - Likely cause The command contains the deletion date tag. the deletion date is cleared. Reply syntax Description XXXX stands for the return code Elements <result code=”XXXX”> <msg> <trID> <clTRID> <svTRID> The transaction ID for tracking the command that was provided by the EPP client in the incoming command.3. Result code 1000 1001 <msg> Command completed successfully Command completed successfully.3. but . When present.3. action pending Result code 2001 <msg> Command syntax error Error cases for the delete command <reason> linexx column yy: invalid date value: wrong type: . The transaction ID that is provided by the server. Return codes Successful cases Likely cause This command is only returned when a socalled “immediate delete” is executed. 6.

Domain ‘domain-delete-errdomain-quarantine-1349881717’ does not belong to you. Examples Description Command file Response file domain-delete01-resp.xml date Delete domain immediately domain-delete02-cmd. Domain 'domain-undelete-errdomain-in-quarantine1349881720' does not belong to you.xml Delete domain with a deletion domain-delete01-cmd. Likely cause Domain is not registered Domain not scheduled for deletion Domain is in quarantine already Object does not exist Object status prohibits operation Object status prohibits operation 2304 6.xml date in the past Cancel scheduled deletion domain-undelete01-cmd. with no value Trying to delete a domain name with a deletion date further than 10 years in the future is not allowed Domain not registered Domain is already in quarantine Result code 2303 2304 <msg> Error cases for delete cancellation <reason> Domain ‘abc’ does not exist.3.xml domain-delete02-resp.xml domain-undelete01-resp.xml domain-delete03-resp. Domain 'domain-undelete-err-notschedule-for-delete-1349881719' is not scheduled for delete.xml Delete domain with a deletion domain-delete03-cmd.xml .62 - .2004 Parameter value range error Deletion date too far in the future 2303 2304 Object does not exist Object status prohibits operation Domain ‘some-domain’ does not exist.5.

but the 10 year maximum term can never be exceeded.4.4. It is not possible to request a reduction of the registration term of a domain name.2. It allows registrars to extend the term of existing registrations that are in their portfolio at any given moment. If the domain name is in quarantine. then the pending deletion is automatically cancelled (i. 6. Renew domain Purpose The purpose of the <domain:renew> is to extend the term of a domain name registration.63 - .1. If a domain name is scheduled to be deleted and a term extension is requested in such a way that the new renewal date falls after the deletion date.6. Request syntax The <domain:renew> tag contains the following elements: Elements <renew> <domain:renew> <domain:name> <domain:curExpDate> Occurrence min-max 1 1 1 1 token: 1-255 valid domain name: 2 to 63 characters Expiry date in the format yyyy-mm-dd value: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | if the unit is years (y) 12 | 24 | 36 | 48 | 60 | 72 | 84 | 96 if the unit is months (m) Attribute: unit = “y” | “m” token: 3-64 Size + remarks <domain:period> 0-1 <cITRID> 0-1 . The registration term of a domain can be extended multiple times.4. 6. the deletion date is removed). it reactivates the registrations and extends the registration term.e.

64 - . 6. The value of the current expiry date does not match the value in our database.4.Elements <domain:name> <domain:curExpDate> <domain:period> Description The domain name to be extended (with or without a trailing “. be . Trying to extend the period of a domain name 2304 Object status prohibits operation Parameter value policy error Domain ‘abc’ does not belong to you Invalid current expiry date 2306 2306 2306 Parameter value policy error Parameter value policy error The requested term extension is invalid Period must be in range 1-10 years or. The current expiry date of the domain name registration. Reply syntax Description The domain name that has been extended. Result code 2001 2003 <msg> Command syntax error Required parameter missing Likely cause Wrong date format.eu” extension).4. The period that has to be added to the registration term of the domain.00:000z Elements <domain:name> <domain:exDate> 6. The new expiry date of the domain registration in the format yyyy-mm-ddT00. Required term extension breaks the 10 years rule.4. Term extension of a domain name without stating the period extension Term extension of a domain name that is not in your portfolio. Since it is not possible to indicate a number of months higher than 99 on EPP.3. when expressed in months.789z Period must be specified. the period unit cannot be ‘m’ (months) for term extensions of 9 years. Return codes Error cases <reason> Line:xx column:yy Invalid date value: 2012-09-30T12:34:56.

a multiple of 12.

higher than allowed.

6.4.5.

Examples

Description

Command file

Response file domain-renew01-resp.xml

Extend the term for 5 years, period domain-renew01-cmd.xml in years Extend domain for 8y deletion domain-renew02-cmd.xml date is removed Extend domain for 8y deletion domain-renew03-cmd.xml date is not removed Extend the term of an IDN domain domain-renew04-cmd.xml for 2 years in months Extend term for 4y a quarantined domain-renew05-cmd.xml domain (reactivate)

domain-renew02-resp.xml

domain-renew03-resp.xml

domain-renew04-resp.xml

domain-renew05-resp.xml

- 65 -

6.5.
6.5.1.

Update domain
Purpose

The <domain:update> command allows to change one or more attribute values of a given domain name object. This allows changing a part of a domain name without having to re-specify the elements that do not change. Therefore the command is composed of three possible actions:  <add>: Add additional data to the current domain name.  <rem>: Removes data from the domain name.  <chg>: Update current data from the domain name.

The tags must be in the following order: <add>, then <rem> and then <chg>. For the update domain command at least one <contact:add>, <contact:rem>, or <contact:chg> element must be provided if the command is not being extended. All of these elements may be omitted if an <update> extension is present. This transaction can be used to update data (and even link a new contact to the domain) related to a domain name. Name server names can be entered in all possible supported characters, provided a valid conversion exists between the Unicode and ACE-notation. Please note that the update domain command can also be used to put a certain domain name under the DNSSEC Signing Service (DSS). Before the DSS can be used, the .eu terms of use have to be accepted. Please refer to the Registrar Extranet for more information. When using the <rem> tag, the IP address must also be provided by using the <domain:hostAddr> tag

- 66 -

6.5.2.

Request syntax

The <domain:update>tag contains the following elements: Elements <domain:update> <domain:name> <domain:add> <domain:ns> <domain:hostAttr> <domain:hostname> <domain:hostAddr> <domain:contact> <domain:rem> <domain:ns> <domain:hostAttr> <domain:hostname> <domain:hostAddr> <domain:contact> <domain:chg> <domain:registrant> <extension> <domain-ext:update> <domain-ext:add> <domain-ext:contact> <domain-ext:nsgroup> <domain-ext:keygroup> <domain-ext:rem> <domain-ext:contact> <domain-ext:nsgroup> <domain-ext:keygroup> <secDNS:update> Occurrence min-max 1 1 0-1 0-1 1-* 1 0-* 0-* 0-1 0-1 1-* 1 0-* 0-* 0-1 0-1 0-1 1 0-1 0-* 0-9 0-1 0-1 0-* 0-9 0-1 0-1 - 67 token: 3-16 required attrib: type =”onsite” or "reseller" normalizedString 1-50 normalizedString 1-50 token: 3-16 required attrib: type = “onsite” normalizedString 1-50 normalizedString 1-50 token: 3-16 token: 4-255 Attribute “ip” value “v4” (default) or “v6”; token 3-45 token: 3-16 required attrib: type = “tech” | “billing” token: 4-255 Attribute “ip” value “v4” (default) or “v6”; token 3-45 token: 3-16 required attrib: type = “tech” | “billing” token: 1-255 Size + remarks

One or more contact handles to add or remove from the contact list. Delegation signer data 256 | 257 Value is 256 for ZSK. When adding a name server and not specifying its IP type. value: "true" | "false" token: 3-45 value is an IP address token: 3-45 value is an IP address token: 3-45 value is an IP address Value: “NSEC” value: "true" | "false" to be used with caution Token: 3-64 Elements <domain:name> Description The domain name registration to update (with or without a trailing “. Maximum is 1024 base64 characters. The attribute ip=”v4” or “v6” can be specified. The EPP server will return an error when an IPv6 address is entered while the IP address type was set to IPv4 and vice versa. Any spaces in the public key will be removed. or 257 for KSK 3 3 | 5 | 6 | 7| 8 | 10 A base 64 value. The type attribute can be : .<secDNS:add> <secDNS:dsData> <secDNS:keyData> <secDNS:flags> <secDNS:protocol> <secDNS:alg> <secDNS:pubKey> <dss:dssEnabled> <dss:master> <dss:add> <dss:slave> <dss:rem> <dss:slave> <dss:nsecVariant> <dss:useTsig> <clTRID> 0-1 0 0-* 1 1 1 1 1 0-1 0-1 0-9 0-1 0-9 0-1 0-1 0-1 Optional attrib “urgent” is not supported by the EPP server. the default value will be IPv4.68 - <domain:contact> . This element allows for the specification of required glue records.eu” extension). The <add> and <rem> sections contain the following child elements in that order: Elements <domain:ns> <domain:hostAddr> Description It is used to add or remove one or more name servers from the name server list.

Removing name server group or keygroup The <secDNS:update> section the following elements can be found: Elements <secDNS:keyData> <secDNS:flags> <secDNS:protocol> <secDNS:pubKey> Description The DNSSEC key information. By default the TSIG is not enabled and the ACL (Access Control List) is used. one IP address for the master must be specified. Elements <domain-ext:add> <domain-ext:rem> Description Adding a new name server group or keygroup. the value should be indicated as “false”.69 - . <dss:master> <dss:slave> <dss:useTsig> . The protocol value for the associated key. The transaction signature. the value should be indicated as “true”. To remove the domain from the DSS. The IP address(es) of the slave(s) name server(s). The IP address of the (hidden) master. Possible values are “true” (flag enabled) or “false” (flag not enabled). The type of the key. “billing” (billing contact) (must be exactly 1). The standard value for EURid is 3. It can be either 256 for ZSK. The <extensions> section contains the name server groups and keygroups.  “tech” (technical contact) (0-9) The <chg> section contains the following child elements: Elements <domain:registrant> Description The domain registrant handle. or 257 for KSK. In the event that the domain is put under DSS. The public DNSSEC key The <dss:update> section contains the following elements: Elements <dss:dssEnabled> Description To put a domain under the DNSSEC Signing Service. Please note that there is one TSIG per master name server.

5. 2102 2102 Unimplemented option Unimplemented option Unimplemented option Unimplemented option Adding ‘ok’ status is not supported. invalid glue The domain name does not fulfil all technical details or the provided domain extension is not allowed.70 - . Return codes Error cases Result code 2001 2005 2005 <msg> Command syntax error Parameter value syntax error Parameter value syntax error <reason> line:xx column:yy: … Invalid IP address ‘1.6.com’ Likely cause Add name server. Contact 'c12345' does not exist.3 (Key Data Interface). The <domain:status> tag is not supported. Removing ‘clientTransferProhibited’ status is not supported. 2102 2102 Unimplemented option Unimplemented option Object does not exist Object does not exist hostObj is not supported. The transaction ID that is provided by the server. The <domain:status> tag is not supported. DS Data Interface is not supported. 2102 2102 Adding ‘clientHold’ status is not supported. Invalid domain name ‘somedomain.3.1. Name server group ‘nsgroup1349875849’ does not exist. As mentioned in section 6.1’.1. Reply syntax Description XXXX stands for the return code Elements <result code=”XXXX”> <msg> <trID> <clTRID> <svTRID> The transaction ID for tracking the command that was provided by the EPP client in the incoming command. No locking action is allowed in EPP Add non-existing name server group The contact alias is invalid or does not exist in your 2303 2303 . Urgent updates are not supported.4.5. EURid supports Key Data interface only. glue record missing Add name server. 6. The <secDNS:update> tag has the unsupported value “urgent” set to true.

Glue not required for ‘ns1.xml Add and remove tech contact. Name server ‘some-name-server 192. Remove the last tech contact Add a tech or onsite contact already linked to the registration Add a name server which is already linked to the registration No IP addressed mentioned for the name server. Domain ‘some-domain-name' does not belong to you. The given nameserver does not belong to a (sub)domain of the domain being updated.somedomain. Examples Description Command file Response file domain_update01_resp. change registrant . Contact 'c12345' is already linked to this registration. Domain ‘some-domain-name' does not belong to you.2303 2303 2304 2304 Object does not exist Object does not exist Object status prohibits operation Object status prohibits operation Object status prohibits operation Object status prohibits operation Object status prohibits operation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Domain 'domain-update-err-doesnot-exist' does not exist. portfolio.eu’.5.5. 2308 2308 2308 6.148. At least one tech or onsite contact required.32.xml and remove onsite contact. Contact 'c12345' is not linked to this registration.eu' is already linked to this registration. Cannot remove non-existing key. Name server ‘some-name-server 192.somenameserver. This update could not be done on a locked domain.eu’. add reseller contact. Missing glue for ‘ns1.148.32. add domain_update01_cmd.eu' is not linked to this registration.71 - .21. Domain update command for a domain that does not exist 2304 2304 2304 2308 2308 This domain is not in your portfolio Update an existing domain out of registrar's portfolio or in quarantine Remove a tech contact not linked to registration Remove a name server which is not linked to the registration Adding DNSSEC info on a locked domain is not possible.21.

xml corresponding IP address Remove of 2 name servers with domain_update06_cmd.xml .xml Add 2 name servers with for each domain_update08_cmd.xml domain_update04_resp. add domain_update02_cmd. add and remove keygroup.xml domain_update02_resp. add and remove nsgroup.xml domain_update05_resp.xml and remove onsite contact.xml domain_update03_resp.xml domain_update04_cmd.xml domain_update06_resp.xml an IPv4 and IPv6 glue record domain_update08_resp.xml their corresponding IP addresses Remove of information DNSSEC key domain_update07_cmd.xml domain_update07_resp. change registrant DNSSEC keys— add ZSK.xml Remove of 1 name server with the domain_update05_cmd.72 - . add KSK Remove all DNSSEC keys domain_update03_cmd.Add and remove tech contact.

1. Request syntax The <domain:check> tag contains the following elements: Elements <domain:check> <domain:name> <clTRID> Occurrence min-max 1 1-* 0-1 token: 1-255 token: 3-64 Size + remarks Elements <domain:name> Description Domain names (with or without the “.6. a rate-limit has been introduced for the EPP command <check:domain>. 6.6. The rate-limit is for a sliding window of 60 (sixty) seconds and the quota is 360 checks during this period 6. Check domain Purpose The EPP command <domain:check>allows to enquire about:  The current availability of one or more domain names.eu” extension) to be checked for availability.  The existence of a domain name lock set by the registry. In order to avoid abusive querying. Please keep the rate limit in mind as explained above. .73 - .  The availability date for a domain name that is currently in quarantine.6.2.6. You can check the availability of several domain names at the same time.

quarantine. .3. This additional attribute is returned when a queried domain name is locked. Reply syntax Description This tag shows the availability of the queried domain name.6. blocked and withdrawn. The “X” in the tag can have two possible values:  “true”: meaning that the domain name is available for registration. this tag will also be present and showing the reason why it is not available. Elements <domain:name avail=”X”> <domain:reason> <domain-ext:status s="serverTransferProhibited"/> <domain-ext:availableDate > For IDN domain names the result will also contain the following elements in the extension: Elements <idn:ace> <idn:unicode> Description The queried IDN domain name in the ACE representation. It will show the date and time when the domain name will become available. When a quarantined domain name is queried. The queried IDN domain name in the Unicode representation. The reply contains the domain name queried in the format used in the command. Please note that the time indicates the start of a 24 hour time period in which the domain name will be released. The IDN extension for IDN domain names always displays both notations: Unicode and ACE. Possible reasons are: in use. Dates in EPP are returned in UTC time format while scheduled operations will be performed in Belgian time (CET/CEST).  “false”: meaning that the domain name is not available If the queried domain name is not available.74 - . this additional attribute is returned. reserved.6.

6.xml command of multiple domain names Querying the availability of a domain-check02-cmd.6. Return codes The table here below lists error messages you can encounter while using the <domain:check> command.5.6. Likely cause Domain name > 255 characters The query rate limit has been exceeded. 6. Error cases Result code 2001 2306 <msg> Command syntax error Parameter value policy error <reason> line:xx column:yy: … Excessive querying.75 - .4.xml locked domain name domain-check02-resp.xml .xml Example of domain check domain-check01-cmd. Examples Description Command file Response file domain-check01-resp.

6.76 - . 6. However.  In order to avoid abusive querying. Info domain Purpose The EPP command <domain:info> is used to retrieve information associated with a domain name. The rate-limit is for a sliding window of 60 (sixty) seconds and the quota is 180 checks during this period.. The response to this command can vary depending on the registrar who is executing it. details on domain names under the management of another registrar are returned only when a valid transfer authcode is present in the <authInfo:info> tag. The <domain:info> can be used for:   To retrieve data about a domain name that you are currently managing. Request syntax The <domain:info> tag contains the following elements: Elements <domain:info> <domain:name> <domain:authInfo> <domain:pw> <extension> <authInfo:info> <authInfo:request> <clTRID> Occurrence min-max 1 1 0-1 1 0-1 1 1 0-1 token: 3-64 token: 1-255 Size + remarks .7.1.7. a rate-limit has been introduced for the EPP command <domain:info>. In principle. This authorisation code should be communicated to the registrant to give him the opportunity to transfer away the domain name. To retrieve data about a domain that is not (yet) under your management and you intend to transfer to your portfolio. 6. To generate a transfer authorisation code for a domain name that is currently in your portfolio.7.2. a registrar can only request detailed information about a domain name in his portfolio.

The UTC date/time of the last update of the domain name. The identifier of the registrar who created the object (in the EURid implementation. with or without the extension “.7.77 - Elements <domain:name> <domain:roid> <domain:status> <domain:registrant> <domain:contact type=”XXXX”> <domain:hostName> <domain:hostAddr> <domain:clID> <domain:crID> <domain:crDate> <domain:upID> <domain:upDate> <domain:exDate> <domain:authInfo> . Displays the authorisation code needed for a transfer (only if . this is always the same as clID).Elements <domain:name> <domain:pw> <authInfo:request> <clTRID> Description The domain name. The UTC expiration date/time of the domain name. This extension cannot be used when the domain name is not in the portfolio of the registrar. The Repository Object iDentifier assigned to the domain when it was created. A list of all the other contact handles related to the queried domain name. tech). Dates are returned in UTC time format in EPP while scheduled operations will be performed in Belgian time (CET/CEST).  s=”ok”  When the domain name is locked. The identifier of the client who last updated the object. The identifier of the sponsoring registrar. the following statuses will be received: o s=”serverTransferProhibited” o s=”serverDeleteProhibited” The contact handle of the current registrant of the domain. the following statuses will be received: o s=”serverTransferProhibited” o s=”serverDeleteProhibited” o s=”serverUpdateProhibited”  When the domain name lock is disabled. The authorisation code which allows you to retrieve data about a domain name that is not in your portfolio Requesting for an authorisation code needed for a transfer. XXXX stands for the contact type (billing.eu”. Reply syntax Description The domain name queried. IPv4 or IPv6 address of the name server. 6.3. The UTC date/time of the creation of the domain name. Dates are returned in UTC time format in EPP. The transaction ID for tracking the command that was provided by the EPP client in the incoming command. The name server that belongs to the domain name.

but is not yet in quarantine. onsite. Onsite or reseller contacts The name of name server groups A list of keys. the following elements can be found in the reply: In the <dss:infData>. It can be either 256 for ZSK. Please refer to “Create keygroup” for more information. When the domain name concerns a pending transfer and the command is initiated by the initiating registrar of the transfer. The initiation date of the transfer. The registered IDN domain name in the Unicode representation. tech). or 257 for KSK. the deletion date will be returned in UTC time format. <domain-ext:initiationDate> For IDN domain names the result will also contain the following fields in the extension: Elements <idn:ace> <idn:unicode> Description The registered IDN domain name in the ACE representation. The protocol value for the associated key.<domain:pw> <domain-ext:onHold> <domain-ext:quarantined> <domain-ext:deletionDate> <domain-ext:contact> <domain-ext:nsgroup> <domain-ext:keygroup> requested) The authorisation password that was requested  “true” when the domain name is on hold  “false” when the domain name is not on hold  “true” when the domain name is in quarantine  “false” when the domain name is not in quarantine If a domain name has been scheduled for deletion. Indication of the key type. XXXX stands for the contact type (billing. The public DNSSEC key. the <domain:info> command also shows an additional extension <domainext:pendingTransfer> with the following elements: Elements <domain-ext:registrant> <domain-ext:contact type=”XXXX”> Description The registrant contact identifier of the pending transfer. When subscribed to the DNSSEC Signing Service. A list of all the other contact handles related to the queried domain name. Elements <secDNS:keyData> <secDNS:flags> <secDNS:protocol> <secDNS:pubKey> Description The DNSSEC key information.78 - . the following elements can be found in the reply: . The standard value for EURid is 3.

than the value will be “true”. Please note that there is one TSIG per master name server. Unknown authorisation code.79 - . Possible values are ‘true’ (flag enabled) or ‘false’ (flag disabled). 6.) Excessive querying. but domain not linked to auth code An authorisation code cannot be requested for a domain name that has a pending transfer. The domain for which you requested an authcode is not in your portfolio. 2202 2300 Domain ‘some-domain’ is already being transferred. The IP address of the master. Domain 'some-domain' is locked. The IP address of the slave(s). 2202 Authorisation code was already used. domain not registered The query rate limit has been exceeded. The transaction signature. By default the TSIG is not enabled and the ACL (Access Control List) is used. 2303 2306 2308 Object does not exist Parameter value policy error Data management policy violation (n. code already used on a transfer Domain info with a valid domain and a valid auth code. Result code 2005 2202 <msg> Parameter value syntax error Invalid authorization information Invalid authorization information Invalid authorization information Invalid authorization information Object pending transfer Likely cause Invalid domain name domain locked (authcode ignored) invalid authcode 2202 Unknown authorisation code. Only NSEC is used. Return codes Error cases <reason> Invalid domain name ‘xxxx’. .a.7.4. You can not obtain authorisation code for a domain name which is not yours.Elements <dss:dssEnabled> <dss:master> <dss:slave> <dss:nsecVariant> <dss:useTsig> Description When a domain name is put under the DNSSEC Signing Service.

xml .xml other registrar's portfolio Status in use and not locked/in domain-info04-cmd.xml registrar's portfolio and has a pending transfer (in portfolio transfer) domain-info03-resp.5.xml domain-info06-resp.xml Status in use and not locked/1 domain-info01-cmd.xml not no no domain-info02-resp.xml domain-info07-resp.xml with a deletion date.6.xml domain-info05-resp.xml domain-info04-resp. Domain name that is in the domain-info08-cmd.xml registrar's portfolio. Examples Description Command file Response file domain-info01-resp.xml onsite & 1 tech contact/2 name servers with glues (IPv4 and IPv6)/no DNSSEC Example with request authcode: status in use and locked/1 tech contact and onsite contact/no DNS and DNSSSEC for domain-info02-cmd.xml tech & 1 onsite contact/1 name server and no glue/1 DNSSEC key Domain name in own portfolio domain-info06-cmd.7. but has a pending "ingoing" transfer. nsgroup and 1 keygroup Domain name that is not yet in the domain-info07-cmd.xml domain-info08-resp.xml Status in use and not locked/in domain-info03-cmd.80 - .xml other registrar's portfolio and using authcode on request/2 onsite contacts and no tech contacts/2 name servers with no glue/no DNSSEC Status in quarantine/IDN Latin/1 domain-info05-cmd.

xml from a registrar who is not the owner of a locked domain Domain info of a pending transfer domain-info10-cmd.81 - .Domain info without authcode domain-info09-cmd.xml .xml domain-info10-resp.xml and with a reseller contact domain-info09-resp.

Request syntax The <domain:transfer> tag contains the following elements: Elements <domain:transfer> <domain:name> <domain:period> <domain:authInfo> <domain:pw> <extension> <domain-ext:transfer> <domain-ext:request> <domain-ext:registrant> <domain-ext:contact> 1 token: 3-16 token: 3-16  Tech: 0-9  Onsite: 0-5  Billing: 1  Registrant: 0-1 (The absent registrant data from the current registrar will be copied). The remaining term of the registration will be transferred to the new registration once the transfer has been processed. This authorisation code is used to confirm the transfer action. Transfer domain 7.1. The new registrar then initiates the transfer using this unique authorisation code. It is the new registrar (the one the domain is transferred to) that has to initiate the transaction. Registrants have to contact their old registrar to receive an authorisation code which they have to give to the new registrar. Purpose The purpose of the <domain:transfer> command is to transfer a domain name from one registrar to another registrar.7. <domain-ext:ns> <domain:hostAttr> <domain:hostname> <domain:hostAddr> 0-1 1-9 1 token: 4-255 attribute “ip” value “v4”(default) or “v6” (can be .82 0-1 Occurrences min-max 1 1 0-1 1 token: 2-63 required attrib: unit = "y"|"m" value: 1-99 Size + remarks required attrib: op=”request" .2. 7.

or 257 for KSK) 3 3 | 5 | 6 | 7| 8 | 10 Elements <transfer op="request"> <domain:name> <domain:period> <domain:pw> <domain-ext:registrant> <domain-ext:contact> <domain-ext:ns> <nsgroup> Description The command tag to request a transfer. The authorisation code with which the transfer request can be confirmed. with or without a trailing “. When the <domain-ext:registrant> is absent. The domain term period.indicated) token: 3-45 <secDNS:create> <secDNS:keyData> <secDNS:flags> <secDNS:protocol> <secDNS:alg> <dss:create> <dss:dssEnabled> <dss:master> <dss:slave> <dss:useTsig> <dss:nsecVariant> 256 | 257 (value is 256 for ZSK.eu”. The domain name to be transferred. with or without IP addresses (only needed as glue records). Each contact should belong to the new registrar. then its value must be the contact alias of a registrant that currently exists in your portfolio. Before the DSS for . When the tag is present. These are the different contact identifiers of the domain. See also “create domain” for more information. The set of name server groups.eu can be used. The registrant info will then be copied from the current registration. Please refer to “create contact” for information on the meaning of each value. Please refer to the information on the Registrar Extranet for subscribing to the DNSSEC Signing Service. The set of name servers. Other operations are not implemented. . Only accepted are 1 with unit “y” (year) and 12 with unit “m” (month). then a new registrant contact object will be created and filled with data coming from the current registrar. An authorisation code is valid for 40 calendar days and is linked to one combination of registrant and domain name only. the terms of use have to be accepted. The registrant contact identifier of the transferred domain.83 - .

The transaction ID that is provided by the server. The transaction signature. The transfer request has been placed in the validation queue.256 (ZSK) . The IP address(es) of the slave(s) name server(s).3. Result code 1000 1001 Return codes <msg> Successful cases Likely cause The transfer request is executed immediately.“true” (flag enabled) .In the secDNS:create extension. the value should be indicated as “true”. Command completed successfully Command completed successfully.“false” (flag not enabled) Please note that there is one TSIG per master name server.257 (KSK) The protocol value for the associated key. “NSEC” (optional) <dss:nsecVariant> 7.84 - . It can be: . Possible values are: . action pending .4. the following elements can be found: Elements <secDNS:keyData> <secDNS:flags> Description The DNSSEC key information. By default the TSIG is not enabled and the ACL (Access Control List) is used. The type of the key. the following elements can be found: Elements <dss:dssEnabled> <dss:master> <dss:slave> <dss:useTsig> Description To put a domain under the DNSSEC Signing Service. The IP address of the (hidden) master. Standard <secDNS:protocol> In the dss:create extension. Reply syntax Description XXXX stands for the return code Elements <result code=”XXXX”> <msg> <trID> <clTRID> <svTRID> The transaction ID for tracking the command that was provided by the EPP client in the incoming command. 7.

2202 Authorization information is missing. Period must be 1 year or 12 months. 2202 Invalid authorisation code. Authorisation code was already used. At least one tech or onsite contact .67'. 2300 2303 2304 2306 2306 2308 Domain ‘some-domain’ is already being transferred. authorisation code expires after 40 days 2202 Unknown authorisation code. wrong format or empty 2202 Authorisation code has expired.Error cases Result code 2001 2005 2005 2005 2005 2005 2005 2202 <msg> Command syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Invalid authorization information Invalid authorization information Invalid authorization information Invalid authorization information Invalid authorization information Object pending transfer Object does not exist Object status prohibits operation Parameter value policy error Parameter value policy error Data management <reason> line:xx column:yy: …. Contact 'c1122' is not an active contact.45. wrong IP type Invalid flags value '25'. Invalid domain name 'abcº'.45. Wrong type for contact 'c123456'. Domain 'some-domain-name' has invalid status. Invalid algorithm value ‘9’ Invalid domain name 'c'.67.85 - contact belongs to other registrar domain not registered or in on hold status . Invalid IP address '123. invalid IP address Likely cause first letter missing on key Invalid IP type for address '123.9'.

otherdomain.2308 2308 2308 policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation Data management policy violation required. period tag added. Missing billing contact.86 - transfer02-resp. too many tech too many onsite contact alias repeated (one as tech another as billing) glue required: the IP address of the given name server is missing glue not required 2308 Missing glue for 'ns2. name servers.xml transfer03-resp. new transfer02-cmd. 1 onsite transfer03-cmd.xml contact. Too many tech contacts. 2308 Data management policy violation Operation not available because of too many hit points.xml registrant. keygroups or keys when transfer profile is 'copy'.5. There is already a pending activation request for this domain.xml . 1 technical contact Transfer of IDN domain.msomedomain. 2308 2308 2308 2308 When there is a pending activation request for a reserved domain name and another registrar makes also a transfer request. Unable to use name server groups. copy of transfer01-cmd. 7. 2 name . 1 reseller contact.eu'. 1 tech & 1 onsite contact Transfer of domain. Examples Description Command file Response file transfer01-resp. Duplicate contact alias 'c12345'. Too many onsite contacts.xml registrant. Glue not required for 'ns1.xml Transfer of domain.eu'.

xml registrant. new transfer04-cmd.servers with glues (IPv4 & IPv6). 1 name server group Transfer of domain.xml . 1 tech contact and 2 DNSSEC keys transfer04-resp.87 - .

88 - ..

. coherent with the EPP object extension framework. 8.2. thus facilitating the mapping between a domain name and a list of name servers. adding an additional name server) will have an effect on all the domain names that are linked to that name server group. Name server groups 8. Request syntax The <nsgroup:create> tag contains the following elements: Elements <create> <nsgroup:create> <nsgroup:name> <nsgroup:ns> <clTRID> 1 1 0-9 0-1 normalizedString 1-50 containing characters from [a-z][0-9][-. The advantage is that an update becomes easy. When the zone file is generated.2. Create name server groups Purpose To create a list of name servers that can be used as a placeholder on a domain registration.1.1. 8.] token: 4-255 token: 3-64 Occurrence min-max Size + remarks Elements <nsgroup:name> <nsgroup:ns> <clTRID> Description The (chosen) name for the name server group.2. the name server group is replaced by the name servers it contains.8. The transaction ID (for tracking the command). When a name server group is attached to a domain name (at creation of the domain or through an update). it has the same effect as linking all the name servers individually to that domain. Introduction The name server group mapping is a EURid specific object-extension to the EPP standard. 8. Changing a name server group (e.2. The name server group object allows a registrar to group several name servers in one object. The name of the server.89 - .g.

Reply syntax Description XXXX stands for the return code Message showing the result of the nsgroup creation The transaction ID for tracking the command that was provided by the EPP client in the incoming command. 8. The transaction ID that is provided by the server. Result code 2005 <msg> Parameter value syntax error Object exists Likely cause Name server field contains invalid characters Creating a nsgroup that already exists.2.8.3.xml . Elements <result code=”XXXX”> <msg> <trID> <clTRID> <svTRID> 8. Error cases <reason> Invalid name server.5. Examples Description Creation of a nsgroup Command file nsgroup-create01-cmd.90 - . Return codes The table here below lists error messages you can encounter while using the create name server command.4. 2302 Name server group ‘some-nsgroup’ already exists.2.xml Response file nsgroup-create01-resp.2.

Reply syntax Description XXXX stands for the return code Message showing the result of the nsgroup creation The transaction ID for tracking the command that was provided by the EPP client in the incoming command. The transaction ID (for tracking the command) that was provided by the registrar in the incoming command.1.3.3. Delete name server groups Purpose The command <nsgroup:delete> can be used to delete a name server group. 8.3.8. The transaction ID that is provided by the server.3.2.91 - . 8. It is not possible to delete a name server group that is still linked to one or more domains. 8. Elements <result code=”XXXX”> <msg> <trID> <clTRID> <svTRID> .3. Request syntax The <nsgroup:delete> tag contains the following elements: Elements <delete> <nsgroup:delete> <clTRID> 1 0-1 token: 3-64 Occurrence min-max Size + remarks Elements <nsgroup:name> <clTRID> Description The name of the name server group that you want to delete.

com’. Name server group ‘some-name servergroup’ is still linked to 1 domains.xml . Return codes The table here below lists error messages you can encounter while using the delete name server command. Name server group ‘some-name servergroup’ does not exist.8.xml Response file nsgroup-delete01-resp. Error cases <reason> Invalid name server group name ‘a.4.3. Examples Description NSgroup delete example Command file nsgroup-delete01-cmd.92 - .5.3.some-domain. 2305 8. Result code 2005 2303 <msg> Parameter value syntax error Object does not exist Object association prohibits operation Likely cause Invalid characters Trying to delete an name server group that does not exists Trying to delete a name server group that is still linked to at least one domain.

The name of the server.8.2. There is no <add>. Elements <result code=”XXXX”> <msg> <trid> <clTRID> <svTRID> . Request syntax The <nsgroup: update> tag contains the following elements: Elements <update> <nsgroup: update> <nsgroup:name> <nsgroup:ns> <clTRID> Occurrence min-max 1 1 1 0-9 0-1 normalizedString 1-50 containing characters from [a-z][0-9][-.93 - .4. The transaction ID that is provided by the server. <chg> or <rem> sections as with some other EPP objects.3.4. The transaction ID for tracking the command that was provided by the EPP client in the incoming command.1.4. 8.] token: 4-255 token: 3-64 Size + remarks Elements <nsgroup:name> <nsgroup:ns> <cLTRID> Description The name of the name server group. 8. 8.4. Please note that this command updates the whole object at once. Update name server groups Purpose The command <nsgroup: update> allows to replace the content of a name server group. Reply syntax Description XXXX stands for the return code Message showing the result of the nsgroup creation The transaction ID (for tracking the command) that was provided by the registrar in the incoming command.

eu'.com’.some-domain. Invalid name server name ‘ns.4. Examples Description Command file Response file nsgroup-update01-resp.somedomain. Return codes The table here below lists error messages you can encounter while using the update name server command. keygroups or keys when transfer profile is 'copy'.5.xml Example of an update of a name nsgroup-update01-cmd.otherdomain. name servers.xml server group .4. Name server group ‘nsgroup-somename’ does not exist. Result code 2005 2005 2303 2308 2308 2308 <msg> Parameter value syntax error Parameter value syntax error Object does not exist Data management policy violation Data management policy violation Data management policy violation Likely cause Invalid characters Invalid characters The name server group does not exist.eu'.4. Glue not required for 'ns1. Error cases <reason> Invalid name server group name ‘a.com’. Missing glue for 'ns2.msomedomain. Unable to use name server groups.94 - . glue required glue not required 8.8.

2.1.5. Please note that a single <nsgroup:check> can be used to test the availability (or inexistence) of more than one name server group. 8. Request syntax The <nsgroup:check> tag contains the following elements: Elements <check> <nsgroup:check> <nsgroup:name> <clTRID> 1 1-* 0-1 normalizedString 1-50 containing characters from [a-z][0-9][-.95 - . The transaction ID that is provided by the registrar for his own reference . 8.5.8.] token: 3-64 Occurrence min-max Size + remarks Elements <nsgroup:name> <clTRID> Description The (chosen) name for the name server group. Check name server groups Purpose The command <nsgroup:check> can be used to determine the (in)existence of a name server group in your portfolio.5.

3.5. then “xxxx” has the value “true”. 8. Return codes There are no real error messages to be expected here. Possible reasons:  In use  Invalid name server group name The transaction ID (for tracking the command) that was provided by the registrar in the incoming command. showing the reason of its unavailability. Examples Description Command file Response file nsgroup-check01-resp.xml .xml Checking a non-existing name nsgroup-check01-cmd.8.xml nsgroup-check02-resp. Reply syntax Description XXXX stands for the return code Message showing the result of the nsgroup creation Elements <result code=”XXXX”> <msg> <resData> <nsgroup:chkData> <nsgroup:cd> <nsgroup:name avail=”xxxx”> <nsgroup:reason lang=”en”> If the name server group is available for use. except for the error code ‘2001’ – ‘Command syntax error’. <trID> <clTRID> <svTRID> 8.5. If the name server group is not available for use.96 - . then “xxxx” has the value “false”.xml server Checking some server groups existing name nsgroup-check02-cmd.4.5. this additional tag will become visible. If the name server group is not available for use. The transaction ID that is provided by the server.5.

2.0 you can only use this command for name server groups in your own portfolio.1 Occurrence min-max Size + remarks Elements <nsgroup:name> <nsgroup:authInfo> <nsgroup:pw> <clTRID> Description The of the name server group. The authorisation code that is required to inquire nsgroups that are not in your own portfolio.8.97 - . The transaction ID (for tracking the command) that was provided by you in the incoming command. . Request syntax The <nsgroup:info> tag contains the following elements: Elements <info> <nsgroup:info> <nsgroup:name> <nsgroup:authInfo> <nsgroup:pw> <clTRID> 1 1 0-1 1 0-1 token: 3-64 normalizedString 1-50 containing characters from [a-z][0-9][-.6.6. When you are using nsgroup 1. Two variants are possible with this command: 1. 8. When you are using nsgroup 1.] Only possible when using nsgroup 1. Info name server groups Purpose The command <nsgroup:info> can be used to retrieve the content of an existing nsgroup. 8.1 you can also use this command for name server groups that are not in your own portfolio if you have the authorisation code.6.2.1.

The queried IDN name server in the Unicode representation. Name of a name server that belongs to the name server group. Return codes The table here below lists error messages you can be encountered while using the info name server command.4. . 8.6.8. The queried IDN name server in the ACE representation. The transaction ID that is provided by the server.6.98 - .3. Error cases for name server groups 1.0 <reason> line:xx column:yy: string length (51) is greater than maxLength facet … line:xx column:yy: Element not allowed: … Result code 2001 2001 <msg> Command syntax error Command syntax error Likely cause nsgroup:name > 50 characters Used nsgroup:authInfo which is not allowed in nsgroup 1. The transaction ID that is provided by you for your own reference. Reply syntax Description XXXX stands for the return code Message showing the result of the nsgroup creation Elements <result code=”XXXX”> <msg> <resData> <nsgroup:infData> <nsgroup:name> <nsgroup:ns> <extension> <idn:mapping> <idn:name> <idn:ace> <idn:unicode> <trID> <clTRID> <svTRID> Name of the name server group that was inquired.0 nsgroup name invalid No such nsgroup in your portfolio 2005 2303 Parameter value syntax error Object does not exist Invalid name server group name 'a*?bc'.

1 for nsgroup-info02-cmd.xml nsgroup-info02-resp.1 <reason> line:xx column:yy: string length (51) is greater than maxLength … Invalid name server group name 'a*?bc'.xml nsgroups not in your own portfolio (with authorisation code) nsgroup-info03-resp.99 - . 2303 No such nsgroup in your portfolio 8.Result code 2001 2005 <msg> Command syntax error Parameter value syntax error Invalid authorization information Invalid authorization information Object does not exist Error cases for name server groups 1. Likely cause nsgroup:name > 50 characters nsgroup name invalid 2202 Unknown authorisation code.5. 2202 Invalid authorisation code.xml Response file nsgroup-info01-resp.xml .xml NSgroup info version 1.0 Command file nsgroup-info01-cmd. Examples Description NSgroup info version 1.xml nsgroups in your own portfolio NSgroup info version 1.6.1 for nsgroup-info03-cmd.

.100 - .

this would also mean the creation of a large number of individual key files (public and private keys). In cases where a large number of domain names needs to be made secure. 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).101 - . Keygroups help to address this issue. Since one keygroup can be linked to any number of domain names. Introduction To simplify the management of keys linked to domain names.  A domain name may at most be linked to one keygroup.  A keygroup may have up to four DNSSEC keys at the time. Each keygroup has a unique name and can contain up to four keys.g. consider a keygroup linked to 1000 domain names. the number of keys to be created or replaced is drastically reduced. .1. Rules when working with keygroups:  Each keygroup must have a distinct name within your portfolio. Once a domain name has been created (registered). EURid has introduced the concept of keygroup. 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.  A keygroup may be associated to any number of domain names.  A domain name that is linked to individual keys cannot also be linked to a keygroup and vice versa. it can be linked to a keygroup simply by using the keygroup name. A keygroup is a reusable. Keygroups 9. you would need to create keys (e. Without keygroups. named set of public keys.9. a KSK and a ZSK) for each DNSSEC enabled domain name. For instance. 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.

9.2.
9.2.1.

Create keygroup
Purpose

The command <keygroup:create> can be used to create keygroups.

9.2.2.

Request syntax

The < keygroup:create> tag contains the following elements: Elements <create> <keygroup:create> <keygroup:name> <keygroup:keyData> <keygroup:flags> <keygroup:protocol> <keygroup:alg> <keygroup:pubKey> <clTRID> Occurrence min-max 1 1 1 0-9 1 1 1 1 0-1 256 | 257 value is 256 for ZSK or 257 for KSK only “3” is currently accepted at EURid 3 | 5 | 6 | 7 | 8 | 10 A base 64 value. Any spaces in the public key will be removed. Maximum is 1024 base64 characters. token: 3-64 normalizedString 1-50 containing characters from [a-z][0-9][-.] Size + remarks

Elements <keygroup:name> <keygroup:keyData> <keygroup:flags> <keygroup:protocol> <keygroup:alg> <keygroup:pubKey> <cLTRID>

Description The name for the keygroup The keytag for the associated key. The type of the key. It can be either 256 for ZSK, or 257 for KSK. The protocol value for the associated key. Standard value for EURid is 3. The number that represents the algorithm. The public DNSSEC key. The transaction ID for tracking the command that was provided by the EPP client in the incoming command.

- 102 -

9.2.3.

Reply syntax Description XXXX stands for the return code Message showing the result of the nsgroup creation The transaction ID for tracking the command that was provided by the EPP client in the incoming command. The transaction ID that is provided by the server.

Elements <result code=”XXXX”> <msg> <trID> <clTRID> <svTRID>

9.2.4.

Return codes Error cases <reason> Invalid keygroup name ‘somékeygroup’. Invalid protocol ‘4’. Invalid algorithm ‘2’. Invalid flags ‘258’. Keygroup ‘some-keygroup’ already exists. Duplicate key with keytag ‘xxxx’.

Result code 2005 2005 2005 2005 2302

<msg> Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Object exists

Likely cause Not allowed character in <keygroup:name> Only protocol ‘3’ is accepted. Algorithm ‘2’ is not a valid algorithm. Flag ‘258’ is not a valid flag. You cannot create a keygroup that already exists. You cannot create a keygroup where to or more keys are identical.

2308

Data management policy violation

- 103 -

9.2.5.

Examples

Description

Command file

Response file keygroup-create01-resp.xml keygroup-create02-resp.xml

Basic create keygroup command keygroup-create01-cmd.xml Create keygroup command with keygroup-create02-cmd.xml DNSSEC key Create keygroup command with keygroup-create03-cmd.xml 4 DNSSEC keys

keygroup-create03-resp.xml

- 104 -

Note that it is not possible to delete a keygroup that is still linked to one or more domain names. The transaction ID that is provided by the server. Reply syntax Description XXXX stands for the return code Elements <result code=”XXXX”> <msg> <trID> <clTRID> <svTRID> The transaction ID that is provided by you for your own reference. 9.3. Request syntax The < keygroup:delete> tag contains the following elements: Elements <delete> <keygroup:delete> <keygroup:name> <clTRID> Occurrence min-max 1 1 1 0-1 normalizedString 1-50 containing characters from [a-z][0-9][-.3.2.] token: 3-64 Size + remarks Elements <keygroup:name> <cLTRID> Description The name for the keygroup The transaction ID for tracking the command that was provided by the EPP client in the incoming command.3. Delete keygroup Purpose The command <keygroup:delete> can be used to delete keygroups. . 9.9.3.105 - .3. 9.1.

3.xml Response file keygroup-delete01-resp. Return codes Error cases <reason> Invalid keygroup name ‘somékeygroup’. 9. Keygroup ‘some-keygroup’ does not exist.xml .5.106 - . Result code 2005 2303 2305 <msg> Parameter value syntax error Object does not exist Object association prohibits operation Likely cause Not allowed character in <keygroup:name> The keygroup does not exist. Keygroup ‘some-keygroup’ is still linked to X domain(s).4.9. Examples Description Delete keygroup command Command file keygroup-delete01-cmd. Deleting a keygroup that is still linked to X domain names is not allowed.3.

It can be either 256 for ZSK. Request syntax The < keygroup:delete> tag contains the following elements: Elements <update> <keygroup:update> <keygroup:name> <keygroup:keyData> <keygroup:flags> <keygroup:protocol> <keygroup:alg> <keygroup:pubKey> <clTRID> Occurrence min-max 1 1 1 0-9 1 1 1 1 0-1 256 | 257 value is 256 for ZSK or 257 for KSK only “3” is currently accepted at EURid 3 | 5 | 6 | 7 | 8 | 10 A base 64 value.] Size + remarks Elements <keygroup:name> <keygroup:keyData> <keygroup:flags> <keygroup:protocol> <keygroup:alg> <keygroup:pubKey> <cLTRID> Description The name for the keygroup The keytag for the associated key. The transaction ID for tracking the command that was provided by the EPP client in the incoming command.4.9. Update keygroup Purpose The command <keygroup:update> can be used to update the content of keygroups. 9. The public DNSSEC key. . The type of the key. 9. or 257 for KSK. Updating a keygroup replaces the current content by what is indicated in the command.4.4. The number that represents the algorithm.1. Maximum is 1024 base64 characters. Any spaces in the public key will be removed. Standard value for EURid is 3. The protocol value for the associated key.2.107 - . token: 3-64 normalizedString 1-50 containing characters from [a-z][0-9][-.

You cannot update a keygroup where to or more keys are identical. Invalid algorithm ‘2’. You cannot update a keygroup that does not exist. 2308 . Return codes Error cases <reason> Invalid keygroup name ‘somékeygroup’.108 - . Duplicate key with keytag ‘xxxx’. Flag ‘258’ is not a valid flag. The transaction ID that is provided by the server. Algorithm ‘2’ is not a valid algorithm. Invalid flags ‘258’. Keygroup ‘some-keygroup’ does not exist.4. Elements <result code=”XXXX”> <msg> <trID> <clTRID> <svTRID> 9. Reply syntax Description XXXX stands for the return code Message showing the result of the nsgroup creation The transaction ID for tracking the command that was provided by the EPP client in the incoming command.4.4.3.9. Invalid protocol ‘4’. Result code 2005 2005 2005 2005 2303 <msg> Parameter value syntax error Parameter value syntax error Parameter value syntax error Parameter value syntax error Object does not exist Data management policy violation Likely cause Not allowed character in <keygroup:name> Only protocol ‘3’ is accepted.

xml keys .xml keygroup-update03-resp.109 - .4.9.xml keygroup-update04-cmd.xml keygroup-update03-cmd. Examples Description Command file Response file keygroup-update01-resp.xml Update keygroup remove 1 of 2 keygroup-update05-cmd.xml keygroup-update05-resp.xml keygroup-update04-resp.xml keygroup-update02-resp.xml Update keygroup remove all keys keygroup-update01-cmd.5.xml Update keygroup add 1 key Update keygroup update 1 key Update keygroup add 1 key keygroup-update02-cmd.

9. The “X” in the tag can have two possible values:  “false”: meaning that the keygroup is not available  “true”: meaning that the keygroup is available for registration . 9.5.9. It provides a hint that allows a client to anticipate the success or failure of provisioning a keygroup using the <keygroup:create> command.5.] token: 3-64 Size + remarks Elements <keygroup:name> <cLTRID> Description The name for the keygroup The transaction ID for tracking the command that was provided by the EPP client in the incoming command.2.5.5.3. 9. Reply syntax Description XXXX stands for the return code Message showing the result of the nsgroup creation Elements <result code=”XXXX”> <msg> <resdata> <keygroup:chkData> <keygroup:cd> <keygroup:name avail=”X”> This tag shows the availability of the queried keygroup. Check keygroup Purpose The command <keygroup:check> can be used to check if a keygroups already exists. Request syntax The < keygroup:check> tag contains the following elements: Elements <check> <keygroup:check> <keygroup:name> <clTRID> Occurrence min-max 1 1 1-* 0-1 normalizedString 1-50 containing characters from [a-z][0-9][-.1. Please note that a check can be done on several keygroups within the same command.110 - .

xml nsgroup-check02-resp.4.xml Checking a non-existing name nsgroup-check01-cmd. this tag will also be present and showing the reason why it is not available. Possible reasons are:  In use  Invalid keygroup name when the queried keygroup name contains a character that is not allowed.xml . except for the error code ‘2001’ – ‘Command syntax error. <trID> <clTRID> <svTRID> 9.xml server Checking some server groups existing name nsgroup-check02-cmd.111 - . The transaction ID for tracking the command that was provided by the EPP client in the incoming command. The transaction ID that is provided by the server.5.5.5.<keygroup:reason> If the queried keygroup is not available. Return codes There are no real error messages to be expected here. Examples Description Command file Response file nsgroup-check01-resp. 9.’.

The number that represents the algorithm. It can be either 256 for ZSK. The transaction ID for tracking the command that was provided by the EPP client in the incoming command.1.] Size + remarks Elements <keygroup:name> <keygroup:authInfo> <keygroup:pw> <cLTRID> Description The name for the keygroup The authorisation code needed to request information about keygroups that are not in your portfolio.112 - . . 9. 9. Info keygroup Purpose The command <keygroup:info> can be used to retrieve information about the current situation of an existing keygroup.6.3. or 257 for KSK. Only “3” is currently accepted at EURid.6. 9. The keytag of the associated key.9.6. The type of the key. Request syntax The <keygroup:info> tag contains the following elements: Elements <info> <keygroup:info> <keygroup:name> <keygroup:authInfo> <keygroup:pw> <clTRID> Occurrence min-max 1 1 1 0-1 1 0-1 token: 3-64 normalizedString 1-50 containing characters from [a-z][0-9][-. Reply syntax Description XXXX stands for the return code Message showing the result of the nsgroup creation Elements <result code=”XXXX”> <msg> <resData> <keygroup:infData> <keygroup:name> <keygroup:keyData> <keygroup:flags> <keygroup:protocol> <keygroup:alg> The name of the keygroup.2.6.

The transaction ID for tracking the command that was provided by the EPP client in the incoming command.xml keygroup-info02-resp.5. 9.xml keys and with an authorisation code keygroup-info03-resp. Keygroup ‘some-keygroup’ does not exist.xml Info keygroup command with 1 keygroup-info02-cmd.6.113 - .xml .4. Examples Description Basic info keygroup command Command file keygroup-info01-cmd.xml key Info keygroup command with 4 keygroup-info03-cmd.xml keygroup-info04-resp.xml keys Info keygroup command with 4 keygroup-info04-cmd. The transaction ID that is provided by the server. 9.<keygroup:pubKey> <trID> <clTRID> <svTRID> The public DNSSEC key. Result code 2005 2303 <msg> Parameter value syntax error Object does not exist Likely cause Not allowed character in <keygroup:name> You cannot request information about a keygroup that does not exist.6. Return codes Error cases <reason> Invalid keygroup name ‘somékeygroup’.xml Response file keygroup-info01-resp.

.114 - .

When an EPP client sends an EPP poll command with the ‘req’ operation. Please note that when you want the <resData> section to be visible in the response file. Request syntax The <poll> tag contains the following elements: Elements <poll> Occurrence min-max 1 Size + remarks required attrib: op="req"|"ack". EURid‘s 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. Poll 10. token: 3-64 <clTRID> 0-1 . The “ack” (acknowledgement) operation. 10. the value of the msgID‖ has to correspond to the value of the ―id‖ attribute in the message that is being acknowledged.10. then the EPP server will dequeue (remove that message from the queue) (with given ID) and will decrement the message count of the queue.eurid. you also need to have the following EURid-specific extURI added in the login command: http://www.1. The system makes sure that all notifications can only be acknowledged once regardless of the chosen channel. When an EPP clients sends an EPP poll command with the ‘ack’ operation and the server-unique ID of a previously returned message. a server-unique message identifier and the first message/notification from the message queue.0.115 - . the server will send a reply containing a message counter.2. 2. Purpose To retrieve notifications from the registration system. This method can be used to iterate through all pending messages. The “req” (request) operation. msgID required attribute when op=’ack’: token.eu/xml/epp/poll-1. In the event that the message queue is empty the server will reply that there are no messages pending. The EPP poll command defines two distinct operations (=ways of working): 1.

Response to an ‘ack’ operation Description XXXX stands for the return code attribute count (=number of messages waiting in the queue) attribute id (the server-generated unique identifier of the first message in the queue) The transaction ID for tracking the command that was provided by the EPP client in the incoming command.116 - .10. The action that causes a significant change to the object.1. The transaction ID that is provided by the server. Response to a ‘req’ operation Description XXXX stands for the return code attribute count (=number of messages waiting in the queue) attribute id (the server generated unique identifier of the first message in the queue) Timestamp of the moment when the event was queued.3. The list of contexts is defined elsewhere. Reply syntax 10. The transaction ID that is provided by the server. Elements <result code=”XXXX”> <msg> <msgQ> <trID> <clTRID> <svTRID> . A brief text description about the event to be notified.3. For information purposes only.3. The specific object involved in the notified event. TRANSFER. Elements <result code=”XXXX”> <msg> <msgQ> <qDate> <msg> <resData> <poll:pollData> <poll:context> <poll:object> <poll:action> <poll:code> <poll:detail> <trID> <clTRID> <svTRID> The context of the event (e. DOMAIN).g. A unique code identifying the event An optional message providing more information about the event The transaction ID for tracking the command that was provided by the EPP client in the incoming command.2. 10.

117 - .xml empty queue). 10. no messages Command completed N.10.xml poll04-req-resp.xml poll03-req-resp.xml messages in queue).xml (1 message remaining in queue).A. Poll acknowledgement command poll02-req-cmd. no messages Successful ‘ack’ operation <reason> completed N.A. First message is a "TRANSFER AWAY" event. ack to dequeue Result code 1000 1300 <msg> Command successfully Command completed N.xml poll05-req-resp. successfully.A.xml . poll02-req-resp.xml Poll request command (case of 2 poll01-req-cmd.5. Poll request command (case of an poll05-req-cmd.A. Examples Description Command file Response file poll01-req-resp. Return codes Result code 1300 1301 Successful ‘req’ operation <msg> <reason> Command completed N. successfully.4. First message is a “DOMAIN QUARANTINED” event. successfully.xml (no more messages in queue). Poll acknowledgement command poll04-req-cmd.xml message in queue). Poll request command (case of 1 poll03-req-cmd.

118 - ..

11.119 - . be used to predict whether certain transactions will fail due to insufficient funds or too many hitpoints. The information returned can. This block contains information about the hit. The maximum number of hit points allowed.3.1.  “promo”: the number of promo credits available.2. Info registrars 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. Purpose The purpose of the command <registrar:info> is to obtain account information. The current number of hit points. Reply syntax Elements <response> <result code=”XXXX”> <msg> <resData> <registrar:infData> <registrar:amountAvailable> Description XXXX stands for the return code <registrar:hitPoints> <registrar:nbrHitPoints> <registrar:maxNbrHitPoints> <registrar:credits> The amount of money left in your account which can be used to perform transactions on the registration system. There are two types:  “renewal” : the number of renewal credits available. .11. for example. 11. Request syntax The <registrar:info> tag contains the following elements: Elements <info> <registrar:info> <clTRID> Occurrence min-max 1 1 1 Size + remarks Token: 3-64 11.

xml . Examples Description Example of info registrar Command file registrar-info01-cmd.xml Response file registrar-info01-resp.4.120 - .11.

.121 - .

Appendix 1: Accepted country codes for registrant contacts AT BE BG CZ CY DE DK ES EE FI FR GR GB HR 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) (Croatia) (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) .122 - .

123 - .Appendix 2: Accepted language codes for registrant contacts bg cs da de el en es et fi fr ga hr hu it lt lv mt nl pl pt ro sk sl sv (Bulgarian) (Czech) (Danish) (German) (Greek) (English) (Spanish) (Estonian) (Finnish) (French) (Gaelic) (Croatian) (Hungarian) (Italian) (Lithuanian) (Latvian) (Maltese) (Dutch) (Polish) (Portuguese) (Romanian) (Slovak) (Slovene) (Swedish) .

html List of examples .html nsgroups_update_samples.html session_logout_samples.Appendix 3: Index for all EPP command examples EPP Command Session handling hello login logout Contacts create delete update info Domains create delete renew update check info Transfer domains transfer Nameserver groups create delete update nsgroups_create_samples.html session_login_samples.html session_hello_samples.html domain_delete_samples.html contact_update_samples.html contact_info_samples.html domain_check_samples.html domain_info_samples.html domain_create_samples.html domain_renew_samples.html contact_create_samples.124 - .html contact_delete_samples.html transfer_domain_samples.html domain_update_samples.hmtl nsgroups_delete_samples.

html keygroup_create_samples.html nsgroups_info_samples.html .html keygroup_info_samples.html keygroup_check_samples.125 - .html poll_samples.html keygroup_delete_samples.html keygroup_update_samples.html info_registrar_samples.check info Keygroups create delete update check info Poll poll Info registrar info registrar nsgroups_check_samples.