Types (Модели)
Сущности
ClientType
Список типов клиентов
Attributes:
| Name | Type | Description |
|---|---|---|
individual |
str
|
Для доходов от физических лиц из РФ |
legal |
str
|
Для доходов от лиц или компаний из других стран |
foreign |
str
|
Для доходов от ИП или компаний из РФ |
Source code in npdtools/types/entity.py
7 8 9 10 11 12 13 14 15 16 17 18 19 | |
PartnerInfo
Сведения о партнёре
Attributes:
| Name | Type | Description |
|---|---|---|
code |
str | None
|
Код партнёра, обычно uuid |
logo |
str | None
|
base64 png-логотип |
inn |
str | None
|
ИНН партнёра |
name |
str | None
|
Краткое (красивое) название партнёра |
Source code in npdtools/types/entity.py
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
ClientInfo
Сведения о клиенте
Attributes:
| Name | Type | Description |
|---|---|---|
inn |
str | None
|
ИНН клиента. Для физлиц и иностранных компаний по желанию. Для российских обязательно |
name |
str | None
|
ФИО или название компании сокращённо (например, |
type |
ClientType
|
Тип клиента из ClientType |
phone |
str | None
|
Контактный номер по желанию |
email |
str | None
|
Контактный email по желанию. Туда может приходить чек. Но не всегда |
Source code in npdtools/types/entity.py
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | |
fns_export()
Экспортирует модель в json'подобный словарь
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Словарь в нужном ФНС формате |
Source code in npdtools/types/entity.py
57 58 59 60 61 62 63 64 65 66 67 68 69 | |
EmployeeInfo
Сведения о самозанятом
Редактор чека
Отображение всех полей, кроме inn, настраивается в редакторе чека.
Содержимое profession и description можно отредактировать.
Содержимое email и phone изменяется только через их смену в профиле.
Применяется только к вновь создаваемым чекам.
Attributes:
| Name | Type | Description |
|---|---|---|
inn |
str
|
ИНН самозанятого |
profession |
str | None
|
Строка, описывающая деятельность самозанятого |
description |
list[dict[str, Any]] | None
|
Список дополнительного описания деятельности |
email |
str | None
|
Адрес электронной почты |
phone |
str | None
|
Номер телефона |
Source code in npdtools/types/entity.py
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | |
Income (Доходы / Чеки)
PaymentTypes
Bases: enum.StrEnum
Attributes:
| Name | Type | Description |
|---|---|---|
cash |
str
|
Наличными |
phone |
str
|
По номеру телефона |
account |
str
|
По реквизитам счёта |
Source code in npdtools/types/income.py
14 15 16 17 18 19 20 21 22 23 24 | |
SortTypes
Bases: enum.StrEnum
Attributes:
| Name | Type | Description |
|---|---|---|
time |
str
|
Сортировка по времени |
amount |
str
|
Сортировка по полной стоимости |
Source code in npdtools/types/income.py
27 28 29 30 31 32 33 34 35 | |
NewIncome
Bases: BaseModel
Attributes:
| Name | Type | Description |
|---|---|---|
receipt_id |
str
|
Номер чека |
Source code in npdtools/types/income.py
38 39 40 41 42 43 44 | |
CancellationInfo
Bases: BaseModel
Сведения об аннулировании дохода
Attributes:
| Name | Type | Description |
|---|---|---|
canceled_at |
datetime
|
Время фактического возврата денег |
registered_at |
datetime
|
Время регистрации аннулирования |
comment |
str | None
|
Комментарий к аннулированию |
tax_period |
int | None
|
Налоговый период в формате |
raw |
dict[str, Any]
|
JSON'подобный словарь, содержащий необработанный ответ ФНС |
Source code in npdtools/types/income.py
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | |
CanceledIncome
Bases: BaseModel
Сведения об аннулированном чеке
Attributes:
| Name | Type | Description |
|---|---|---|
receipt_id |
str
|
Номер чека |
name |
str
|
Название чека |
created_at |
datetime
|
Время фактической декларации дохода |
received_at |
datetime
|
Время получения денег |
payment_type |
PaymentTypes
|
Вид получения денег. Всегда |
partner_code |
Any | None
|
Код партнёра, если это он регистрировал чек |
total_amount |
Decimal
|
Общая сумма дохода, за все позиции |
cancellation_info |
CancellationInfo
|
Сведения об аннулировании |
device_id |
str | None
|
Идентификатор устройства, с которого был зарегистрирован чек |
Source code in npdtools/types/income.py
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | |
is_cancelled: bool
property
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
Является ли чек отменённым? Ну типа да, всегда, но не всегда |
IncomeInfo
Bases: BaseModel
Сведения о задекларированном доходе.
Attributes:
| Name | Type | Description |
|---|---|---|
receipt_id |
str
|
Номер чека |
total_amount |
Decimal
|
Общая сумма дохода, за все позиции |
services |
list[Service]
|
Список позиций в чеке |
name |
str
|
Название чека |
tax_period |
int | None
|
Налоговый период в формате |
cancellation_info |
CancellationInfo | None
|
Сведения об аннулировании |
payment_type |
PaymentTypes
|
Вид получения денег. Всегда |
created_at |
datetime
|
Время фактической декларации дохода |
received_at |
datetime
|
Время получения денег |
device_id |
str | None
|
Идентификатор устройства, с которого был зарегистрирован чек |
partner_info |
PartnerInfo | None
|
Сведения о партнёре |
client_info |
ClientInfo
|
Сведения о клиенте |
employee_info |
EmployeeInfo
|
Сведения о самозанятом |
invoice_id |
int | None
|
Номер связанного с доходом счёта |
raw |
dict[str, Any]
|
JSON'подобный словарь, содержащий необработанный ответ ФНС |
Source code in npdtools/types/income.py
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 | |
receipt_url: str
property
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
Ссылка на картинку чека |
receipt_url_json: str
property
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
Ссылка на JSON со сведениями о чеке |
IncomesList
Bases: BaseModel
Содержит сведения о чеках и пагинации
Attributes:
| Name | Type | Description |
|---|---|---|
incomes |
list[IncomeInfo]
|
Список чеков |
has_more |
bool
|
Есть ли ещё счета для получения |
offset |
int
|
Отступ от начала |
limit |
int
|
Количество в выдаче |
Source code in npdtools/types/income.py
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 | |
Invoice (Счета)
PaymentOption
Bases: BaseModel
Объект со способом приёма денег по счёту
Attributes:
| Name | Type | Description |
|---|---|---|
id |
int
|
Идентификатор способа оплаты |
type |
Literal['ACCOUNT', 'PHONE']
|
Тип: по телефону или по номер счёта |
bank |
BankAccount | BankPhone
|
Собственно, сами сведения о способе приёма |
is_favorite |
bool
|
Является ли способ приоритетным. Может быть один на каждый |
is_for_pa |
bool
|
Хз, зачем и что такое |
raw |
dict[str, Any]
|
JSON'подобный словарь, содержащий необработанный ответ ФНС |
Source code in npdtools/types/invoice.py
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | |
PaymentOptions
Bases: BaseModel
Итерируемый список способов получения денег по счёту
Attributes:
| Name | Type | Description |
|---|---|---|
options |
list[PaymentOption]
|
Сам список хранится в этой переменной, но работать можно и с самим объектом сразу |
Source code in npdtools/types/invoice.py
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | |
ReceiptTemplate
Bases: BaseModel
Настройки чека
Редактор чека
Отображение всех полей настраивается в редакторе чека.
Содержимое profession и description можно отредактировать.
Содержимое email и phone изменяется только через их смену в профиле.
Применяется только к вновь создаваемым счетам.
Attributes:
| Name | Type | Description |
|---|---|---|
profession |
str | None
|
Строка, описывающая деятельность самозанятого |
description |
list[dict[str, Any]] | None
|
Список дополнительного описания деятельности |
email |
str | None
|
Адрес электронной почты |
phone |
str | None
|
Номер телефона |
Source code in npdtools/types/invoice.py
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | |
Invoice
Bases: BaseModel
Attributes:
| Name | Type | Description |
|---|---|---|
invoice_id |
int
|
Номер счёта |
receipt_id |
str | None
|
Номер чека, выданного к этому счёту, если, конечно, выдан |
services |
list[Service]
|
Список позиций в чеке |
url |
str
|
Ссылка на страницу со счётом. Можно отправить контрагенту |
status |
Literal['CREATED', 'CANCELLED', 'PAID_WITHOUT_RECEIPT', 'PAID_WITH_RECEIPT'] | str
|
Статус счёта |
payment_type |
PaymentTypes
|
Способ получения денег |
total_amount |
Decimal
|
Общая сумма всех позиций в счёте |
total_tax |
Decimal
|
Сумма налогов за этот счёт |
commission |
Decimal | None
|
Комиссия за получение денег. Сейчас её нет или она равна нулю |
created_at |
datetime
|
Время создания счёта |
paid_at |
datetime | None
|
Время оплаты счёта |
canceled_at |
datetime | None
|
Время отмены счёта |
bank |
BankAccount | BankPhone
|
Сведения о способе получения денег по счёту |
client_info |
ClientInfo
|
Сведения о клиенте |
employee_info |
EmployeeInfo
|
Сведения о самозанятом |
acquiring_info |
AcquiringInfo
|
Сведения об эквайринге, если для получения используется он (TODO: Возможно, надо перенести в bank_info) |
receipt_template |
ReceiptTemplate | None
|
Сведения о самозанятом для отображения в счёте и чеке |
type |
Literal['MANUAL']
|
Способ создания счёта, обычно |
auto_create_receipt |
bool | None
|
Был ли счёт создан автоматически |
uuid |
str
|
Технический идентификатор счёта в ФНС |
fid |
int
|
Ещё один рандомный идентификатор |
Source code in npdtools/types/invoice.py
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 | |
is_paid: bool
property
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
Оплачен ли счёт |
is_canceled: bool
property
Returns:
| Name | Type | Description |
|---|---|---|
bool |
bool
|
Отменён ли счёт |
InvoicesList
Bases: BaseModel
Содержит сведения о счетах и пагинации
Attributes:
| Name | Type | Description |
|---|---|---|
invoices |
list[Invoice]
|
Список счетов |
has_more |
bool
|
Есть ли ещё счета для получения |
offset |
int
|
Отступ от начала |
limit |
int
|
Количество в выдаче |
Source code in npdtools/types/invoice.py
236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | |
Service (Позиция / Товар / Услуга)
Service
Bases: BaseModel
Объект позиции в чеке или счёте
Attributes:
| Name | Type | Description |
|---|---|---|
name |
str
|
Название позиции: товара, услуги или подобного |
amount |
Decimal
|
Цена единицы позиции. За штуку, грамм или подобное |
quantity |
int
|
Количество. Штук, грамм или подобного |
number |
int | None
|
Порядковый номер позиции. Техническая штука. |
Source code in npdtools/types/service.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
service_amount: Decimal
property
Returns:
| Name | Type | Description |
|---|---|---|
Decimal |
Decimal
|
Стоимость всей позиции. Цена умножить на количество. |