Back

25 Extensible Provisioning Protocol (EPP)

gTLDFull Legal NameE-mail suffixDetail
.samsungSAMSUNG SDS CO., LTDyesnic.comView
Dot SAMSUNG(“.SAMSUNG”) gTLD entrusts the operation of registry system to Korean ccTLD operation agency Korea Internet & Security Agency(“KISA”).

KISA, which will operate dot SAMSUNG(“.SAMSUNG”) Registry, has already been using EPP for processing business with Registrar. Through encrypted SSL Channel, it communicates EPP message with 31 registrars for dot KR (.KR). Thus, dot SAMSUNG(ʺ.SAMSUNGʺ) gTLD will be processing domain registration and other tasks utilizing EPP under the same environment.

The system that receives EPP message from the most front-end of Registry Site is EPP Gateway Server. EPP Gateway Server parses EPP message, validates it, and sends over the message to Application Server for process if there is no problem detected.

Mechanism for EPP Process is as the following.

1. EPP Gateway Server
EPP Gateway Server sends the Registrarʹs Request Message to Application Server and sends back the Response Message to the Registrar. As well, it receives domain registration administration request from Registrar System, performing Front-End Processing.

Figure [25-1] EPP Processing Conceptual Diagram

2. Functions

Implementation of EPP Protocol
- Support of XML Base Application Layer Protocol
- Definition of component for each business area and realization of object mapping using class template technology
- Configuration Management using XML Schema Technology

Security Function for Internet Communication
- Registrar Authentication performance utilizing X.509 Certificate
- Secures confidentiality through Public Key Algorithm and conventional encryption system
- Ensures data integrity using MAC (message authentication code) with Hash algorithm
- Provides non-repudiation using Digital Signing Mechanism
- Ensures Communication Channel Security by application of SSL (Secure Socket Layer) Protocol
- Registry sets firewall settings so that only the authorized IP addresses of registrar may access SRS system

Session Management
- Common Information Loading of Registrar
- Transaction Information Management of Registrar
- Synchronize Request – Response Message between Registrar and Application Server
- Error Management of Communication Level
- Error Management of Application Transaction Level

Cooperation with other component service of registry system
- Implementation of IPC Communication
- Implementation of TCP Socket Connection function suing SSL

Personnel for EPP operation is included under article 24ʹs SRS operation management plan, EPP operation personnel are as the following:

〈EPP Operation Management〉
- 1 person
- EPP Operation Policy, Supervisor of SRS Management
- Over 7 years experiences

〈 EPP Operation〉
- EPP Program Development & Maintenance
- Over 20 years experiences, Over 10 years experiences

Details for Proprietary EPP Extensions are as the following:

Proprietary EPP Extensions are as the following;

[Example Code] 〈domain:check〉 command

〈?xml version=ʺ1.0ʺ encoding=ʺUTF-8ʺ standalone=ʺnoʺ?〉
〈epp xmlns=ʺurn:ietf:params:xml:ns:epp-1.0ʺ〉
〈command〉
〈check〉
〈domain:check xmlns:domain=ʺurn:ietf:params:xml:ns:domain-1.0ʺ〉
〈domain:name〉example.com〈⁄domain:name〉
〈domain:name〉example.net〈⁄domain:name〉
〈domain:name〉example.org〈⁄domain:name〉
〈⁄domain:check〉
〈⁄check〉
〈clTRID〉ABC-12345〈⁄clTRID〉
〈⁄command〉
〈⁄epp〉


3. List of all commands
1) Domain Commands
〈domain:check〉
It is used to determine if an object can be provisioned within a repository.

〈domain:info〉
It is used to retrieve information associated, with a domain object.

〈domain:create〉
It provides a transform operation that allows a client to create a domain object.

〈domain:renew〉
It provides a transform operation that allows a client to extend the validity period of a domain object.

〈domain:update〉
It provides a transform operation that allows a client to modify the attributes of a domain object.
extension 〈rgp:restore op=”request”〉
extension 〈rgp:restore op=”report”〉
extension 〈sync:update〉
- It allow registrants, through their current registrar, to set a specific expiration date for all of their domain name registration periods.

〈domain:delete〉
It provides a transform operation that allows a client to delete a domain object.

〈domain:transfer op=”query”〉
It provides a query operation that allows a client to determine the real-time status of pending and completed transfer requests.

〈domain:transfer op=”request”〉
It provides a transform operation that allows a client to manage requests to transfer the sponsorship of a domain object.
〈domain:transfer op=”approve”〉
〈domain:transfer op=”reject”〉
〈domain:transfer op=”cancle”〉

2) Host Commands
〈host:check〉
It is used to determine if an object can be provisioned within a repository.

〈host:info〉
It is used to retrieve information associated with a host object.

〈host:create〉
It provides a transform operation that allows a client to create a host object.

〈host:delete〉
It provides a transform operation that allows a client to delete a host object.

〈host:update〉
It provides a transform operation that allows a client to modify the attributes of a host object.

3) Poll Commands
〈poll:op=”req〉
〈poll:op=”ack”〉
The EPP 〈poll〉 command is used to discover and retrieve service messages queued by a server for individual clients.

4) Session Commands
〈hello〉
Use of this element is essential in a connection-less environment where a server cannot return a 〈greeting〉 in response to a client-initiated connection.

〈login〉
It is used to establish a session with an EPP server in response to a greeting issued by the server.

〈logout〉
It is used to end a session with an EPP server.


4. Specifications of commands

1) 〈domain:check〉 - 〈check〉 command is used to determine if an object can be provisioned within a repository.

〈domain:check〉 Request Elements

Domain Name
〈domain:name〉
- elements that contain the fully qualified names of the domain objects to be queried.
one or more

client Transaction ID
〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


2) 〈domain:check〉 Response Elements
Domain:Check Response

Result code
〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

Result message
〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

Domain Name
〈domain:name〉
- avail :
1 or true : can be rovisioned
0 or false : can not be provisioned
- The fully qualified name of the queried domain object.

Reason
〈domain:reason〉
- lang (Option)
Option
- This element that MAY be provided when an object cannot be provisioned.

Client Transaction ID
〈clTRID〉

Server Transaction ID
〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

3) 〈domain:info〉
〈info〉 command is used to retrieve information associated with a domain object.

〈domain:info〉 Request Elements

Domain Name
〈domain:name〉
hosts (option)
all : subordinate and delegated.
del : delegated.
sub : subordinate

Password
〈domain:pw〉
roid (option)*
option
- An OPTIONAL ʺroidʺ attribute MUST be used to identify the registrant or contact object if and only if the given authInfo is associated with a registrant or contact object, and not the domain object itself.

client Transaction ID
〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


4) 〈domain:info〉 Response Elements
〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:roid〉
- the Repository Object IDentifier assigned to the domain object when the object was created.

〈domain:status〉
s*
Option
- elements that contain the current status descriptors associated with the domain.
zero or more

〈domain:hostObj〉
Option
- element that contains the fully qualified names of the delegated host objects or host attributes (name servers) associated with the domain object.
one or more

〈domain:host〉
Option
- elements that contain the fully qualified names of the subordinate host objects that exist under this superordinate domain object.
zero or more

〈domain:clID〉
- element that contains the identifier of the sponsoring client.

〈domain:crID〉
Option
- element that contains the identifier of the client that created the domain object.

〈domain:crDate〉
Option
- element that contains the date and time of domain object creation.

〈domain:exDate〉
Option
- element that contains the date and time identifying the end of the domain objectʹs registration period.

〈domain:upID〉
Option
- element that contains the identifier of the client that last updated the domain object.

〈domain:update〉
Option
- element that contains the date and time of the most recent domain-object modification.

〈domain:trDate〉
Option
- element that contains the date and time of the most recent successful domain-object transfer.

〈domain:pw〉
Option
- element that contains authorization information associated with the domain object.

〈secDNS:keyTag〉
Option
(dsData)
- The Key Tag field lists the key tag of the DNSKEY RR referred to by the DS record, in network byte order.

〈secDNS:alg〉
Option(dsData)
- The Algorithm field lists the algorithm number of the DNSKEY RR referred to by the DS record.

〈secDNS:disgestType〉
Option(dsData)
- The Digest Type field identifies the algorithm used to construct the digest.

〈secDNS:digest〉
Option(dsData)
- The digest is calculated by concatenating the canonical form of the fully qualified owner name of the DNSKEY RR with the DNSKEY RDATA, and then applying the digest algorithm.

〈secDNS:maxSigLife〉
Option (dsData)

〈secDNS:flags〉
Option
(keyData)
- Bit 7 of the Flags field is the Zone Key flag.

〈secDNS:protocol〉
Option
(keyData)
- The Protocol Field MUST have value 3, and the DNSKEY RR MUST be treated as invalid during signature verification if it is found to be some value other than 3.

〈secDNS:alg〉
Option
(keyData)
- The Algorithm field identifies the public keyʹs cryptographic algorithm and determines the format of the Public Key field.

〈secDNS:pubkey〉
Option
(keyData)
- The Public Key Field holds the public key material.

〈rgp:rgpStatus〉
s*
- element that contains a single attribute ʺsʺ whose value describes the current grace period status of the domain.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

5) 〈domain:transfer op=”query”〉
〈transfer〉 command provides a query operation that allows a client to determine the real-time status of pending and completed transfer requests.

〈domain:transfer op=”query”〉 Request Elements

〈domain:name〉

〈domain:pw〉
roid (option)*
option
- An OPTIONAL ʺroidʺ attribute MUST be used to identify the registrant or contact object if and only if the given authInfo is associated with a registrant or contact object, and not the domain object itself.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


6) 〈transfer op=”query”〉 Response

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:trStatus〉
- element that contains the state of the most recent transfer request.

〈domain:reID〉
- element that contains the identifier of the client that requested the object transfer..

〈domain:reDate〉
- element that contains the date and time that the transfer was requested.

〈domain:acID〉
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request..

〈domain:acDate〉
- element that contains the date and time of a
required or completed response.
For a PENDING request, the value identifies the date and time by which a response is required before an automated response action will be taken by the server. For all other status types, the value identifies the date and time when the request was completed.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


7) 〈domain:create〉
〈create〉 command provides a transform operation that allows a client to create a domain object.

〈domain:create〉 Request Elements

〈domain:name〉

〈domain:period〉
- unit
y: Year m: Month
Option
- element that contains the initial registration period of the domain object.

〈domain:hostObj〉
Option
- element that contains the fully qualified names of the delegated host objects or host attributes (name servers) associated with the domain object.

〈domain:pw〉

〈secDNS:keyTag〉
Option (dsData)
- The Key Tag field lists the key tag of the DNSKEY RR referred to by the DS record, in network byte order.

〈secDNS:alg〉
Option(dsData)
- The Algorithm field lists the algorithm number of the DNSKEY RR referred to by the DS record.

〈secDNS:disgestType〉
Option(dsData)
- The Digest Type field identifies the algorithm used to construct the digest.

〈secDNS:digest〉
Option(dsData)
- The digest is calculated by concatenating the canonical form of the fully qualified owner name of the DNSKEY RR with the DNSKEY RDATA, and then applying the digest algorithm.

〈secDNS:maxSigLife〉
Option(dsData)

〈secDNS:flags〉
Option(keyData)
- Bit 7 of the Flags field is the Zone Key flag.

〈secDNS:protocol〉
Option(keyData)
- The Protocol Field MUST have value 3, and the DNSKEY RR MUST be treated as invalid during signature verification if it is found to be some value other than 3.

〈secDNS:alg〉
Option(keyData)
- The Algorithm field identifies the public keyʹs cryptographic algorithm and determines the format of the Public Key field.

〈secDNS:pubkey〉
Option(keyData)
- The Public Key Field holds the public key material.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


8) 〈domain:create〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:crDate〉
- element that contains the date and time of domain object creation.

〈domain:exDate〉
Option
- element that contains the date and time identifying the end of the domain objectʹs registration period.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


9) 〈domain:delete〉 Request Elements

〈domain:name〉

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


10) 〈domain:delete〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


11) 〈domain:renew〉
〈renew〉 command provides a transform operation that allows a client to extend the validity period of a domain object.

〈domain:renew〉 Request Elements

〈domain:name〉

〈domain:curExpDate〉
- element that contains the date on which the current validity period ends

〈domain:period〉
- unit
y: Year m: Month
Option
- element that contains the initial registration period of the domain object.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


12) 〈domain:renew〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:exDate〉
Option
- element that contains the date and time identifying the end of the domain objectʹs registration period.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


13) 〈domain:transfer op=”request”〉
〈transfer〉 command provides a transform operation that allows a client to manage requests to transfer the sponsorship of a domain object.

〈domain:transfer op=”request”〉 Request Elements

〈domain:name〉

〈domain:period〉
- unit
y: Year m: Month
Option
- element that contains the number of units to be added to the registration period of the domain object at completion of the transfer process.

〈domain:pw〉
- roid (option) *
- An OPTIONAL ʺroidʺ attribute MUST be used to identify the registrant or contact object if and only if the given authInfo is associated with a registrant or contact object, and not the domain object itself.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


14) 〈domain:transfer op=”request”〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:trStatus〉
- element that contains the state of the most recent transfer request.

〈domain:reID〉
- element that contains the identifier of the client that requested the object transfer..

〈domain:reDate〉
- element that contains the date and time that the transfer was requested.

〈domain:acID〉
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request..

〈domain:acDate〉
- For a PENDING request, the value identifies the date and time by which a response is required before an automated response action will be taken by the server. For all other status types, the value identifies the date and time when the request was completed.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


15) 〈domain:transfer op=”approve”〉 Request Elements

〈domain:name〉

〈domain:pw〉
- roid (option) *

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


16) 〈domain:transfer op=”approve” Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:trStatus〉
- element that contains the state of the most recent transfer request.

〈domain:reID〉
- element that contains the identifier of the client
that requested the object transfer..

〈domain:reDate〉
- element that contains the date and time that the transfer was requested.

〈domain:acID〉
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request.. For all other status types, the value identifies the client that took the indicated action.

〈domain:acDate〉
- element that contains the date and time of a required or completed response.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


17) 〈domain:transfer op=”reject”〉 Request Elements

〈domain:name〉

〈domain:pw〉
- roid (option) *

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


18) 〈domain:transfer op=”reject” Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:trStatus〉
- element that contains the state of the most recent transfer request.

〈domain:reID〉
- element that contains the identifier of the client that requested the object transfer..

〈domain:reDate〉
- element that contains the date and time that the transfer was requested.

〈domain:acID〉
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request.. For all other status types, the value identifies the client that took the ndicated action.

〈domain:acDate〉
- element that contains the date and time of a
required or completed response.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


19) 〈domain:transfer op=”cancle”〉 Request Elements

〈domain:name〉

〈domain:pw〉
- roid (option) *

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


20) 〈domain:transfer op=”cancle”〉 Response Elements

〈result〉
code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:trStatus〉
- element that contains the state of the most recent transfer request.

〈domain:reID〉
- element that contains the identifier of the client that requested the object transfer..

〈domain:reDate〉
- element that contains the date and time that the transfer was requested.

〈domain:acID〉
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request.. For all other status types, the value identifies the client that took the ndicated action.

〈domain:acDate〉
- element that contains the date and time of a required or completed response.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


21) 〈domain:update〉
〈update〉 command provides a transform operation that allows a client to modify the attributes of a domain object.

〈domain:update〉 Request Elements

〈domain:name〉

〈domain:hostObj〉
Option
- element that contains the fully qualified names of the delegated host objects or host attributes (name servers) associated with the domain object.

〈domain:status〉
- s*
- lang (option)
Option (add, rem)
- elements that contain status values to be applied to or removed from the object.
zero or more

〈domain:pw〉
Option (chg)

〈secDNS:keyTag〉
Option (ds:Data)
- The Key Tag field lists the key tag of the DNSKEY RR referred to by the DS record, in network byte order.
one or more

〈secDNS:alg〉
Option (ds:Data)
- The Algorithm field lists the algorithm number of the DNSKEY RR referred to by the DS record.

〈secDNS:disgestType〉
Option(ds:Data)
- The Digest Type field identifies the algorithm used to construct the digest.

〈secDNS:digest〉
Option (ds:Data)
- The digest is calculated by concatenating the canonical form of the fully qualified owner name of the DNSKEY RR with the DNSKEY RDATA, and then applying the digest algorithm.

〈secDNS:maxSigLife〉
Option (ds:Data)

〈secDNS:flag〉
Option (keyData)
- Bit 7 of the Flags field is the Zone Key flag.

〈secDNS:protocol〉
Option (keyData)
- The Protocol Field MUST have value 3, and the DNSKEY RR MUST be treated as invalid during signature verification if it is found to be some value other than 3.

〈secDNS:alg〉
Option (keyData)
- The Algorithm field identifies the public keyʹs cryptographic algorithm and determines the format of the Public Key field.

〈secDNS:pubkey〉
Option (keyData)
- The Public Key Field holds the public key material.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


22) 〈domain:update〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.





23) 〈domain:update〉 extension 〈rgp:restore op=“request”〉
- The registry grace period extension modifies base update processing to support redemption of domain names for which a 〈delete〉 command has been processed, but the name has not yet been purged.

〈rgp:restore op = “request”〉 Request Elements
- 〈domain:add〉, 〈domain:rem〉, 〈domain:chg〉 - needs empty one element at least

domain:name〉

〈domain:add〉 or 〈domain:rem〉 or 〈domain:chg〉
- This requirement(element) is updated to disallow the possibility of modifying a domain object as part of redemption grace period recovery processing.

〈rgp:restore〉
- op = “request”

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


24) 〈rgp:restore op = “request”〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈rgp:rgpStatus〉
- s*

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


25) 〈rgp:restore op = “report”〉 Request Elements

〈domain:name〉

〈rgp:restore〉
- op = “report”

〈rgp:preData〉
- contains a copy of the registration data that existed for the domain name prior to the domain name being deleted.

〈rgp:postData〉
- element that contains a copy of the registration data that exists for the domain name at the time the restore report is submitted.

〈rgp:delTime〉
- element that contains the date and time when the domain name delete request was sent to the server.

〈rgp:resTime〉
- element that contains the date and time when the original 〈rgp:restore〉 command was sent to the server.

〈rgp:resReason〉
- element that contains a brief explanation of the reason for restoring the domain name.

〈rgp:statement〉
- lang(option)
- element that contains a text statement that the client has not restored the domain name in order to assume the rights to use or sell the domain name for itself or for any third party.

〈rgp:statement〉
- lang(option)
- The information in this report is true to best of this registrarʹs knowledge

〈rgp:other〉
- element that contains any information needed to support the statements provided by the client.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


26) 〈rgp:restore op = “report”〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


27) 〈domain:update〉 extension 〈sync:update〉
This extension modifies base update processing to allow specification of a desired expiration date within one calendar year of the current date.

〈sync:update〉 Request Elements
- 〈domain:add〉, 〈domain:rem〉, 〈domain:chg〉 - needs empty one element at least

〈domain:name〉

〈domain:add ⁄〉 or 〈domain:rem ⁄〉 or 〈domain:chg ⁄〉
- This requirement(element) is updated to disallow the possibility of modifying a domain object as part of ConsoliDate processing.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


28) 〈sync:update〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


29) 2.15. 〈host:check〉
〈check〉 command is used to determine if an object can be provisioned within a repository.

〈host:check〉 Request Elements

〈host:name〉
- 〈host:name〉 elements that contain the fully qualified names of the host objects to be queried.
one or more

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


30) 〈host:check〉 Response Elements

〈result〉
code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈host:name〉
- avail :
1 or true : can be provisioned
0 or false : can not be provisioned
- The fully qualified name of the queried host object.

〈host:reason〉
lang (Option)
Option
- This element that MAY be provided when an object cannot be provisioned.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


31) 〈host:info〉
〈info〉 command is used to retrieve information associated with a host object.

〈host:info〉 Request Elements

〈host:name〉

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


32) 〈host:info〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈host:name〉
- The fully qualified name of the queried host object.

〈host:roid〉
- the Repository Object IDentifier assigned to the host object when the object was created.

〈host:status〉
s *
Option (one or more)

〈host:addr〉
- ip (v4, v6)
- elements that contain the IP addresses associated with the host object.
zero or more

〈host:clID〉
- element that contains the identifier of the sponsoring client.

〈host:crID〉
- element that contains the identifier of the client that created the host object.

〈host:crDate〉
- element that contains the date and time of host object creation.

〈host:upID〉
- element that contains the identifier of the client that last updated the domain object.

〈host:upDate〉
- element that contains the date and time of the most recent host-object modification.

〈host:trDate〉
- element that contains the date and time of the most recent successful host-object transfer.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


33) 〈host:create〉
〈create〉 command provides a transform operation that allows a client to create a host object.

〈host:create〉 Request Elements

〈host:name〉

〈host:addr〉
- ip (v4, v6)
- elements that contain the IP addresses to be associated with the host.
zero or more

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


34) 〈host:create〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈host:name〉
- The fully qualified name of the queried host object.

〈host:crDate〉
- element that contains the date and time of host-object creation.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


35) 〈host:delete〉
〈delete〉 command provides a transform operation that allows a client to delete a host object.

〈host:delete〉 Request Elements

〈host:name〉

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


36) 〈host:delete〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


37) 〈host:update〉
〈update〉 command provides a transform operation that allows a client to modify the attributes of a host object.

〈host:update〉 Request Elements

〈host:name〉

〈host:addr〉
- ip (v4, v6)
Option (add, rem)
- elements that contain IP addresses to be associated with or removed from the host object.
one or more

〈host:status〉
- s*
- lang (option)
Option (add, rem)
- elements that contain status values to be applied to or removed from the object.
one or more

〈host:name〉
Option (chg)

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


38) 〈host:update〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


39) 〈poll op = “req”〉
〈poll〉 command is used to discover and retrieve service messages queued by a server for individual clients.

〈poll op = “req”〉 Request Elements

〈poll〉
- op (req, ack)

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


40) 〈poll op=”req”〉 Response Elements

Transfer Poll Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈msgQ〉
- count : the number of exist in the queue
- id : uniquely identify the message
- element that describes messages queued for client retrieval.

〈qDate〉
Option
- element that contains the date and time that the message was enqueued.

〈obj:name〉
Option (not Object-specific)

〈obj:trStatus〉
Option(not Object-specific)

〈obj:reID〉
Option(not Object-specific)

〈obj:reDate〉
Option(not Object-specific)

〈obj:acID〉
Option(not Object-specific)
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request.

〈obj:acDate〉
Option (not Object-specific)
- element that contains the date and time of a required or completed response.

〈obj:extDate〉
Option (not Object-specific)
- element that contains the end of the objectʹs validity period

〈clTRID〉〈
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


41) Restore Poll Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈msgQ〉
- count : the number of exist in the queue
- id : uniquely identify the message
- element that describes messages queued for client retrieval.

〈qDate〉
Option
- element that contains the date and time that the message was enqueued.

〈rgp-poll:name〉
- The domain name that is a candidate for restoration.

〈rgp:rgpStatus〉
s*
- The RGP status of the domain as a string

〈rgp:reqDate〉
- The date the server implementation is requesting the client’s restore report.

〈rgp:reportDuDate〉
- The date the client’s restore report must be received by the server implementation.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


42) 〈poll op = “ack”〉 Request Elements

〈poll〉
- op (req, ack)
- msgID

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


43) 〈poll op = “ack”〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈msgQ〉
- count : the number of exist in the queue
- id : uniquely identify the message
- element that describes messages queued for client retrieval.

〈qDate〉
Option
- element that contains the date and time that the message was enqueued.

〈obj:name〉
Option

〈obj:trStatus〉
Option

〈obj:reID〉
Option

〈obj:reDate〉
Option

〈domain:acID〉
Option
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request.

〈domain:acDate〉
Option
- element that contains the date and time of a required or completed response.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉〈
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


44) 〈hello〉
Use of this element is essential in a connection-less environment where a server cannot return a 〈greeting〉 in response to a client-initiated connection.


〈hello〉 Request Elements

An EPP 〈hello〉 MUST be an empty element with no child elements


45) 〈greeting〉 Response Elements
An EPP server responds to a successful connection and 〈hello〉 element by returning a 〈greeting〉 element to the client.

〈svID〉
- element that contains the name of the server.

〈svDate〉
- element that contains the serverʹs current date and time in Universal Coordinated Time (UTC).

〈version〉
- elements that identify the protocol versions supported by the server.
one or more

〈lang〉
one or more

〈objURI〉
- elements that contain namespace URIs representing the objects that the server is capable of managing.
one or more

〈extURI〉
Option
- elements that contain namespace URIs representing object extensions supported by the server.

〈acess〉
〈all⁄〉:acess is given to all
〈none⁄〉:No access is provided
〈null⁄〉:Data is not persistent
〈personal⁄〉
〈personalAndOther⁄〉
〈other⁄〉
Option
- element that describes the access provided by the server to the client on behalf of the originating data source.

〈purpose〉
〈admin⁄〉
〈contact⁄〉
〈prov⁄〉
〈other⁄〉
Option

〈recipient〉
〈other⁄〉
〈ours⁄〉
〈public⁄〉
〈same⁄〉
〈unrelated⁄〉
Option

〈retention〉
〈business⁄〉
〈indefinite⁄〉
〈legal⁄〉
〈none⁄〉
〈stated⁄〉
Option

〈expiry〉
〈absolute⁄〉
〈relative⁄〉
Option


46) 〈login〉
〈login〉 command is used to establish a session with an EPP server in response to a greeting issued by the server.
A server operator MAY limit the number of failed login attempts N, 1 〈= N 〈= infinity, after which a login failure results in the connection to the server (if a connection exists) being closed.

〈login〉 Request Elements

〈clID〉
- element that contains the client identifier assigned to the client by the server.

〈pw〉
- element that contains the serverʹs current date and time in Universal Coordinated Time (UTC).

〈newPW〉
Option

〈version〉
Option
- elements that identify the protocol versions supported by the server.
one or more

〈lang〉
Option
one or more

〈objURI〉
- elements that contain namespace URIs representing the objects that the server is capable of managing.
one or more

〈extURI〉
Option
- elements that contain namespace URIs representing object extensions supported by the server.


47) 〈login〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


48) 〈logout〉
〈logout〉 command is used to end a session with an EPP server.

〈logout〉 Request Elements
The 〈logout〉 command MUST be represented as an empty element with no child elements.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


49) 〈logout〉 Response Elements

〈result〉
code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈qDate〉
Option
- element that contains the date and time that the message was enqueued.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


Appendix A. Result Code

1) Successful command completion responses

1000 ʺCommand completed successfullyʺ
- This is the usual response code for a successfully completed command that is not addressed by any other 1xxx-series response code.

1001 ʺCommand completed successfully; action pendingʺ
- This response code MUST be returned when responding to a command that requires offline activity before the requested action can be completed. See Section 2 for a description of other processing requirements.

1300 ʺCommand completed successfully; no messagesʺ
- This response code MUST be returned when responding to a 〈poll〉 request command and the server message queue is empty.

1301 ʺCommand completed successfully; ack to dequeueʺ
- This response code MUST be returned when responding to a 〈poll〉 request command and a message has been retrieved from the server message queue.

1500 ʺCommand completed successfully; ending sessionʺ
- This response code MUST be returned when responding to a successful 〈logout〉 command.


2) Command Error responses

2000 ʺUnknown commandʺ
- This response code MUST be returned when a server receives a command element that is not defined by EPP.

2001 ʺCommand syntax errorʺ
- This response code MUST be returned when a server receives an improperly formed command element.

2002 ʺCommand use errorʺ
- This response code MUST be returned when a server receives a properly formed command element but the command cannot be executed due to a sequencing or context error. For example, a 〈logout〉 command cannot be executed without having first completed a 〈login〉 command.

2003 ʺRequired parameter missingʺ
- This response code MUST be returned when a server receives a command for which a required parameter value has not been provided.

2004 ʺParameter value range errorʺ
- This response code MUST be returned when a server receives a command parameter whose value is outside the range of values specified by the protocol. The error value SHOULD be returned via a 〈value〉 element in the EPP response.

2005 ʺParameter value syntax errorʺ
- This response code MUST be returned when a server receives a command containing a parameter whose value is improperly formed. The error value SHOULD be returned via a 〈value〉 element in the EPP response.

2100 ʺUnimplemented protocol versionʺ
- This response code MUST be returned when a server receives a command element specifying a protocol version that is not implemented by the server.

2101 ʺUnimplemented commandʺ
- This response code MUST be returned when a server receives a valid EPP command element that is not implemented by the server. For example, a 〈transfer〉 command can be unimplemented for certain object types.

2102 ʺUnimplemented optionʺ
This response code MUST be returned when a server receives a valid EPP command element that contains a protocol option that is not implemented by the server.

2103 ʺUnimplemented extensionʺ
- This response code MUST be returned when a server receives a valid EPP command element that contains a protocol command extension that is not implemented by the server.

2104 ʺBilling failureʺ
- This response code MUST be returned when a server attempts to execute a billable operation and the command cannot be completed due to a client-billing failure.

2105 ʺObject is not eligible for renewalʺ
- This response code MUST be returned when a client attempts to 〈renew〉 an object that is not eligible for renewal in accordance with server policy.

2106 ʺObject is not eligible for transferʺ
- This response code MUST be returned when a client attempts to 〈transfer〉 an object that is not eligible for transfer in accordance with server policy.

2200 ʺAuthentication errorʺ
- This response code MUST be returned when a server notes an error when validating client credentials.

2201 ʺAuthorization errorʺ
- This response code MUST be returned when a server notes a client-authorization error when executing a command. This error is used to note that a client lacks privileges to execute the requested command.

2202 ʺInvalid authorization informationʺ
- This response code MUST be returned when a server receives invalid command authorization information when attempting to confirm authorization to execute a command. This error is used to note that a client has the privileges required to execute the requested command, but the authorization information provided by the client does not match the authorization information archived by the server.

2300 ʺObject pending transferʺ
- This response code MUST be returned when a server receives a command to transfer of an object that is pending transfer due to an earlier transfer request.

2301 ʺObject not pending transferʺ
- This response code MUST be returned when a server receives a command to confirm, reject, or cancel the transfer of an object when no command has been made to transfer the object.

2302 ʺObject existsʺ
- This response code MUST be returned when a server receives a command to create an object that already exists in the repository.

2303 ʺObject does not existʺ
- This response code MUST be returned when a server receives a command to query or transform an object that does not exist in the repository.

2304 ʺObject status prohibits operationʺ
- This response code MUST be returned when a server receives a command to transform an object that cannot be completed due to server policy or business practices. For example, a server can disallow 〈transfer〉 commands under terms and conditions that are matters of local policy, or the server might have received a 〈delete〉 command for an object whose status prohibits deletion.

2305 ʺObject association prohibits operationʺ
- This response code MUST be returned when a server receives a command to transform an object that cannot be completed due to dependencies on other objects that are associated with the target object. For example, a server can disallow 〈delete〉 commands while an object has active associations with other objects.

2306 ʺParameter value policy errorʺ
- This response code MUST be returned when a server receives a command containing a parameter value that is syntactically valid but semantically invalid due to local policy. For example, the server can support a subset of a range of valid protocol parameter values. The error value SHOULD be returned via a 〈value〉 element in the EPP response.

2307 ʺUnimplemented object serviceʺ
- This response code MUST be returned when a server receives a command to operate on an object service that is not supported by the server.

2308 ʺCommand failedʺ
- This response code MUST be returned when a server is unable to execute a command due to an internal server error that is not related to the protocol. The failure can be transient. The server MUST keep any ongoing session active.

2500 ʺCommand failed; server closing connectionʺ
- This response code MUST be returned when a server receives a command that cannot be completed due to an internal server error that is not related to the protocol. The failure is not transient and will cause other commands to fail as well. The server MUST end the active session and close the existing connection.

2501 ʺAuthentication error; server closing connectionʺ
- This response code MUST be returned when a server notes an error when validating client credentials and a server-defined limit on the number of allowable failures has been exceeded. The server MUST close the existing connection.

2502 ʺSession limit exceeded; server closing connectionʺ
- This response code MUST be returned when a server receives a 〈login〉 command and the command cannot be completed because the client has exceeded a system-defined limit on the number of sessions that the client can establish. It might be possible to establish a session by ending existing unused sessions and closing inactive connections.



gTLDFull Legal NameE-mail suffixDetail
.doosanDoosan Corporationyesnic.comView
Dot DOOSAN(“.DOOSAN”) gTLD entrusts the operation of registry system to Korean ccTLD operation agency Korea Internet & Security Agency(“KISA”).

KISA, which will operate dot DOOSAN(“.DOOSAN”) Registry, has already been using EPP for processing business with Registrar. Through encrypted SSL Channel, it communicates EPP message with 31 registrars for dot KR (.KR). Thus, dot DOOSAN(ʺ.DOOSANʺ) gTLD will be processing domain registration and other tasks utilizing EPP under the same environment.

The system that receives EPP message from the most front-end of Registry Site is EPP Gateway Server. EPP Gateway Server parses EPP message, validates it, and sends over the message to Application Server for process if there is no problem detected.

Mechanism for EPP Process is as the following.

1. EPP Gateway Server
EPP Gateway Server sends the Registrarʹs Request Message to Application Server and sends back the Response Message to the Registrar. As well, it receives domain registration administration request from Registrar System, performing Front-End Processing.

Figure [25-1] EPP Processing Conceptual Diagram

2. Functions

Implementation of EPP Protocol
- Support of XML Base Application Layer Protocol
- Definition of component for each business area and realization of object mapping using class template technology
- Configuration Management using XML Schema Technology

Security Function for Internet Communication
- Registrar Authentication performance utilizing X.509 Certificate
- Secures confidentiality through Public Key Algorithm and conventional encryption system
- Ensures data integrity using MAC (message authentication code) with Hash algorithm
- Provides non-repudiation using Digital Signing Mechanism
- Ensures Communication Channel Security by application of SSL (Secure Socket Layer) Protocol
- Registry sets firewall settings so that only the authorized IP addresses of registrar may access SRS system

Session Management
- Common Information Loading of Registrar
- Transaction Information Management of Registrar
- Synchronize Request – Response Message between Registrar and Application Server
- Error Management of Communication Level
- Error Management of Application Transaction Level

Cooperation with other component service of registry system
- Implementation of IPC Communication
- Implementation of TCP Socket Connection function suing SSL

Personnel for EPP operation is included under article 24ʹs SRS operation management plan, EPP operation personnel are as the following:

〈EPP Operation Management〉
- 1 person
- EPP Operation Policy, Supervisor of SRS Management
- Over 7 years experiences

〈 EPP Operation〉
- EPP Program Development & Maintenance
- Over 20 years experiences, Over 10 years experiences

Details for Proprietary EPP Extensions are as the following:

Proprietary EPP Extensions are as the following;

[Example Code] 〈domain:check〉 command

〈?xml version=ʺ1.0ʺ encoding=ʺUTF-8ʺ standalone=ʺnoʺ?〉
〈epp xmlns=ʺurn:ietf:params:xml:ns:epp-1.0ʺ〉
〈command〉
〈check〉
〈domain:check xmlns:domain=ʺurn:ietf:params:xml:ns:domain-1.0ʺ〉
〈domain:name〉example.com〈⁄domain:name〉
〈domain:name〉example.net〈⁄domain:name〉
〈domain:name〉example.org〈⁄domain:name〉
〈⁄domain:check〉
〈⁄check〉
〈clTRID〉ABC-12345〈⁄clTRID〉
〈⁄command〉
〈⁄epp〉


3. List of all commands
1) Domain Commands
〈domain:check〉
It is used to determine if an object can be provisioned within a repository.

〈domain:info〉
It is used to retrieve information associated, with a domain object.

〈domain:create〉
It provides a transform operation that allows a client to create a domain object.

〈domain:renew〉
It provides a transform operation that allows a client to extend the validity period of a domain object.

〈domain:update〉
It provides a transform operation that allows a client to modify the attributes of a domain object.
extension 〈rgp:restore op=”request”〉
extension 〈rgp:restore op=”report”〉
extension 〈sync:update〉
- It allow registrants, through their current registrar, to set a specific expiration date for all of their domain name registration periods.

〈domain:delete〉
It provides a transform operation that allows a client to delete a domain object.

〈domain:transfer op=”query”〉
It provides a query operation that allows a client to determine the real-time status of pending and completed transfer requests.

〈domain:transfer op=”request”〉
It provides a transform operation that allows a client to manage requests to transfer the sponsorship of a domain object.
〈domain:transfer op=”approve”〉
〈domain:transfer op=”reject”〉
〈domain:transfer op=”cancle”〉

2) Host Commands
〈host:check〉
It is used to determine if an object can be provisioned within a repository.

〈host:info〉
It is used to retrieve information associated with a host object.

〈host:create〉
It provides a transform operation that allows a client to create a host object.

〈host:delete〉
It provides a transform operation that allows a client to delete a host object.

〈host:update〉
It provides a transform operation that allows a client to modify the attributes of a host object.

3) Poll Commands
〈poll:op=”req〉
〈poll:op=”ack”〉
The EPP 〈poll〉 command is used to discover and retrieve service messages queued by a server for individual clients.

4) Session Commands
〈hello〉
Use of this element is essential in a connection-less environment where a server cannot return a 〈greeting〉 in response to a client-initiated connection.

〈login〉
It is used to establish a session with an EPP server in response to a greeting issued by the server.

〈logout〉
It is used to end a session with an EPP server.


4. Specifications of commands

1) 〈domain:check〉 - 〈check〉 command is used to determine if an object can be provisioned within a repository.

〈domain:check〉 Request Elements

Domain Name
〈domain:name〉
- elements that contain the fully qualified names of the domain objects to be queried.
one or more

client Transaction ID
〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


2) 〈domain:check〉 Response Elements
Domain:Check Response

Result code
〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

Result message
〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

Domain Name
〈domain:name〉
- avail :
1 or true : can be rovisioned
0 or false : can not be provisioned
- The fully qualified name of the queried domain object.

Reason
〈domain:reason〉
- lang (Option)
Option
- This element that MAY be provided when an object cannot be provisioned.

Client Transaction ID
〈clTRID〉

Server Transaction ID
〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

3) 〈domain:info〉
〈info〉 command is used to retrieve information associated with a domain object.

〈domain:info〉 Request Elements

Domain Name
〈domain:name〉
hosts (option)
all : subordinate and delegated.
del : delegated.
sub : subordinate

Password
〈domain:pw〉
roid (option)*
option
- An OPTIONAL ʺroidʺ attribute MUST be used to identify the registrant or contact object if and only if the given authInfo is associated with a registrant or contact object, and not the domain object itself.

client Transaction ID
〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


4) 〈domain:info〉 Response Elements
〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:roid〉
- the Repository Object IDentifier assigned to the domain object when the object was created.

〈domain:status〉
s*
Option
- elements that contain the current status descriptors associated with the domain.
zero or more

〈domain:hostObj〉
Option
- element that contains the fully qualified names of the delegated host objects or host attributes (name servers) associated with the domain object.
one or more

〈domain:host〉
Option
- elements that contain the fully qualified names of the subordinate host objects that exist under this superordinate domain object.
zero or more

〈domain:clID〉
- element that contains the identifier of the sponsoring client.

〈domain:crID〉
Option
- element that contains the identifier of the client that created the domain object.

〈domain:crDate〉
Option
- element that contains the date and time of domain object creation.

〈domain:exDate〉
Option
- element that contains the date and time identifying the end of the domain objectʹs registration period.

〈domain:upID〉
Option
- element that contains the identifier of the client that last updated the domain object.

〈domain:update〉
Option
- element that contains the date and time of the most recent domain-object modification.

〈domain:trDate〉
Option
- element that contains the date and time of the most recent successful domain-object transfer.

〈domain:pw〉
Option
- element that contains authorization information associated with the domain object.

〈secDNS:keyTag〉
Option
(dsData)
- The Key Tag field lists the key tag of the DNSKEY RR referred to by the DS record, in network byte order.

〈secDNS:alg〉
Option(dsData)
- The Algorithm field lists the algorithm number of the DNSKEY RR referred to by the DS record.

〈secDNS:disgestType〉
Option(dsData)
- The Digest Type field identifies the algorithm used to construct the digest.

〈secDNS:digest〉
Option(dsData)
- The digest is calculated by concatenating the canonical form of the fully qualified owner name of the DNSKEY RR with the DNSKEY RDATA, and then applying the digest algorithm.

〈secDNS:maxSigLife〉
Option (dsData)

〈secDNS:flags〉
Option
(keyData)
- Bit 7 of the Flags field is the Zone Key flag.

〈secDNS:protocol〉
Option
(keyData)
- The Protocol Field MUST have value 3, and the DNSKEY RR MUST be treated as invalid during signature verification if it is found to be some value other than 3.

〈secDNS:alg〉
Option
(keyData)
- The Algorithm field identifies the public keyʹs cryptographic algorithm and determines the format of the Public Key field.

〈secDNS:pubkey〉
Option
(keyData)
- The Public Key Field holds the public key material.

〈rgp:rgpStatus〉
s*
- element that contains a single attribute ʺsʺ whose value describes the current grace period status of the domain.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

5) 〈domain:transfer op=”query”〉
〈transfer〉 command provides a query operation that allows a client to determine the real-time status of pending and completed transfer requests.

〈domain:transfer op=”query”〉 Request Elements

〈domain:name〉

〈domain:pw〉
roid (option)*
option
- An OPTIONAL ʺroidʺ attribute MUST be used to identify the registrant or contact object if and only if the given authInfo is associated with a registrant or contact object, and not the domain object itself.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


6) 〈transfer op=”query”〉 Response

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:trStatus〉
- element that contains the state of the most recent transfer request.

〈domain:reID〉
- element that contains the identifier of the client that requested the object transfer..

〈domain:reDate〉
- element that contains the date and time that the transfer was requested.

〈domain:acID〉
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request..

〈domain:acDate〉
- element that contains the date and time of a
required or completed response.
For a PENDING request, the value identifies the date and time by which a response is required before an automated response action will be taken by the server. For all other status types, the value identifies the date and time when the request was completed.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


7) 〈domain:create〉
〈create〉 command provides a transform operation that allows a client to create a domain object.

〈domain:create〉 Request Elements

〈domain:name〉

〈domain:period〉
- unit
y: Year m: Month
Option
- element that contains the initial registration period of the domain object.

〈domain:hostObj〉
Option
- element that contains the fully qualified names of the delegated host objects or host attributes (name servers) associated with the domain object.

〈domain:pw〉

〈secDNS:keyTag〉
Option (dsData)
- The Key Tag field lists the key tag of the DNSKEY RR referred to by the DS record, in network byte order.

〈secDNS:alg〉
Option(dsData)
- The Algorithm field lists the algorithm number of the DNSKEY RR referred to by the DS record.

〈secDNS:disgestType〉
Option(dsData)
- The Digest Type field identifies the algorithm used to construct the digest.

〈secDNS:digest〉
Option(dsData)
- The digest is calculated by concatenating the canonical form of the fully qualified owner name of the DNSKEY RR with the DNSKEY RDATA, and then applying the digest algorithm.

〈secDNS:maxSigLife〉
Option(dsData)

〈secDNS:flags〉
Option(keyData)
- Bit 7 of the Flags field is the Zone Key flag.

〈secDNS:protocol〉
Option(keyData)
- The Protocol Field MUST have value 3, and the DNSKEY RR MUST be treated as invalid during signature verification if it is found to be some value other than 3.

〈secDNS:alg〉
Option(keyData)
- The Algorithm field identifies the public keyʹs cryptographic algorithm and determines the format of the Public Key field.

〈secDNS:pubkey〉
Option(keyData)
- The Public Key Field holds the public key material.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


8) 〈domain:create〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:crDate〉
- element that contains the date and time of domain object creation.

〈domain:exDate〉
Option
- element that contains the date and time identifying the end of the domain objectʹs registration period.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


9) 〈domain:delete〉 Request Elements

〈domain:name〉

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


10) 〈domain:delete〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


11) 〈domain:renew〉
〈renew〉 command provides a transform operation that allows a client to extend the validity period of a domain object.

〈domain:renew〉 Request Elements

〈domain:name〉

〈domain:curExpDate〉
- element that contains the date on which the current validity period ends

〈domain:period〉
- unit
y: Year m: Month
Option
- element that contains the initial registration period of the domain object.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


12) 〈domain:renew〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:exDate〉
Option
- element that contains the date and time identifying the end of the domain objectʹs registration period.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


13) 〈domain:transfer op=”request”〉
〈transfer〉 command provides a transform operation that allows a client to manage requests to transfer the sponsorship of a domain object.

〈domain:transfer op=”request”〉 Request Elements

〈domain:name〉

〈domain:period〉
- unit
y: Year m: Month
Option
- element that contains the number of units to be added to the registration period of the domain object at completion of the transfer process.

〈domain:pw〉
- roid (option) *
- An OPTIONAL ʺroidʺ attribute MUST be used to identify the registrant or contact object if and only if the given authInfo is associated with a registrant or contact object, and not the domain object itself.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


14) 〈domain:transfer op=”request”〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:trStatus〉
- element that contains the state of the most recent transfer request.

〈domain:reID〉
- element that contains the identifier of the client that requested the object transfer..

〈domain:reDate〉
- element that contains the date and time that the transfer was requested.

〈domain:acID〉
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request..

〈domain:acDate〉
- For a PENDING request, the value identifies the date and time by which a response is required before an automated response action will be taken by the server. For all other status types, the value identifies the date and time when the request was completed.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


15) 〈domain:transfer op=”approve”〉 Request Elements

〈domain:name〉

〈domain:pw〉
- roid (option) *

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


16) 〈domain:transfer op=”approve” Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:trStatus〉
- element that contains the state of the most recent transfer request.

〈domain:reID〉
- element that contains the identifier of the client
that requested the object transfer..

〈domain:reDate〉
- element that contains the date and time that the transfer was requested.

〈domain:acID〉
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request.. For all other status types, the value identifies the client that took the indicated action.

〈domain:acDate〉
- element that contains the date and time of a required or completed response.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


17) 〈domain:transfer op=”reject”〉 Request Elements

〈domain:name〉

〈domain:pw〉
- roid (option) *

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


18) 〈domain:transfer op=”reject” Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:trStatus〉
- element that contains the state of the most recent transfer request.

〈domain:reID〉
- element that contains the identifier of the client that requested the object transfer..

〈domain:reDate〉
- element that contains the date and time that the transfer was requested.

〈domain:acID〉
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request.. For all other status types, the value identifies the client that took the ndicated action.

〈domain:acDate〉
- element that contains the date and time of a
required or completed response.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


19) 〈domain:transfer op=”cancle”〉 Request Elements

〈domain:name〉

〈domain:pw〉
- roid (option) *

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


20) 〈domain:transfer op=”cancle”〉 Response Elements

〈result〉
code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈domain:name〉
- The fully qualified name of the queried domain object.

〈domain:trStatus〉
- element that contains the state of the most recent transfer request.

〈domain:reID〉
- element that contains the identifier of the client that requested the object transfer..

〈domain:reDate〉
- element that contains the date and time that the transfer was requested.

〈domain:acID〉
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request.. For all other status types, the value identifies the client that took the ndicated action.

〈domain:acDate〉
- element that contains the date and time of a required or completed response.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


21) 〈domain:update〉
〈update〉 command provides a transform operation that allows a client to modify the attributes of a domain object.

〈domain:update〉 Request Elements

〈domain:name〉

〈domain:hostObj〉
Option
- element that contains the fully qualified names of the delegated host objects or host attributes (name servers) associated with the domain object.

〈domain:status〉
- s*
- lang (option)
Option (add, rem)
- elements that contain status values to be applied to or removed from the object.
zero or more

〈domain:pw〉
Option (chg)

〈secDNS:keyTag〉
Option (ds:Data)
- The Key Tag field lists the key tag of the DNSKEY RR referred to by the DS record, in network byte order.
one or more

〈secDNS:alg〉
Option (ds:Data)
- The Algorithm field lists the algorithm number of the DNSKEY RR referred to by the DS record.

〈secDNS:disgestType〉
Option(ds:Data)
- The Digest Type field identifies the algorithm used to construct the digest.

〈secDNS:digest〉
Option (ds:Data)
- The digest is calculated by concatenating the canonical form of the fully qualified owner name of the DNSKEY RR with the DNSKEY RDATA, and then applying the digest algorithm.

〈secDNS:maxSigLife〉
Option (ds:Data)

〈secDNS:flag〉
Option (keyData)
- Bit 7 of the Flags field is the Zone Key flag.

〈secDNS:protocol〉
Option (keyData)
- The Protocol Field MUST have value 3, and the DNSKEY RR MUST be treated as invalid during signature verification if it is found to be some value other than 3.

〈secDNS:alg〉
Option (keyData)
- The Algorithm field identifies the public keyʹs cryptographic algorithm and determines the format of the Public Key field.

〈secDNS:pubkey〉
Option (keyData)
- The Public Key Field holds the public key material.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


22) 〈domain:update〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.





23) 〈domain:update〉 extension 〈rgp:restore op=“request”〉
- The registry grace period extension modifies base update processing to support redemption of domain names for which a 〈delete〉 command has been processed, but the name has not yet been purged.

〈rgp:restore op = “request”〉 Request Elements
- 〈domain:add〉, 〈domain:rem〉, 〈domain:chg〉 - needs empty one element at least

domain:name〉

〈domain:add〉 or 〈domain:rem〉 or 〈domain:chg〉
- This requirement(element) is updated to disallow the possibility of modifying a domain object as part of redemption grace period recovery processing.

〈rgp:restore〉
- op = “request”

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


24) 〈rgp:restore op = “request”〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈rgp:rgpStatus〉
- s*

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


25) 〈rgp:restore op = “report”〉 Request Elements

〈domain:name〉

〈rgp:restore〉
- op = “report”

〈rgp:preData〉
- contains a copy of the registration data that existed for the domain name prior to the domain name being deleted.

〈rgp:postData〉
- element that contains a copy of the registration data that exists for the domain name at the time the restore report is submitted.

〈rgp:delTime〉
- element that contains the date and time when the domain name delete request was sent to the server.

〈rgp:resTime〉
- element that contains the date and time when the original 〈rgp:restore〉 command was sent to the server.

〈rgp:resReason〉
- element that contains a brief explanation of the reason for restoring the domain name.

〈rgp:statement〉
- lang(option)
- element that contains a text statement that the client has not restored the domain name in order to assume the rights to use or sell the domain name for itself or for any third party.

〈rgp:statement〉
- lang(option)
- The information in this report is true to best of this registrarʹs knowledge

〈rgp:other〉
- element that contains any information needed to support the statements provided by the client.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


26) 〈rgp:restore op = “report”〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


27) 〈domain:update〉 extension 〈sync:update〉
This extension modifies base update processing to allow specification of a desired expiration date within one calendar year of the current date.

〈sync:update〉 Request Elements
- 〈domain:add〉, 〈domain:rem〉, 〈domain:chg〉 - needs empty one element at least

〈domain:name〉

〈domain:add ⁄〉 or 〈domain:rem ⁄〉 or 〈domain:chg ⁄〉
- This requirement(element) is updated to disallow the possibility of modifying a domain object as part of ConsoliDate processing.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


28) 〈sync:update〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


29) 2.15. 〈host:check〉
〈check〉 command is used to determine if an object can be provisioned within a repository.

〈host:check〉 Request Elements

〈host:name〉
- 〈host:name〉 elements that contain the fully qualified names of the host objects to be queried.
one or more

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


30) 〈host:check〉 Response Elements

〈result〉
code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈host:name〉
- avail :
1 or true : can be provisioned
0 or false : can not be provisioned
- The fully qualified name of the queried host object.

〈host:reason〉
lang (Option)
Option
- This element that MAY be provided when an object cannot be provisioned.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


31) 〈host:info〉
〈info〉 command is used to retrieve information associated with a host object.

〈host:info〉 Request Elements

〈host:name〉

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


32) 〈host:info〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈host:name〉
- The fully qualified name of the queried host object.

〈host:roid〉
- the Repository Object IDentifier assigned to the host object when the object was created.

〈host:status〉
s *
Option (one or more)

〈host:addr〉
- ip (v4, v6)
- elements that contain the IP addresses associated with the host object.
zero or more

〈host:clID〉
- element that contains the identifier of the sponsoring client.

〈host:crID〉
- element that contains the identifier of the client that created the host object.

〈host:crDate〉
- element that contains the date and time of host object creation.

〈host:upID〉
- element that contains the identifier of the client that last updated the domain object.

〈host:upDate〉
- element that contains the date and time of the most recent host-object modification.

〈host:trDate〉
- element that contains the date and time of the most recent successful host-object transfer.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


33) 〈host:create〉
〈create〉 command provides a transform operation that allows a client to create a host object.

〈host:create〉 Request Elements

〈host:name〉

〈host:addr〉
- ip (v4, v6)
- elements that contain the IP addresses to be associated with the host.
zero or more

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


34) 〈host:create〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈host:name〉
- The fully qualified name of the queried host object.

〈host:crDate〉
- element that contains the date and time of host-object creation.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


35) 〈host:delete〉
〈delete〉 command provides a transform operation that allows a client to delete a host object.

〈host:delete〉 Request Elements

〈host:name〉

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


36) 〈host:delete〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


37) 〈host:update〉
〈update〉 command provides a transform operation that allows a client to modify the attributes of a host object.

〈host:update〉 Request Elements

〈host:name〉

〈host:addr〉
- ip (v4, v6)
Option (add, rem)
- elements that contain IP addresses to be associated with or removed from the host object.
one or more

〈host:status〉
- s*
- lang (option)
Option (add, rem)
- elements that contain status values to be applied to or removed from the object.
one or more

〈host:name〉
Option (chg)

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


38) 〈host:update〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


39) 〈poll op = “req”〉
〈poll〉 command is used to discover and retrieve service messages queued by a server for individual clients.

〈poll op = “req”〉 Request Elements

〈poll〉
- op (req, ack)

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


40) 〈poll op=”req”〉 Response Elements

Transfer Poll Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈msgQ〉
- count : the number of exist in the queue
- id : uniquely identify the message
- element that describes messages queued for client retrieval.

〈qDate〉
Option
- element that contains the date and time that the message was enqueued.

〈obj:name〉
Option (not Object-specific)

〈obj:trStatus〉
Option(not Object-specific)

〈obj:reID〉
Option(not Object-specific)

〈obj:reDate〉
Option(not Object-specific)

〈obj:acID〉
Option(not Object-specific)
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request.

〈obj:acDate〉
Option (not Object-specific)
- element that contains the date and time of a required or completed response.

〈obj:extDate〉
Option (not Object-specific)
- element that contains the end of the objectʹs validity period

〈clTRID〉〈
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


41) Restore Poll Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈msgQ〉
- count : the number of exist in the queue
- id : uniquely identify the message
- element that describes messages queued for client retrieval.

〈qDate〉
Option
- element that contains the date and time that the message was enqueued.

〈rgp-poll:name〉
- The domain name that is a candidate for restoration.

〈rgp:rgpStatus〉
s*
- The RGP status of the domain as a string

〈rgp:reqDate〉
- The date the server implementation is requesting the client’s restore report.

〈rgp:reportDuDate〉
- The date the client’s restore report must be received by the server implementation.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


42) 〈poll op = “ack”〉 Request Elements

〈poll〉
- op (req, ack)
- msgID

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


43) 〈poll op = “ack”〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈msgQ〉
- count : the number of exist in the queue
- id : uniquely identify the message
- element that describes messages queued for client retrieval.

〈qDate〉
Option
- element that contains the date and time that the message was enqueued.

〈obj:name〉
Option

〈obj:trStatus〉
Option

〈obj:reID〉
Option

〈obj:reDate〉
Option

〈domain:acID〉
Option
- element that contains the identifier of the client that SHOULD act upon a PENDING transfer request.

〈domain:acDate〉
Option
- element that contains the date and time of a required or completed response.

〈domain:extDate〉
Option
- element that contains the end of the domain objectʹs validity period

〈clTRID〉〈
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


44) 〈hello〉
Use of this element is essential in a connection-less environment where a server cannot return a 〈greeting〉 in response to a client-initiated connection.


〈hello〉 Request Elements

An EPP 〈hello〉 MUST be an empty element with no child elements


45) 〈greeting〉 Response Elements
An EPP server responds to a successful connection and 〈hello〉 element by returning a 〈greeting〉 element to the client.

〈svID〉
- element that contains the name of the server.

〈svDate〉
- element that contains the serverʹs current date and time in Universal Coordinated Time (UTC).

〈version〉
- elements that identify the protocol versions supported by the server.
one or more

〈lang〉
one or more

〈objURI〉
- elements that contain namespace URIs representing the objects that the server is capable of managing.
one or more

〈extURI〉
Option
- elements that contain namespace URIs representing object extensions supported by the server.

〈acess〉
〈all⁄〉:acess is given to all
〈none⁄〉:No access is provided
〈null⁄〉:Data is not persistent
〈personal⁄〉
〈personalAndOther⁄〉
〈other⁄〉
Option
- element that describes the access provided by the server to the client on behalf of the originating data source.

〈purpose〉
〈admin⁄〉
〈contact⁄〉
〈prov⁄〉
〈other⁄〉
Option

〈recipient〉
〈other⁄〉
〈ours⁄〉
〈public⁄〉
〈same⁄〉
〈unrelated⁄〉
Option

〈retention〉
〈business⁄〉
〈indefinite⁄〉
〈legal⁄〉
〈none⁄〉
〈stated⁄〉
Option

〈expiry〉
〈absolute⁄〉
〈relative⁄〉
Option


46) 〈login〉
〈login〉 command is used to establish a session with an EPP server in response to a greeting issued by the server.
A server operator MAY limit the number of failed login attempts N, 1 〈= N 〈= infinity, after which a login failure results in the connection to the server (if a connection exists) being closed.

〈login〉 Request Elements

〈clID〉
- element that contains the client identifier assigned to the client by the server.

〈pw〉
- element that contains the serverʹs current date and time in Universal Coordinated Time (UTC).

〈newPW〉
Option

〈version〉
Option
- elements that identify the protocol versions supported by the server.
one or more

〈lang〉
Option
one or more

〈objURI〉
- elements that contain namespace URIs representing the objects that the server is capable of managing.
one or more

〈extURI〉
Option
- elements that contain namespace URIs representing object extensions supported by the server.


47) 〈login〉 Response Elements

〈result〉
- code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


48) 〈logout〉
〈logout〉 command is used to end a session with an EPP server.

〈logout〉 Request Elements
The 〈logout〉 command MUST be represented as an empty element with no child elements.

〈clTRID〉
- element that MAY be used to uniquely identify the command to the client.


49) 〈logout〉 Response Elements

〈result〉
code
- value is a four-digit, decimal number that describes the success or failure of the command.

〈msg〉
- lang(option)
- element containing a human-readable description of the response code.

〈qDate〉
Option
- element that contains the date and time that the message was enqueued.

〈clTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.

〈svTRID〉
- The transaction identifier is formed using the 〈clTRID〉 associated with the command if supplied by the client and a 〈svTRID〉 (server transaction identifier) that is assigned by and unique to the server.


Appendix A. Result Code

1) Successful command completion responses

1000 ʺCommand completed successfullyʺ
- This is the usual response code for a successfully completed command that is not addressed by any other 1xxx-series response code.

1001 ʺCommand completed successfully; action pendingʺ
- This response code MUST be returned when responding to a command that requires offline activity before the requested action can be completed. See Section 2 for a description of other processing requirements.

1300 ʺCommand completed successfully; no messagesʺ
- This response code MUST be returned when responding to a 〈poll〉 request command and the server message queue is empty.

1301 ʺCommand completed successfully; ack to dequeueʺ
- This response code MUST be returned when responding to a 〈poll〉 request command and a message has been retrieved from the server message queue.

1500 ʺCommand completed successfully; ending sessionʺ
- This response code MUST be returned when responding to a successful 〈logout〉 command.


2) Command Error responses

2000 ʺUnknown commandʺ
- This response code MUST be returned when a server receives a command element that is not defined by EPP.

2001 ʺCommand syntax errorʺ
- This response code MUST be returned when a server receives an improperly formed command element.

2002 ʺCommand use errorʺ
- This response code MUST be returned when a server receives a properly formed command element but the command cannot be executed due to a sequencing or context error. For example, a 〈logout〉 command cannot be executed without having first completed a 〈login〉 command.

2003 ʺRequired parameter missingʺ
- This response code MUST be returned when a server receives a command for which a required parameter value has not been provided.

2004 ʺParameter value range errorʺ
- This response code MUST be returned when a server receives a command parameter whose value is outside the range of values specified by the protocol. The error value SHOULD be returned via a 〈value〉 element in the EPP response.

2005 ʺParameter value syntax errorʺ
- This response code MUST be returned when a server receives a command containing a parameter whose value is improperly formed. The error value SHOULD be returned via a 〈value〉 element in the EPP response.

2100 ʺUnimplemented protocol versionʺ
- This response code MUST be returned when a server receives a command element specifying a protocol version that is not implemented by the server.

2101 ʺUnimplemented commandʺ
- This response code MUST be returned when a server receives a valid EPP command element that is not implemented by the server. For example, a 〈transfer〉 command can be unimplemented for certain object types.

2102 ʺUnimplemented optionʺ
This response code MUST be returned when a server receives a valid EPP command element that contains a protocol option that is not implemented by the server.

2103 ʺUnimplemented extensionʺ
- This response code MUST be returned when a server receives a valid EPP command element that contains a protocol command extension that is not implemented by the server.

2104 ʺBilling failureʺ
- This response code MUST be returned when a server attempts to execute a billable operation and the command cannot be completed due to a client-billing failure.

2105 ʺObject is not eligible for renewalʺ
- This response code MUST be returned when a client attempts to 〈renew〉 an object that is not eligible for renewal in accordance with server policy.

2106 ʺObject is not eligible for transferʺ
- This response code MUST be returned when a client attempts to 〈transfer〉 an object that is not eligible for transfer in accordance with server policy.

2200 ʺAuthentication errorʺ
- This response code MUST be returned when a server notes an error when validating client credentials.

2201 ʺAuthorization errorʺ
- This response code MUST be returned when a server notes a client-authorization error when executing a command. This error is used to note that a client lacks privileges to execute the requested command.

2202 ʺInvalid authorization informationʺ
- This response code MUST be returned when a server receives invalid command authorization information when attempting to confirm authorization to execute a command. This error is used to note that a client has the privileges required to execute the requested command, but the authorization information provided by the client does not match the authorization information archived by the server.

2300 ʺObject pending transferʺ
- This response code MUST be returned when a server receives a command to transfer of an object that is pending transfer due to an earlier transfer request.

2301 ʺObject not pending transferʺ
- This response code MUST be returned when a server receives a command to confirm, reject, or cancel the transfer of an object when no command has been made to transfer the object.

2302 ʺObject existsʺ
- This response code MUST be returned when a server receives a command to create an object that already exists in the repository.

2303 ʺObject does not existʺ
- This response code MUST be returned when a server receives a command to query or transform an object that does not exist in the repository.

2304 ʺObject status prohibits operationʺ
- This response code MUST be returned when a server receives a command to transform an object that cannot be completed due to server policy or business practices. For example, a server can disallow 〈transfer〉 commands under terms and conditions that are matters of local policy, or the server might have received a 〈delete〉 command for an object whose status prohibits deletion.

2305 ʺObject association prohibits operationʺ
- This response code MUST be returned when a server receives a command to transform an object that cannot be completed due to dependencies on other objects that are associated with the target object. For example, a server can disallow 〈delete〉 commands while an object has active associations with other objects.

2306 ʺParameter value policy errorʺ
- This response code MUST be returned when a server receives a command containing a parameter value that is syntactically valid but semantically invalid due to local policy. For example, the server can support a subset of a range of valid protocol parameter values. The error value SHOULD be returned via a 〈value〉 element in the EPP response.

2307 ʺUnimplemented object serviceʺ
- This response code MUST be returned when a server receives a command to operate on an object service that is not supported by the server.

2308 ʺCommand failedʺ
- This response code MUST be returned when a server is unable to execute a command due to an internal server error that is not related to the protocol. The failure can be transient. The server MUST keep any ongoing session active.

2500 ʺCommand failed; server closing connectionʺ
- This response code MUST be returned when a server receives a command that cannot be completed due to an internal server error that is not related to the protocol. The failure is not transient and will cause other commands to fail as well. The server MUST end the active session and close the existing connection.

2501 ʺAuthentication error; server closing connectionʺ
- This response code MUST be returned when a server notes an error when validating client credentials and a server-defined limit on the number of allowable failures has been exceeded. The server MUST close the existing connection.

2502 ʺSession limit exceeded; server closing connectionʺ
- This response code MUST be returned when a server receives a 〈login〉 command and the command cannot be completed because the client has exceeded a system-defined limit on the number of sessions that the client can establish. It might be possible to establish a session by ending existing unused sessions and closing inactive connections.