Table of Contents

ISNIC EPP Interface Specification

Introduction

First of all the .is ccTLD is not operated as registry/registrar (shared registry system).
ISNIC is proud of allowing registrants, with enough technical skills, to contact the registry directly, via the self service retro looking website.
This means that we are going to have to jump through some awkward hoops when implementing EPP (as defined in RFC5730 which is based upon RFC3375 which is defined for "shared registries") between the .is registry and its service providers (ISNIC Service Provider - DNSP/ISP, actually registered DNS hosting providers for .is domains).
But with some assumptions and standard operating procedures this "should" work.

So there are no registrars providing interfaces to ISNIC only registered DNSPs (unregistered DNSPs also for that matter) and the registrants themselves (those with enough technical skills).
Which means there are no sponsoring clients on domains, hosts or contacts. The closest ISNIC has to a sponsoring client is the admin contact.
This also means there are no contact transfers. Domains objects do not have subordinate connections to host objects (yet).

We are building this EPP interface to serve our DNSPs (ISPs) so please send any comments, bug reports or questions to api-support@isnic.is.

Production environment

The EPP server is running at epp.isnic.is port 700. (Does not accept self signed client certificates.)

Sandbox environment

The EPP server is running at epp.sandbox.isnic.is port 700. (Does not accept self signed client certificates.)
Web interface at https://www.sandbox.isnic.is (See version of this page for upcoming changes).

Requirements for access

Show competency in our sandbox environment by performing the operations:

Payment types

For testing purposes on the development environment create creditcard number:
brand VISA, number 4571999400007492, CVC 150 and expire date any date in the future.
After the card has been created use the ID of the entity in cardID variable of the ISNIC extension and set the cardCVC correctly.

However on production large providers generally use prepayments to minimize errors in payment gateways and to get a monthly summary invoice.
A prepaid card is created after a deposit is made to ISNIC. Since there is a minor bug in our extenstion schema (not nillable and integer) when using cardID that is prepaid use cardCVC=1.

Note: If you transfer money you must send an email to billing@isnic.is stating which contact the deposit is meant for.
After deposits have been made the balance can be fetched by calling info:account.

Below is a list of things that are known to deviate from standard EPP.
When there are discrepancies between this list and our schemas then the schemas have precedence.

Login

Note: the standard schemas only allows passwords to be 6 to 16 characters long, but the web interface actually allows 72 characters.
So do not set the password length shorter then 6 and longer then 16 characters if you intend to use the contact to login to EPP.

Note: that this function is rate limited at 20 requests per 10 min.

Info

Domain

Note: that this function is rate limited at 50 requests per 30 min. Also note the rate limit does not apply when looking up domains connected to current logged in contact.

Poll

No deviations as of yet, should follow standard.

Messages with code 9301 - WARNING_PROCESS_WAITING are delivered when an asynchronous process is stuck and needs manual intervention.
For example registrant needs to confirm domain transfers and domain delete or there is a billing problem in domain create.

Create

Domain

There is no subordinate connection between domain and host objects, yet.
Create with ds records is not yet supported, work around is to add ds records after create.
After domain is created it will be returned in domain:info with status='pendingCreate'.
But before it gets status='active' there is a possiblilty that some manual actions must be taken.
These problems will be notified via message with code 9301 - WARNING_PROCESS_WAITING.
See payment type for info about cardID in the ISNIC extension.

domain:ns must contain fully qualified names of host objects the domain is delegated to, host attributes are not allowed. If no ns is set the domain will be delegated to ISNIC's parking servers

Contact

When this function is used by a logged in contact that is an registered
DNS Providers the contacts are created with status "okUnconfirmed" status and ISNIC sends an email to confirm the registration, otherwise contacts are created with status "pendingCreate".
The contact is usable as a registrant and billing contact when the status is "okUnconfirmed".
When a contact is "pendingCreate" the email must be confirmed by following a url sent in email after 3 days "pendingCreate" contacts are purged.

EPP commands are atomic, so a command will either
succeed completely or fail completely. Success and failure results
MUST NOT be mixed.

Instead of pre validating multiple commands and firing off multiple processes and then merging them back together,
we require that the clients only update one "async" part of the domain at the time.
We will throw an 2102 "Unimplemented option" error when for example the client tries to change the registrant (async) and updating ds records (sync).

When updating the registrant on a domain (which is asynchronous) the process needs to be confirmed by the registrant (if registrant has extended status='ok') else by the admin contact (if the registrant has the extended status=
okUnconfirmed).
If the process is not confirmed it will be notified via message with code 9301 - WARNING_PROCESS_WAITING.

Add and Remove

ns:hostObj (hostAttr not supported), all nameservers must be registered, async