Metaregistrar EPP documentation

Polling for messages

Some operations on domain names are not immediately finished. The outcome of the operation is unsure. For example domain transfers fall into this category.

The registrar must implement the poll command to regularly request updates on the processes that run in the background. The poll messages received vary in size and purpose.

Click here for additional example messages that can be received.

Poll command

<?xml version="1.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> <command> <poll op="req"></poll> <clTRID>57d006e26bcc9</clTRID> </command> </epp>

Poll response: No new messages

The response is also quite simple; there are no messages waiting

<?xml version="1.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> <response> <result code="1300"> <msg>Command completed successfully; no messages</msg> </result> <trID> <svTRID>MTR_9c1e4a69ece1a68e7c752c007614b453c96a786c</svTRID> <clTRID>57d0238074b04</clTRID> </trID> </response> </epp>

Poll response: messages waiting

When there are messages waiting, the server will immediately return the first message that is waiting. You can begin processing.

The variable <msgQ count="xxx"> tells how many messages are still unprocessed and waiting. If this is the last message, the count will be 1

The variable id="xxxxxx" contains the id of this message. You will need this to acknowledge processing of the message. If you do not acknowledge, the message will not disappear from the queue and you will receive the same message over and over on the poll:req command.

<?xml version="1.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> <response> <result code="1301"> <msg>Command completed successfully; ack to dequeue</msg> </result> <resData> <domain:creData> <domain:name><![CDATA[docu-test-case-3.nl]]></domain:name> <domain:crDate><![CDATA[2016-09-07T11:10:07.000000+0000]]></domain:crDate> <domain:exDate><![CDATA[2017-09-07T00:00:00.000000+0000]]></domain:exDate> </domain:creData> </resData> <trID> <clTRID>57b5bf06607bc</clTRID> <svTRID>c329e770baabf2d61b200b3a60a9895d</svTRID> </trID> <msgQ count="7" id="75"> <qDate>2016-09-07T11:11:14.000000+0200</qDate> <msg lang="en"><![CDATA[Domain create successful. <domain>docu-test-case-3.nl</domain>]]></msg> </msgQ> </response> </epp>

Acknowledging a message that you have processed

If you have succesfully processed the incoming message, you need to acknowledge this. When acknowledged, the message is removed from the queue, and you will not see it again.

<?xml version="1.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> <command> <poll op="ack" msgID="75"></poll> <clTRID>57d006e27744e</clTRID> </command> </epp> And the system will tell you that the ack has been received, and with it return information on the next message that is waiting for you. <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> <response> <result code="1000"> <msg>Command completed successfully</msg> </result> <msgQ count="6" id="75"></msgQ> <trID> <svTRID>MTR_10df86784d5e136cf93d527e66395d032c01f7ac</svTRID> <clTRID>57d006e27744e</clTRID> </trID> </response> </epp>

Fail messages

One example of a fail message can be found here: <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> <response> <result code="1301"> <msg>Command completed successfully; ack to dequeue</msg> </result> <resData> <domain:creData> <domain:name><![CDATA[docu-dnssec-case3.nl]]></domain:name> <domain:crDate><![CDATA[2016-09-07T12:01:19.000000+0000]]></domain:crDate> <domain:exDate><![CDATA[2017-09-07T00:00:00.000000+0000]]></domain:exDate> </domain:creData> </resData> <trID> <svTRID>MTR_6c35fe050954d86fbb039bfb87d34ade097d8059</svTRID> <clTRID>57d006e27744e</clTRID> </trID> <msgQ count="3" id="79"> <qDate>2016-09-07T12:08:06.000000+0200</qDate> <msg lang="en"><![CDATA[Domain create succesful. <domain>docu-dnssec-case3.nl;But update of dnssec failed</domain>]]></msg> </msgQ> </response> </epp> The fail or success message do not contain a status code that can be responded to, it is only plain text that can be processed.

Renew message

Another possible poll message is that a domain name has been renewed. This can because a domain name has actively been renewed with a domain:renew command, or with the auto-renew feature of Metaregistrar.

You can use this message to update your records with the expiration date of the domain name (after infoing the domain name)

<?xml version="1.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> <response> <result code="1301"> <msg>Command completed successfully; ack to dequeue</msg> </result> <resData> <domain:infData> <domain:name><![CDATA[docu-domain-test.com]]></domain:name> <domain:exDate><![CDATA[2018-09-07T13:13:55.000000+0000]]></domain:exDate> </domain:infData> </resData> <trID> <svTRID>fc7fc6b0f28cb4933094427d1014f4f0</svTRID> </trID> <msgQ count="5" id="83"> <qDate>2016-09-07T13:14:15.000000+0200</qDate> <msg lang="en"><![CDATA[Domain docu-domain-test.com renewed.]]></msg> </msgQ> </response> </epp>

Transfer message

The following message tells you that an incoming transfer has processed succesfully <?xml version="1.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:host="urn:ietf:params:xml:ns:host-1.0" xmlns:ext="http://www.metaregistrar.com/epp/ext-1.0" xmlns:command-ext="http://www.metaregistrar.com/epp/command-ext-1.0" xmlns:command-ext-domain="http://www.metaregistrar.com/epp/command-ext-domain-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1" xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0"> <response> <result code="1301"> <msg>Command completed successfully; ack to dequeue</msg> </result> <resData> <domain:trnData> <domain:name><![CDATA[docu-test-case-transfer.nl]]></domain:name> <domain:trStatus><![CDATA[serverApproved]]></domain:trStatus> <domain:reDate><![CDATA[2016-09-09T14:08:20.756130+0000]]></domain:reDate> </domain:trnData> </resData> <msgQ count="1" id="90"> <qDate>2016-09-09T14:09:19.000000+0200</qDate> <msg lang="en"><![CDATA[Transfer in of docu-test-case-transfer.nl completed successfully.]]></msg> </msgQ> <trID> <svTRID>MTR_65ca47c73c1690ee1c07af6923a7b7fbb9f68796</svTRID> <clTRID>57d2cedfbceec</clTRID> </trID> </response> </epp>