API BillManager4 регистрация доменов (пример)

https://my.ru-tld.ru/manager/billmgr?func=domain&authinfo=$LOGIN:$PASSWORD&out=json

пример ответа:
{
"elem": [
	{
		"id": "123",
		"name": "domain1.ru",
		"account": "account (name account)",
		"account_id": "1",
		"expire": "on",
		"autoperiod": "-",
		"domainstatus": "5"
	},
	{
		"id": "456",
		"name": "domain2.ru",
		"account": "account (name account)",
		"account_id": "3",
		"expire": "2017-02-17",
		"autoperiod": "-",
		"domainstatus": "3"
	}]
}

Статусы домена:
0 - Нет данных
1 - Не оплачен
2 - Делегирован (Активен)
3 - Зарегистрирован (Не делегирован) (если expire > текущей даты) / Истек (если expire <= текущей даты)
4 - Удален
5 - Обрабатывается (На регистрации)
6 - Обрабатывается (Трансфер)
7 - Обрабатывается (На продлении)

https://my.ru-tld.ru/manager/billmgr?func=domain.edit&elid=$DOMAIN_ID&ns0=$NS0&ns1=$NS1&ns2=$NS2&ns3=$NS3&changens=on&sok=ok&authinfo=$LOGIN:$PASSWORD&out=json

пример успешного ответа:
{
	"result" : "OK",
	"text": "\n    ",
	"text": "\n",
	"ok": ""
}

https://my.ru-tld.ru/manager/billmgr?func=domain.order.4
&contact=$CONTACT_ID
&ctype=person
&owner=$CONTACT_ID
&domain=$DOMAIN_NAME_WITHOUT_TLD
&domainname_0=$DOMAIN_NAME_WITHOUT_TLD
&tld=$TLD
&nslist_0=$NSLIST
&operation=register
&period_0=$PRICE_PERIOD
&price=$PRICE_ID
&pricelist_0=$PRICE_ID
&registrar=$REGISTRAR_ID
&paynow=on
&payfrom=account$ACCOUNT_ID
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&countdomain=$COUNTDOMAIN
&out=json

Для регистрации нескольких доменов одним запросом необходимо 
добавить/изменить следующие поля

&countdomain=$COUNTDOMAIN - количество доменов
&domain=$DOMAIN_NAME_WITHOUT_TLD - список доменов через пробел
без зоны

следующие переменные необходимо расписать для каждого домена
изменяя номер переменной - N

&domainname_N=$DOMAIN_NAME_WITHOUT_TLD
&nslist_N=$NSLIST
&period_N=$PRICE_PERIOD
&pricelist_N=$PRICE_ID

https://my.ru-tld.ru/mancgi/domaininfo?domain=ru-tld.ru

https://my.ru-tld.ru/manager/billmgr?func=domain.renew
&autoperiod=$PRICE_PERIOD
&payfrom=account$ACCOUNT_ID
&paynow=on
&elid=$DOMAIN_ID
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json

https://my.ru-tld.ru/manager/billmgr?func=contcat.create.1
&ctype=person
&cname=$CONTACT_NAME
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json

{
	"result" : "OK",
	"domaincontact.id": $CONTACT_ID,
	"ok": "",
	"redirect": "location='billmgr?func=contcat.create.2
         &authinfo=$LOGIN:$PASSWORD&cname=CONTACT%5FNAME
         &contactid=$CONTACT_ID&ctype=person';"
}

https://my.ru-tld.ru/manager/billmgr?func=domaincontact.edit
&ctype=person
&name=$CONTACT_NAME
&firstname_ru=$FIRSTNAME_RU
&middlename_ru=$MIDDLENAME_RU
&lastname_ru=$LASTNAME_RU
&firstname=$FIRSTNAME
&middlename=$MIDDLENAME
&lastname=$LASTNAME
&email=$EMAIL
&phone=$PHONE
&fax=$PHONE
&mobile=$PHONE
&la_country=$ID_COUNTRY
&la_state=$LA_STATE
&la_postcode=$LA_POSTCODE
&la_city=$LA_CITY
&la_address=$LA_ADDRESS
&pa_state=$PA_STATE
&pa_postcode=$PA_POSTCODE
&pa_city=$PA_CITY
&pa_address=$PA_ADDRESS
&pa_addressee=$PA_ADDRESSEE
&inn=$INN
&birthdate=$BIRTHDATE
&passport_series=$PASSPORT_SERIES
&passport_org=$PASSPORT_ORG
&passport_date=$PASSPORT_DATE
&elid=$CONTACT_ID
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json

https://my.ru-tld.ru/manager/billmgr?func=contcat.create.1
&ctype=company
&cname=$CONTACT_NAME
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json

{
	"result" : "OK",
	"domaincontact.id": $CONTACT_ID,
	"ok": "",
	"redirect": "location='billmgr?func=contcat.create.2
        &authinfo=$LOGIN:$PASSWORD&cname=CONTACT%5FNAME
        &contactid=$CONTACT_ID&ctype=company';"
}

https://my.ru-tld.ru/manager/billmgr?func=domaincontact.edit
&ctype=company
&name=$CONTACT_NAME
&company_ru=$COMPANY_RU
&company=$COMPANY
&email=$EMAIL
&phone=$PHONE
&fax=$PHONE
&mobile=$PHONE
&la_country=$ID_COUNTRY
&la_state=$LA_STATE
&la_postcode=$LA_POSTCODE
&la_city=$LA_CITY
&la_address=$LA_ADDRESS
&pa_state=$PA_STATE
&pa_postcode=$PA_POSTCODE
&pa_city=$PA_CITY
&pa_address=$PA_ADDRESS
&pa_addressee=$PA_ADDRESSEE
&inn=$INN
&kpp=$KPP
&ogrn=$OGRN
&elid=$CONTACT_ID
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json

https://my.ru-tld.ru/manager/billmgr?func=contcat.create.1
&ctype=generic
&cname=$CONTACT_NAME
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json

{
	"result" : "OK",
	"domaincontact.id": $CONTACT_ID,
	"ok": "",
	"redirect": "location='billmgr?func=contcat.create.2
        &authinfo=$LOGIN:$PASSWORD&cname=CONTACT%5FNAME
        &contactid=$CONTACT_ID&ctype=generic';"
}

https://my.ru-tld.ru/manager/billmgr?func=domaincontact.edit
&ctype=generic
&name=$CONTACT_NAME
&company=$COMPANY
&firstname=$FIRSTNAME
&lastname=$LASTNAME
&email=$EMAIL
&phone=$PHONE
&fax=$PHONE
&la_country=$ID_COUNTRY
&la_state=$LA_STATE
&la_postcode=$LA_POSTCODE
&la_city=$LA_CITY
&la_address=$LA_ADDRESS
&elid=$CONTACT_ID
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json

* Переменные:
–$DOMAIN_NAME_WITHOUT_TLD - доменное имя без зоны.
–$TLD - зона (RU,SU,…)
–$CONTACT_ID - ид контакта для домена, посмотреть можно через API (https://my.ru-tld.ru/manager/billmgr?func=domaincontact&authinfo=$LOGIN:$PASSWORD&out=json)
–$PRICE_PERIOD и $PRICE_ID - период и тарифный план для регистрируемого домена.
Специфично для биллинга, в нашем биллинге для .RU $PRICE_PERIOD=520 $PRICE_ID=565, а для .SU $PRICE_PERIOD=535 $PRICE_ID=594.
Подсмотреть для других тарифов можно через интерфейс биллинга и firebug.
Для удобства мы выгружаем все тарифы и их идентификаторы в json файл, чтобы его можно было использовать в скриптах или модулях.
(https://my.ru-tld.ru/manimg/userdata/json/domainprice_ru.json)
–$REGISTRAR_ID - ид регистратора, специфично для биллинга, у нас для регистратора Ардис $REGISTRAR_ID=13
–$ACCOUNT_ID - ид аккаунта с которого списывать деньги. Посмотреть можно по API:
(https://my.ru-tld.ru/manager/billmgr?func=accountinfo&authinfo=$LOGIN:$PASSWORD&out=json)
–$COUNTDOMAIN - количество регистрируемых доменов, по умолчанию 1.
–$NSLIST - список ns перечисленные через пробел (пример &nslist_0=dns1.ru-tld.ru dns2.ru-tld.ru)
–$CONTACT_NAME - название контакта
–$FIRSTNAME_RU - имя на кириллицей
–$MIDDLENAME_RU - отчество кириллицей
–$LASTNAME_RU - фамилия кириллицей
–$FIRSTNAME - имя латинскими буквами
–$MIDDLENAME - отчество латинскими буквами
–$LASTNAME - фамилия латинскими буквами
–$EMAIL - e-mail
–$PHONE - телефон/ телефон для смс / факс. В формате телефона обязательно должны присутствовать + и 2 пробела. Причём + кодируется в %2B
–$ID_COUNTRY - ид страны. Ид страны можно посмотреть в файле https://my.ru-tld.ru/manimg/userdata/json/country.json (182 - для России)
–$INN - инн
–$BIRTHDATE - дата рождения указывается в следующем формате yyyy-mm-dd (2016-10-21)
–$PASSPORT_SERIES - серия/номер паспорта
–$PASSPORT_ORG - кем выдан паспорт
–$PASSPORT_DATE - дата выдачи паспорта в следующем формате yyyy-mm-dd (2016-10-21)
–$CONTACT_ID - ид контакта. Ид контакта можно узнать в ответе при создании контакта шаг 1 или можно посмотреть через API (https://my.ru-tld.ru/manager/billmgr?func=domaincontact&authinfo=$LOGIN:$PASSWORD&out=json)
–$COMPANY_RU - наименование компании кириллицей
–$COMPANY - наименование компании латинскими буквами
–$KPP - кпп
–$OGRN - огрн

Поля метса жительства
–$LA_STATE - область
–$LA_POSTCODE - индекс
–$LA_CITY - город
–$LA_ADDRESS - улица, дом, квартира и т.д.

Почтовый адрес
–$PA_STATE - область
–$PA_POSTCODE - индекс
–$PA_CITY - город
–$PA_ADDRESS - улица, дом, квартира и т.д.
–$PA_ADDRESSEE - кому адресовано

В виду отсутствия целевой документации по вызовами API биллинга , самый простой способ их узнать - это воспользоваться браузером с консолью типа firebug или аналогом и подсматривать запросы, которые отправляются биллингу через веб интерфейс. Веб интерфейс биллинга по сути построен на API, для того чтобы получать ответы от BILLmanager в xml или json вместо HTML, все что требуется это добавить параметр out=json (или xml)

Статусы доменов:

1Не оплачен
2Делегирован
3Зарегистрирован (Не делегирован) (если expire > текущей даты) / Истек (если expire ⇐ текущей даты)
4Удален
5Обрабатывается (На регистрации)
6Обрабатывается (Трансфер)
7Обрабатывается (На продлении)