datrus
— библиотека для работы с различными идентификаторами и реквизитами, принятыми в РФ.
BankAccount — детальная структура банковского счета.
- Валидация
- Разбор структуры банковского счета
- Обогащение информацией о счетах первого и второго порядка по справочнику
- Обогащение информацией о валюте по справочнику
BIC — БИК, банковский идентификационный код.
- Валидация
- Разбор структуры БИК
- Проверка соответствия ("ключевка") номеров расчетных и корреспондентских счеты с БИК
INN — ИНН, индивидуальный номер налогоплательщика.
- Валидация ИНН физических и юридических лиц
- Проверка контрольного числа
- Разбор структуры ИНН
- Обогащение информацией о регионе по справочнику
KPP — КПП, код причины постановки на учет налогоплательщиков-организаций.
- Валидация
- Разбор структуры КПП
- Обогащение информацией о регионе по справочнику
- Обогащение информацией о причине постановки на учет по справочнику
SNILS — СНИЛС, страховой номер индивидуального лицевого счета в системе обязательного пенсионного страхования.
- Валидация
- Проверка контрольного числа
- Форматирование номера СНИЛС по шаблону
- Генерация случайного номера СНИЛС
datrus/dict
— различные справочники с возможностью поиска.
Источник данных и дата актуальности справочников указаны описаниях функций поиска
по соответствующему справочнику.
- AccountCode — справочник кодов счетов первого и второго порядка ("план счетов") согласно Положению №385-П ЦБ РФ "О правилах ведения бухгалтерского учета в кредитных организациях, расположенных на территории Российской Федерации"
- Currency — справочник кодов валют "ОК (МК (ИСО 4217) 003-97) 014-2000. Общероссийский классификатор валют"
- KPPReason — справочник "Причины постановки на учет налогоплательщиков-организаций" (СППУНО)
- Region — справочник субъектов Российской Федерации с кодами ОКАТО и ОКТМО.
- Go 1.21+
go get -u github.com/ofstudio/go-datrus
package main
import (
"fmt"
"github.com/ofstudio/go-datrus"
)
func main() {
bic := datrus.MustParseBIC("044525700")
// Счет соответствует БИК
account := datrus.MustParseBankAccount("40817810901004428532")
if err := bic.CheckBankAccount(account); err != nil {
fmt.Println(err)
} else {
fmt.Println("Счет соответствует БИК")
}
// Счет не соответствует БИК
account = datrus.MustParseBankAccount("40817810901004428533")
if err := bic.CheckBankAccount(account); err != nil {
fmt.Println(err)
} else {
fmt.Println("Счет соответствует БИК")
}
}
Вывод:
Счет соответствует БИК
ошибка БИК: счет не соответствует БИК
package main
import (
"fmt"
"github.com/ofstudio/go-datrus/dict"
)
func main() {
region := dict.RegionFindByCode("89")
fmt.Println(region)
currency := dict.CurrencyFindBySymbol("USD")
fmt.Println(currency)
}
Вывод:
{89 Ямало-Ненецкий автономный округ 71140000000 71900000000}
{840 USD ДОЛЛАР США}
Распространяется по лицензии MIT. Более подробная информация в файле LICENSE.