LvContact extension

The extension defines two new fields for contact objects (they are required only if contact is used as a registrant for any domain name).

  • lvcontact:regNr: for private persons, residents of Latvia, holds their person code (Latvian identification number for individuals); for companies and other legal entities, registered in Latvia keeps registration number issued by the Latvian Register of Enterprises.
  • lvcontact:vatNr: VAT number for foreign legal entities registered within European Union countries (this includes also Latvian companies).

Contact <info> command

Server response MAY have an additional <lvcontact:infData> element inside the <extension> element if LvContact extension is chosen for the session.

lvcontact:infData will contain one or both of lvcontact:vatNr / lvcontact:regNr elements containing person code/registration number and VAT number of the contact respectively.

Example of response to <info> command with an <lvcontact:infData> element:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  <response>
    <resData>
      <contact:infData xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
                       xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">

        <contact:id>testholder-12345</contact:id>
        <contact:roid>CNT-testholder-LVNIC</contact:roid>
        <contact:clID>niceppuser</contact:clID>
        <contact:voice>+371.12345678</contact:voice>
        <contact:fax>+371.12345678</contact:fax>
        <contact:email>test.holder@enterprise.lv</contact:email>
        <contact:postalInfo type="loc">
          <contact:name>Gundars Kalns</contact:name>
          <contact:org>The Latvian Enterprise, LTD</contact:org>
          <contact:addr>
            <contact:street>Brīvības st.333-1</contact:street>
            <contact:city>Rīga</contact:city>
            <contact:pc>LV-1111</contact:pc>
            <contact:cc>LV</contact:cc>
          </contact:addr>
        </contact:postalInfo>
        <contact:crID>niceppuser</contact:crID>
        <contact:crDate>2011-05-16T13:42:39+03:00</contact:crDate>
        <status s="linked"/>
        <contact:authInfo>
            <contact:pw><contact:null/></contact:pw>
        </contact:authInfo>
      </contact:infData>
    </resData>
    <extension>
      <infData xmlns="http://www.nic.lv/epp/schema/lvcontact-ext-1.0"
               xsi:schemaLocation="http://www.nic.lv/epp/schema/lvcontact-ext-1.0 lvcontact-ext-1.0.xsd">
        <regNr>222212222112</regNr>
        <vatNr>LV222212222112</vatNr>
      </infData>
    </extension>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>aWlMyaFZ9aHUwWYabU4N</clTRID>
      <svTRID>LVNIC-20110517-910b427b21464a07f29393b6cf9721a0-6</svTRID>
    </trID>
  </response>
</epp>

Contact <create> command

When creating a new person, request frame MAY contain <lvcontact:create> element inside <extension>. Example below contains field <lvcontact:create>. This field is required in order to create LV legal or private person (LV private person is created if field <contact:org> is not present; otherwise a legal person is assumed).

Request example:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:lvcontact="http://www.nic.lv/epp/schema/lvcontact-ext-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
  <command>
    <create>
      <contact:create>
        <contact:id>LV5dd5415175896</contact:id>
        <contact:postalInfo type="loc">
          <contact:name>Person name</contact:name>
          <contact:org>Organization Inc.</contact:org>
          <contact:addr>
            <contact:street>Address 1</contact:street>
            <contact:city>City</contact:city>
            <contact:pc>lv-1001</contact:pc>
            <contact:cc>LV</contact:cc>
          </contact:addr>
        </contact:postalInfo>
        <contact:voice>+31.61234567890</contact:voice>
        <contact:email>test@test.com</contact:email>
        <contact:authInfo>
          <contact:pw></contact:pw>
        </contact:authInfo>
      </contact:create>
    </create>
    <extension>
      <lvcontact:create>
        <lvcontact:regNr>40003014197</lvcontact:regNr>
      </lvcontact:create>
    </extension>
    <clTRID>5dd541517589a</clTRID>
  </command>
</epp>

Contact <update> command

In a situation where a company should be updated with a VAT number, it can be added via <lvcontact:update> as shown in the example below.

Request example:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:lvcontact="http://www.nic.lv/epp/schema/lvcontact-ext-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
  <command>
    <update>
      <contact:update>
        <contact:id>LV5dd5415175896</contact:id>
      </contact:update>
    </update>
    <extension>
      <lvcontact:update>
        <lvcontact:vatNr>LV40003014197</lvcontact:vatNr>
      </lvcontact:update>
    </extension>
    <clTRID>5dd5415188f8a</clTRID>
  </command>
</epp>

Formal specification (XML schema)

The most up to date version of the schema is always available at https://www.nic.lv/epp/schemas/lvcontact-ext-1.0.xsd

<?xml version="1.0" encoding="UTF-8"?>
<!--
lvcontact-ext-1.0.xsd - XML schema for .LV EPP extensions for contact mapping

$Id: lvcontact-ext-1.0.xsd $
$Date: 2011-01-31 $
$LastChangedBy: Artūrs Gailītis $
-->
<schema targetNamespace="http://www.nic.lv/epp/schema/lvcontact-ext-1.0"
          xmlns:lvcontact="http://www.nic.lv/epp/schema/lvcontact-ext-1.0"
          xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
          xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
          xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
          xmlns="http://www.w3.org/2001/XMLSchema"
          elementFormDefault="qualified">

    <!-- Import IETF schemas. -->
    <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"  schemaLocation="eppcom-1.0.xsd" />
    <import namespace="urn:ietf:params:xml:ns:epp-1.0"     schemaLocation="epp-1.0.xsd" />
    <import namespace="urn:ietf:params:xml:ns:contact-1.0" schemaLocation="contact-1.0.xsd" />

    <annotation>
      <documentation>
        Extensible Provisioning Protocol v1.0
        Extensions for .LV
      </documentation>
    </annotation>

    <!-- **************************************************************** -->
    <!--                 extension to contact:create                      -->
    <!--                                                                  -->
    <element name="create" type="lvcontact:createType" />

    <complexType name="createType">
      <all>
        <element name="regNr" type="lvcontact:orgRegNoType" minOccurs="0" maxOccurs="1" />
        <element name="vatNr" type="lvcontact:orgRegNoType" minOccurs="0" maxOccurs="1" />
      </all>
    </complexType>

    <!-- **************************************************************** -->
    <!--                 extension to contact:update                      -->
    <!--                                                                  -->
    <element name="update" type="lvcontact:updateType" />

    <complexType name="updateType">
      <sequence>
        <element name="regNr" type="lvcontact:orgRegNoType" minOccurs="0" maxOccurs="1"/>
        <element name="vatNr" type="lvcontact:orgRegNoType" minOccurs="0" maxOccurs="1" />
      </sequence>
    </complexType>

    <!-- **************************************************************** -->
    <!--                 extension to contact:info                        -->
    <!--                                                                  -->
    <element name="infData" type="lvcontact:infDataType"/>

    <complexType name="infDataType">
      <all>
        <element name="regNr" type="lvcontact:orgRegNoType" minOccurs="0" />
        <element name="vatNr" type="lvcontact:orgRegNoType" minOccurs="0" />
      </all>
    </complexType>

    <!-- **************************************************************** -->
    <!--               Define the extension element types                 -->
    <!--                                                                  -->

    <simpleType name="orgRegNoType">
      <restriction base="string">
        <!-- 2-letter country code then country-specific string -->
        <!-- Vatno outside EU can not be checked <pattern value="[A-Z][A-Z] ?[A-Za-z0-9]+" />  -->
        <pattern value="[A-Za-z0-9][A-Za-z0-9#:./-]*[A-Za-z0-9]" />
        <minLength value="3" />
        <maxLength value="20" />
      </restriction>
    </simpleType>

</schema>