Suche in diesem Bereich

Skip to end of metadata
Go to start of metadata


Table of Contents

General

System notifications are asynchronous notifications that inform you of the status of an order. They are sent with a time delay because other instances, such as the registry, are involved in executing the process.

The system sends two types of asynchronous responses

  • Job notifications
  • Event notifications

Job Notifications

Job notifications are system responses related to an request sent to the system. For an incoming request, the system immediately sends a system response in real time with the status type notify, which reports the start of processing. After processing the job, the system sends an job notification with the final job status, which can be either success on successful processing or error on failed processing.

Event Notifications (Notify)

Event notifications are notifications that are triggered by external events, such as an outgoing transfer or owner validation. Event notifications are sent to the owner of the object.

TransferOut
  • transfer_start
    Start of an outgoing domain transfer
  • transfer_autoack
    Automatic confirmation of an outgoing domain transfer (AutoAck). Only for gTLDs.
  • transfer_autonack
    Automatic refusal of an outgoing transfer (AutoNack).
  • transfer_reminder
    Reminder of an ongoing transfer.
  • domain_away
    Deletion of a domain from the database, e.g. in the case of domain transfers without the participation of the registrar.
DomainAutoUpdate
  • autoupdate_dns_error
    Successful execution of an automatic update. Only for .de domains. An automatic update is only performed if the connectivity check, which is part of the registration process, has failed.
  • autoupdate_dns_success
    Successful connectivity check
  • autoupdate_deferred_success
    Successful deferred AutoUpdate
  • autoupdate_deferred_error
    Failed deferred AutoUpdate
OCVAL (OwnerC validation)
  • ocval_reminder
    Reminder to deactivate the domain (5 days before).
  • ocval_activation
    Information about the disconnection of the name servers and the non-accessibility of the domain.
  • ocval_deactivation
    Information about the reconnection of the nameservers and the re-accessibility of the domain.

Configuration in the Interface

The notifications can be configured in the AutoDNS interface (User Settings / User Profile / API Settings).

Configuration for Emails

For Email three different notification formats can be defined:

  • Standard: The content consists of text and XML.
  • XML: The content consists of pure XML.
  • JSON: The content is pure JSON.

Configuration for Polling

Three different notification formats can be defined for Polling. The set format is used if the message is not retrieved and is sent by the system via email.

  • XML: The content consists of pure XML.
  • JSON: The content consists of pure JSON.
  • EPP: The content consists of pure EPP (will be set automatically as soon as EPP API is activated).

Configuration for Push

Two different notification formats can be defined for Push. The set format is used if the message is not retrieved and is sent by the system via email.

    XML: The content consists of pure XML.
    JSON: The content consists of pure JSON.

Please note that push messages cannot be delivered via e-mail forwarding.

Polling

Polling is the active retrieval of system notifications by the user. The notifications are available in structured format and are processed according to the FIFO principle.

Get Notifications

JSON: The current system notification can be retrieved via the GET /poll route.

XML: The current system notification can be retrieved via the task 0905.

EPP: If EPP is activated, the user is automatically set to polling.

Examples  for JSON, XML and EPP

Request
GET /poll
Response
{
    "stid": "20180926-stid",
    "status": {
        "code": "S0905",
        "text": "The notification was polled successfully.",
        "type": "SUCCESS"
    },
    "object": {
        "type": "message",
        "value": "1819917"
    },
    "data": [
        {
            "summary": 1,
            "message": {
                "id": 1819917,
                "job": {
                    "id": 4295609745,
                    "domain": {
                        "created": "2018-09-26T15:11:21.000+0200",
                        "owner": {},
                        "updater": {},
                        "name": "example.com",
                        "expire": "2019-09-26T15:11:20.000+0200",
                        "payable": "2019-09-26T15:11:21.000+0200",
                        "ownerc": {
                            "id": 100
                        },
                        "adminc": {
                            "id": 100
                        },
                        "techc": {
                            "id": 100
                        },
                        "registryStatus": "LOCK",
                        "nameServers": [
                            {
                                "name": "a.ns14.net"
                            },
                            {
                                "name": "b.ns14.net"
                            },
                            {
                                "name": "c.ns14.net"
                            },
                            {
                                "name": "d.ns14.net"
                            }
                        ],
                        "lastAction": "CREATE",
                        "authinfo": "gg9o3FFL/hzNbuPw",
                        "autoRenewStatus": "TRUE",
                        "registrarStatus": "ACTIVE",
                        "rddsOptIn": "NOT_SET"
                    }
                },
                "stid": "20180926-stid",
                "object": {
                    "type": "domain",
                    "value": "example.com"
                },
                "status": {
                    "code": "S0101",
                    "type": "SUCCESS"
                }
            }
        }
    ]
}
Request
<request>
    <auth>
        <user>USER</user>
        <context>CONTEXT</context>
        <password>PASSWORD</password>
    </auth>
    <task>
        <code>0905</code>
    </task>
</request>
Response
<response>
    <result>
        <data>
            <summary>1</summary>
            <message>
                <id>1855680</id>
                <owner>
                    <user>alex_normal_plus</user>
                    <context>4</context>
                </owner>
                <job>
                    <domain>
                        <name>example.com</name>
                        <expire>2019-10-15 14:02:40</expire>
                        <payable>2019-10-15 14:02:41</payable>
                        <ownerc>100</ownerc>
                        <adminc>100</adminc>
                        <techc>100</techc>
                        <nic_member_label>VGRS-TEST</nic_member_label>
                        <registry_status>LOCK</registry_status>
                        <nserver>
                            <name>a.ns14.net</name>
                        </nserver>
                        <nserver>
                            <name>b.ns14.net</name>
                        </nserver>
                        <nserver>
                            <name>c.ns14.net</name>
                        </nserver>
                        <nserver>
                            <name>d.ns14.net</name>
                        </nserver>
                        <period>1</period>
                        <authinfo>S0Lygv+ZkNbniICm</authinfo>
                        <autorenew>true</autorenew>
                        <confirm_order>1</confirm_order>
                        <confirm_owner_consent>0</confirm_owner_consent>
                        <registrar_status>ACTIVE</registrar_status>
                        <rdds_opt_in>NOT_SET</rdds_opt_in>
                        <owner/>
                        <updater/>
                        <created>2018-10-15 14:02:41</created>
                    </domain>
                    <job_id>4295625406</job_id>
                    <status>
                        <code>S0101</code>
                        <type>success</type>
                        <object>
                            <type>domain</type>
                            <value>example.com</value>
                        </object>
                    </status>
                    <stid>20181015-app1-3788</stid>
                </job>
                <created>2018-10-15 14:03:02</created>
            </message>
        </data>
        <status>
            <code>S0905</code>
            <text>The notification was polled successfully.</text>
            <type>success</type>
            <object>
                <type>message</type>
                <value>1855680</value>
            </object>
        </status>
    </result>
    <stid>20181015-app1-3805</stid>
</response>
Request
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
	<command>
		<poll op="req" />
		<clTRID>ABC-12345</clTRID>
	</command>
</epp>
Reponse
<?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:domainrobot="urn:org:domainrobot:ns:ext-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:ro="urn:org:domainrobot:ns:contact:ro-1.0" xmlns:xxx="urn:org:domainrobot:ns:contact:xxx-1.0" xmlns:ca="urn:org:domainrobot:ns:contact:ca-1.0" xmlns:cat="urn:org:domainrobot:ns:contact:cat-1.0" xmlns:jobs="urn:org:domainrobot:ns:contact:jobs-1.0" xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0" xmlns:aero="urn:org:domainrobot:ns:contact:aero-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1" xmlns:host="urn:ietf:params:xml:ns:host-1.0" xmlns:hk="urn:org:domainrobot:ns:contact:hk-1.0" xmlns:bank="urn:org:domainrobot:ns:contact:bank-1.0" xmlns:it="urn:org:domainrobot:ns:contact:it-1.0" xmlns:barcelona="urn:org:domainrobot:ns:contact:barcelona-1.0" xmlns:au="urn:org:domainrobot:ns:contact:au-1.0" xmlns:uk="urn:org:domainrobot:ns:contact:uk-1.0" xmlns:swiss="urn:org:domainrobot:ns:contact:swiss-1.0" xmlns:ru="urn:org:domainrobot:ns:contact:ru-1.0">
  <response>
    <result code="1301">
      <msg lang="en">Command completed successfully; ack to dequeue</msg>
    </result>
    <msgQ count="1" id="880369">
      <qDate>2017-07-14T13:46:33.000Z</qDate>
    </msgQ>
    <resData>
      <domain:panData>
        <domain:name paResult="1">domain.com</domain:name>
        <domain:paTRID>
          <clTRID>EXAMPLE-123456789</clTRID>
          <svTRID>20170731-app1-10001</svTRID>
        </domain:paTRID>
        <domain:paDate>2017-07-31T13:46:33.000Z</domain:paDate>
      </domain:panData>
      <domain:infData>
        <domain:name>domain.com</domain:name>
        <domain:registrant>23022508</domain:registrant>
        <domain:contact type="admin">23022508</domain:contact>
        <domain:contact type="tech">23022508</domain:contact>
        <domain:ns>
          <domain:hostAttr>
            <domain:hostName>c.ns14.net</domain:hostName>
          </domain:hostAttr>
          <domain:hostAttr>
            <domain:hostName>d.ns14.net</domain:hostName>
          </domain:hostAttr>
        </domain:ns>
        <domain:crDate>2017-07-14T13:46:23.000Z</domain:crDate>
        <domain:exDate>2019-07-14T13:46:23.000Z</domain:exDate>
        <domain:authInfo>
          <domain:pw>L14HY+jaa45odO0v</domain:pw>
        </domain:authInfo>
      </domain:infData>
    </resData>
    <extension>
      <domainrobot:domain>
        <domainrobot:zonec>23022508</domainrobot:zonec>
        <domainrobot:trustee>0</domainrobot:trustee>
        <domainrobot:privacy>0</domainrobot:privacy>
      </domainrobot:domain>
    </extension>
    <trID>
      <clTRID>a2d8e98e-c703-4368-a986-a1fdfa42b8fe</clTRID>
      <svTRID>12345678</svTRID>
    </trID>
  </response>
</epp>

Confirm Notifications

JSON: A specific system notification can be confirmed via the route PUT /poll/{id}. The ID can be taken from the notification.

XML: A specific system notification can be confirmed with the task 0906. The ID can be taken from the notification.

  • Notifications are considered "successfully delivered" if they have been confirmed by the user.
  • If a notification is not confirmed by the user within 24 hours, it will be delivered to the fallback email (reply_to from the request).

Examples  for JSON, XML and EPP

Request
PUT /poll/{id}
Response
{
    "stid": "20180926-stid",
    "status": {
        "code": "S0906",
        "text": "The notification was confirmed successfully.",
        "type": "SUCCESS"
    },
    "object": {
        "type": "message",
        "value": "1819853"
    }
}
Request
<request>
    <auth>
        <user>USER</user>
        <context>CONTEXT</context>
        <password>PASSWORD</password>
    </auth>
    <task>
        <code>0906</code>
       <message>
            <id>650664</id>
        </message>
    </task>
</request>
Response
<response>
    <result>
        <data>
            <summary>0</summary>
            <message>
                <id>650664</id>
            </message>
        </data>
        <status>
            <code>S0906</code>
            <text>The notification was confirmed successfully.</text>
            <type>success</type>
            <object>
                <type>message</type>
                <value>650664</value>
            </object>
        </status>
         <stid>20181015-app1-3162</stid>
	 </result>
</response>
Request
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
	<command>
		<poll op="ack" msgID="627787" />
		<clTRID>ABC-12346</clTRID>
	</command>
</epp>
Reponse
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <response>
        <result code="1000">
            <msg lang="en">Command completed successfully</msg>
        </result>
        <msgQ count="0" id="627787" />
        <trID>
            <clTRID>ABC-12346</clTRID>
        </trID>
    </response>
</epp>


Push (Webhook)

Push is the passive retrieval of system notifications. The notifications are sent by the system to a specified address (URL) using HTTPS.

The target can read the system notifications from the HTTP request body and must confirm receipt with an HTTP 200 OK.

Target adresses

The messages are sent via POST to the HTTPS destination address.

Redirect are NOT followed up.

Confirming Notifications

Notifications are considered as "successfully delivered" if the server sends an HTTP Status 200 response.
If a notification cannot be sent within 24 hours, it will be delivered to the fallback email address (reply_to from the request).

Source address of the push notifications

The source IP is 62.116.129.216. Configure your firewall accordingly so that the push notifications are not filtered out.

Example PHP script for writing the push message to a textfile

This script will process the PUSH Message and write it to output.txt.   Define this Script (URL+Script) In the user profile under the API settings.

<?php
// Helper methods
function getHeaderList() {
        $headerList = array();
        foreach ($_SERVER as $name => $value) {
                if (preg_match('/^HTTP_/',$name)) {
                        $name = strtr(substr($name,5),'_',' ');
                        $name = ucwords(strtolower($name));
                        $name = strtr($name,' ','-');
                        // add to list
                        $headerList[$name] = $value;
                 }
        }
    return $headerList;
}

// Variables
$file = "output.txt";

// Fetch headers
$headers = "";
foreach (getHeaderList() as $name => $value) {
   $headers .= $name . ': ' . $value . "\n";
}

// Fetch body
$body = file_get_contents('php://input');

// Fetch current date
$now = date('Y-m-d H:m:s', time());

$content = "Date: $now\nHeaders: $headers\nBody: $body\n---------------------------------------------------------------------------------\n";

// Write to file
file_put_contents($file, $content, FILE_APPEND);
?>

Email

Notifications are sent by email (default setting).