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>