NAME

IO::EPP::Flexireg

SYNOPSIS

use IO::EPP::Flexireg;

# Parameters for IO::Socket::SSL
my %sock_params = (
    PeerHost        => 'epp.flexireg.net',
    PeerPort        => 700,
    Timeout         => 30,
);

# Create object, get greeting and call login()
my $conn = IO::EPP::Flexireg->new( {
    user => 'login-msk-fir',
    pass => 'xxxxxxxx',
    sock_params => \%sock_params,
    test_mode => 0, # real connect
} );

# Check domain
my ( $answ, $code, $msg ) = $conn->check_domains( { domains => [ 'my.moscow', 'xn--l1ae5c.xn--80adxhks' ] } );

# Call logout() and destroy object
undef $conn;

DESCRIPTION

Module work with Flexireg tlds: .moscow, .москва, ru.net and 3lvl.ru/su

Frontend: https://faitid.org/

Backend: http://flexireg.net/

Documentaion:

moscow, москва https://faitid.org/projects/moscow/documents, https://faitid.org/sites/default/files/policy/tech/Tu-flexireg-EPP_1.2_ru.pdf, https://faitid.org/sites/default/files/Tu-flexireg-Examples_1.3_ru.pdf

ru.net+ https://faitid.org/projects/RU.NET/documents, https://faitid.org/sites/default/files/Tu-flexireg-EPP_ext.pdf

METHODS

Further overlap functions where the provider has features

login

Ext params for login,

INPUT: new password for change

create_contact

For moscow/москва:

When registering a contact, you must specify both int type data and loc type data, and if the domain owner has passport data in Cyrillic, then loc type data must be entered in Cyrillic. This is mandatory for citizens and legal entities of Russia, Ukraine, Belarus and other countries that have the Cyrillic alphabet.

In addition, the owner must provide additional information.

For individuals:

birthday -- date of birth;

passport -- passport series and number, by whom and when it was issued;

TIN -- TIN for individual entrepreneurs.

For legal entities:

hashref legal, that contains the legal address, it also needs to specify two types: int and loc, consisting of the fields addr, city, state, postcode, country_code.

You also need to specify the TIN field.

An Example:

Individuals:

my %cont = (
    int => {
        first_name => 'Igor',
        patronymic => 'Igorevich',
        last_name  => 'Igorev',
        org        => '',
        addr       => 'Igoreva str, 129',
        city       => 'Igorevsk',
        state      => 'Ogorevskaya obl.',
        postcode   => '699001',
        country_code => 'RU',
    },
    loc => {
        first_name => 'Игорь',
        patronymic => 'Игоревич',
        last_name  => 'Игорев',
        org        => '',
        addr       => 'ул. Игорева, 129',
        city       => 'Игоревск',
        state      => 'Игоревская обл.',
        postcode   => '699001',
        country_code => 'RU',
    },
    birthday => '1909-01-14',
    passport => '11.11.2011, выдан Отделом УФМС России по Игоревской области в г.Игоревске, 2211 446622',
    phone      => '+7.9012345678',
    fax        => '',
    email      => 'igor@i.ru',
    TIN        => '',
};

my ( $answ, $msg, $conn ) = make_request( 'create_contact',  \%cont );

Legal entities:

my %cont = (
    int => {
        first_name => 'Igor',
        patronymic => 'Igorevich',
        last_name  => 'Igorev',
        org        => 'Igor and Co',
        addr       => 'Igoreva str, 129',
        city       => 'Igorevsk',
        state      => 'Igorevskaya obl.',
        postcode   => '699001',
        country_code => 'RU',
    },
    loc => {
        first_name => 'Игорь',
        patronymic => 'Игоревич',
        last_name  => 'Игорев',
        org        => 'Игорь и Ко',
        addr       => 'ул. Игорева, 129',
        city       => 'Игоревск',
        state      => 'Игоревская обл.',
        postcode   => '699001',
        country_code => 'RU',
    },
    legal => {
        int => {
            addr       => 'Company str, 1',
            city       => 'Igorevsk',
            state      => 'Igorevskaya obl.',
            postcode   => '699002',
            country_code => 'RU',
        },
        loc => {
            addr       => 'ул. Компаний, 1',
            city       => 'Игоревск',
            state      => 'Игоревская обл.',
            postcode   => '699002',
            country_code => 'RU',
        }
    }
};

my ( $answ, $code, $msg ) = $conn->create_contact( \%cont );

get_contact_ext

Parsing the tcinet extension for get_contact_info:

birthday and passport for individuals;

legal address for legal entities.

An Example

{
    'int' => {
        'city' => 'Kaluga',
        'country_code' => 'RU',
        'name' => 'Igor Igorevich Igover',
        'postcode' => '248000',
        'addr' => 'Barrikadnaya 1',
        'state' => 'Kaluzhskaya obl.'
    },
    'roid' => '22222217183841759329_aed2a25748687035b9ad8dcbcf839171_contact-FIR',
    'cre_date' => '2020-01-01 10:10:10',
    'TIN' => 'FICTION-01',
    'email' => [
        'i@go.ru'
    ],
    'fax' => [],
    'legal' => {
        'int' => {
            'city' => 'Moscow',
            'country_code' => 'RU',
            'postcode' => '123456',
            'addr' => 'ul. Vasi Petushkova, dom 3',
            'state' => 'Moscow'
        },
        'loc' => {
            'city' => 'Москва',
            'country_code' => 'RU',
            'postcode' => '123456',
            'addr' => 'Васи Петушкова стриит., хаус 3',
            'state' => 'Москва'
        }
    },
    'creater' => 'login-msk-fir',
    'authinfo' => 'khylMUWPjpqU=%9Y',
    'code' => '1000',
    'owner' => 'login-msk-fir',
    'msg' => 'Command completed successfully',
    'phone' => [
        '+7.9166337777'
    ],
    'cont_id' => 'jsybsvtjjjjj',
    'loc' => {
        'city' => 'Калуга',
        'country_code' => 'RU',
        'name' => 'Игорь Игоревич Игорев',
        'postcode' => '248000',
        'addr' => 'Баррикадная 1',
        'state' => 'Калужская обл.'
    },
    'statuses' => {
        'ok' => '+'
    }
};

create_domain

Domains ru.net+ tlds have only the registrant, without the administrator and other contacts

restore_domain

first call for restore_domain

confirmations_restore_domain

Second call for restore_domain

pre_data

whois before delete;

post_data

whois on now;

del_time

delete domain date-time, see. upd_date in domain:info before call restore_domain;

rest_time

restore request call datetime in UTC;

reason

restore reason,

variants: Registrant Error, Registrar Error, Judicial / Arbitral / Administrative / UDRP Order;

statement

need to write what it is for the client;

other

can and without other.

AUTHORS

Vadim Likhota <vadiml@cpan.org>

COPYRIGHT

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.