fiscalapi-br 0.1.0__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/PKG-INFO +31 -6
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/README.md +28 -3
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/pyproject.toml +3 -3
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/src/fiscalapi_br/_client.py +23 -0
- fiscalapi_br-0.2.0/src/fiscalapi_br/_version.py +1 -0
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/src/fiscalapi_br/types.py +122 -0
- fiscalapi_br-0.1.0/src/fiscalapi_br/_version.py +0 -1
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/.gitignore +0 -0
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/LICENSE +0 -0
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/examples/consultar_ie.py +0 -0
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/src/fiscalapi_br/__init__.py +0 -0
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/src/fiscalapi_br/_errors.py +0 -0
- {fiscalapi_br-0.1.0 → fiscalapi_br-0.2.0}/src/fiscalapi_br/py.typed +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: fiscalapi-br
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: SDK da FiscalAPI (Brasil): Inscrição Estadual, CNPJ, certidões, NF-e, SIGEF, CNIR e perfil do produtor rural.
|
|
5
5
|
Project-URL: Homepage, https://fiscalapi.com.br
|
|
6
6
|
Project-URL: Documentation, https://docs.fiscalapi.com.br
|
|
7
|
-
Project-URL: Source, https://github.com/
|
|
8
|
-
Project-URL: Issues, https://github.com/
|
|
7
|
+
Project-URL: Source, https://github.com/fiscalapi-br/fiscalapi-python
|
|
8
|
+
Project-URL: Issues, https://github.com/fiscalapi-br/fiscalapi-python/issues
|
|
9
9
|
Author-email: FiscalAPI <contato@fiscalapi.com.br>
|
|
10
10
|
License-Expression: MIT
|
|
11
11
|
License-File: LICENSE
|
|
@@ -24,7 +24,7 @@ Description-Content-Type: text/markdown
|
|
|
24
24
|
|
|
25
25
|
# FiscalAPI — SDK Python
|
|
26
26
|
|
|
27
|
-
Cliente Python da [FiscalAPI](https://fiscalapi.com.br): Inscrição Estadual nos 27 estados, CNPJ, certidões (CND estadual, CND Federal, CNDT, CRF/FGTS), XML de NF-e por chave, SIGEF, CNIR e perfil do produtor rural.
|
|
27
|
+
Cliente Python da [FiscalAPI](https://fiscalapi.com.br): Inscrição Estadual nos 27 estados, CNPJ, certidões (CND estadual, CND Federal, CNDT, CRF/FGTS), XML de NF-e por chave, NFS-e por chave, Simples Nacional, SIGEF, CNIR e perfil do produtor rural.
|
|
28
28
|
|
|
29
29
|
- Zero dependências (só a biblioteca padrão).
|
|
30
30
|
- Python 3.9 ou superior.
|
|
@@ -40,7 +40,7 @@ pip install fiscalapi-br
|
|
|
40
40
|
## Antes de começar
|
|
41
41
|
|
|
42
42
|
1. Crie sua conta em [app.fiscalapi.com.br](https://app.fiscalapi.com.br) e copie a chave de API no painel.
|
|
43
|
-
2. **
|
|
43
|
+
2. **10 consultas grátis por mês, no painel e pela API**: IE em um estado e CNPJ, para conta que nunca assinou plano, com e-mail confirmado e sem recarga. Não valem para IE em todos os estados nem para CNPJ ao vivo. Depois disso, é preciso plano ou saldo: a API responde `402` (`InsufficientBalanceError`). Sem chave, `403` (`AuthenticationError`).
|
|
44
44
|
3. Planos e consumo de créditos: [docs.fiscalapi.com.br](https://docs.fiscalapi.com.br/docs/referencia/plans-and-limits).
|
|
45
45
|
|
|
46
46
|
## Uso rápido
|
|
@@ -68,6 +68,8 @@ for ie in resp["results"]:
|
|
|
68
68
|
| `consultar_cndt(cpf=/cnpj=)` | `GET /api/consultar-cndt` | Certidão de débitos trabalhistas |
|
|
69
69
|
| `consultar_crf_fgts(cpf=/cnpj=)` | `GET /api/consultar-crf-fgts` | Regularidade do FGTS |
|
|
70
70
|
| `consultar_certidoes_todas(cpf=/cnpj=, skip_estaduais=False)` | `GET /api/certidoes-todas` | Todas as certidões em uma chamada |
|
|
71
|
+
| `consultar_simples_nacional(cnpj)` | `GET /api/consultar-simples-nacional` | Situação no Simples Nacional e SIMEI |
|
|
72
|
+
| `consultar_nfse(chave, danfse=False)` | `GET /api/consultar-nfse` | NFS-e (padrão nacional) por chave, sem certificado |
|
|
71
73
|
| `consultar_nfe_xml(chave, certificado=, senha=, manifestar=True)` | `POST /api/consultar-nfe-xml` | XML completo da NF-e |
|
|
72
74
|
| `consultar_sigef(cpf=/cnpj=)` | `GET /api/consultar-sigef` | Parcelas certificadas no SIGEF/INCRA |
|
|
73
75
|
| `consultar_sigef_parcela(uuid, force_fresh=False)` | `GET /api/consultar-sigef-parcela` | Uma parcela com polígono, vértices e confrontantes |
|
|
@@ -99,6 +101,25 @@ print(empresa["result"]["razao_social"], empresa["result"]["situacao_cadastral"]
|
|
|
99
101
|
api.consultar_cnpj("12345678000195", force_fresh=True)
|
|
100
102
|
```
|
|
101
103
|
|
|
104
|
+
### Simples Nacional
|
|
105
|
+
|
|
106
|
+
```python
|
|
107
|
+
r = api.consultar_simples_nacional("11222333000181")
|
|
108
|
+
print(r["optante_simples"], r["situacao_simei"], r["regime_regular_ibs"])
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### NFS-e por chave
|
|
112
|
+
|
|
113
|
+
```python
|
|
114
|
+
nfse = api.consultar_nfse(
|
|
115
|
+
"35503082211222333000181000000000012326100000045676",
|
|
116
|
+
danfse=True, # opcional: PDF do DANFSe em base64
|
|
117
|
+
)
|
|
118
|
+
print(nfse["emitente"]["razao_social"], nfse["tributacao_municipal"]["valor_servico"])
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Uma consulta nova leva de 30 a 60 segundos. Só a NFS-e entregue é cobrada.
|
|
122
|
+
|
|
102
123
|
### Certidões com PDF
|
|
103
124
|
|
|
104
125
|
```python
|
|
@@ -173,7 +194,7 @@ try:
|
|
|
173
194
|
except AuthenticationError:
|
|
174
195
|
... # chave ausente, inválida ou revogada (401/403)
|
|
175
196
|
except InsufficientBalanceError as e:
|
|
176
|
-
print(e.consultas_restantes) #
|
|
197
|
+
print(e.consultas_restantes) # cota grátis, plano ou saldo esgotado (402)
|
|
177
198
|
except RateLimitError as e:
|
|
178
199
|
print(e.retry_after) # limite por minuto do plano (429)
|
|
179
200
|
except BadRequestError as e:
|
|
@@ -195,6 +216,10 @@ api = FiscalAPI("sua-chave", timeout=200, max_retries=3)
|
|
|
195
216
|
## Links
|
|
196
217
|
|
|
197
218
|
- Documentação: [docs.fiscalapi.com.br](https://docs.fiscalapi.com.br)
|
|
219
|
+
- Guias (Excel, Google Sheets, n8n, Make, Power Automate, Python, Node.js, PHP): [docs.fiscalapi.com.br/docs/guias](https://docs.fiscalapi.com.br/docs/guias)
|
|
220
|
+
- Especificação OpenAPI: [docs.fiscalapi.com.br/openapi.json](https://docs.fiscalapi.com.br/openapi.json)
|
|
221
|
+
- Servidor MCP: [fiscalapi-br/fiscalapi-mcp](https://github.com/fiscalapi-br/fiscalapi-mcp)
|
|
222
|
+
- Para desenvolvedores: [fiscalapi.com.br/desenvolvedores](https://fiscalapi.com.br/desenvolvedores/)
|
|
198
223
|
- Painel: [app.fiscalapi.com.br](https://app.fiscalapi.com.br)
|
|
199
224
|
- Suporte: contato@fiscalapi.com.br
|
|
200
225
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# FiscalAPI — SDK Python
|
|
2
2
|
|
|
3
|
-
Cliente Python da [FiscalAPI](https://fiscalapi.com.br): Inscrição Estadual nos 27 estados, CNPJ, certidões (CND estadual, CND Federal, CNDT, CRF/FGTS), XML de NF-e por chave, SIGEF, CNIR e perfil do produtor rural.
|
|
3
|
+
Cliente Python da [FiscalAPI](https://fiscalapi.com.br): Inscrição Estadual nos 27 estados, CNPJ, certidões (CND estadual, CND Federal, CNDT, CRF/FGTS), XML de NF-e por chave, NFS-e por chave, Simples Nacional, SIGEF, CNIR e perfil do produtor rural.
|
|
4
4
|
|
|
5
5
|
- Zero dependências (só a biblioteca padrão).
|
|
6
6
|
- Python 3.9 ou superior.
|
|
@@ -16,7 +16,7 @@ pip install fiscalapi-br
|
|
|
16
16
|
## Antes de começar
|
|
17
17
|
|
|
18
18
|
1. Crie sua conta em [app.fiscalapi.com.br](https://app.fiscalapi.com.br) e copie a chave de API no painel.
|
|
19
|
-
2. **
|
|
19
|
+
2. **10 consultas grátis por mês, no painel e pela API**: IE em um estado e CNPJ, para conta que nunca assinou plano, com e-mail confirmado e sem recarga. Não valem para IE em todos os estados nem para CNPJ ao vivo. Depois disso, é preciso plano ou saldo: a API responde `402` (`InsufficientBalanceError`). Sem chave, `403` (`AuthenticationError`).
|
|
20
20
|
3. Planos e consumo de créditos: [docs.fiscalapi.com.br](https://docs.fiscalapi.com.br/docs/referencia/plans-and-limits).
|
|
21
21
|
|
|
22
22
|
## Uso rápido
|
|
@@ -44,6 +44,8 @@ for ie in resp["results"]:
|
|
|
44
44
|
| `consultar_cndt(cpf=/cnpj=)` | `GET /api/consultar-cndt` | Certidão de débitos trabalhistas |
|
|
45
45
|
| `consultar_crf_fgts(cpf=/cnpj=)` | `GET /api/consultar-crf-fgts` | Regularidade do FGTS |
|
|
46
46
|
| `consultar_certidoes_todas(cpf=/cnpj=, skip_estaduais=False)` | `GET /api/certidoes-todas` | Todas as certidões em uma chamada |
|
|
47
|
+
| `consultar_simples_nacional(cnpj)` | `GET /api/consultar-simples-nacional` | Situação no Simples Nacional e SIMEI |
|
|
48
|
+
| `consultar_nfse(chave, danfse=False)` | `GET /api/consultar-nfse` | NFS-e (padrão nacional) por chave, sem certificado |
|
|
47
49
|
| `consultar_nfe_xml(chave, certificado=, senha=, manifestar=True)` | `POST /api/consultar-nfe-xml` | XML completo da NF-e |
|
|
48
50
|
| `consultar_sigef(cpf=/cnpj=)` | `GET /api/consultar-sigef` | Parcelas certificadas no SIGEF/INCRA |
|
|
49
51
|
| `consultar_sigef_parcela(uuid, force_fresh=False)` | `GET /api/consultar-sigef-parcela` | Uma parcela com polígono, vértices e confrontantes |
|
|
@@ -75,6 +77,25 @@ print(empresa["result"]["razao_social"], empresa["result"]["situacao_cadastral"]
|
|
|
75
77
|
api.consultar_cnpj("12345678000195", force_fresh=True)
|
|
76
78
|
```
|
|
77
79
|
|
|
80
|
+
### Simples Nacional
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
r = api.consultar_simples_nacional("11222333000181")
|
|
84
|
+
print(r["optante_simples"], r["situacao_simei"], r["regime_regular_ibs"])
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### NFS-e por chave
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
nfse = api.consultar_nfse(
|
|
91
|
+
"35503082211222333000181000000000012326100000045676",
|
|
92
|
+
danfse=True, # opcional: PDF do DANFSe em base64
|
|
93
|
+
)
|
|
94
|
+
print(nfse["emitente"]["razao_social"], nfse["tributacao_municipal"]["valor_servico"])
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Uma consulta nova leva de 30 a 60 segundos. Só a NFS-e entregue é cobrada.
|
|
98
|
+
|
|
78
99
|
### Certidões com PDF
|
|
79
100
|
|
|
80
101
|
```python
|
|
@@ -149,7 +170,7 @@ try:
|
|
|
149
170
|
except AuthenticationError:
|
|
150
171
|
... # chave ausente, inválida ou revogada (401/403)
|
|
151
172
|
except InsufficientBalanceError as e:
|
|
152
|
-
print(e.consultas_restantes) #
|
|
173
|
+
print(e.consultas_restantes) # cota grátis, plano ou saldo esgotado (402)
|
|
153
174
|
except RateLimitError as e:
|
|
154
175
|
print(e.retry_after) # limite por minuto do plano (429)
|
|
155
176
|
except BadRequestError as e:
|
|
@@ -171,6 +192,10 @@ api = FiscalAPI("sua-chave", timeout=200, max_retries=3)
|
|
|
171
192
|
## Links
|
|
172
193
|
|
|
173
194
|
- Documentação: [docs.fiscalapi.com.br](https://docs.fiscalapi.com.br)
|
|
195
|
+
- Guias (Excel, Google Sheets, n8n, Make, Power Automate, Python, Node.js, PHP): [docs.fiscalapi.com.br/docs/guias](https://docs.fiscalapi.com.br/docs/guias)
|
|
196
|
+
- Especificação OpenAPI: [docs.fiscalapi.com.br/openapi.json](https://docs.fiscalapi.com.br/openapi.json)
|
|
197
|
+
- Servidor MCP: [fiscalapi-br/fiscalapi-mcp](https://github.com/fiscalapi-br/fiscalapi-mcp)
|
|
198
|
+
- Para desenvolvedores: [fiscalapi.com.br/desenvolvedores](https://fiscalapi.com.br/desenvolvedores/)
|
|
174
199
|
- Painel: [app.fiscalapi.com.br](https://app.fiscalapi.com.br)
|
|
175
200
|
- Suporte: contato@fiscalapi.com.br
|
|
176
201
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "fiscalapi-br"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.2.0"
|
|
8
8
|
description = "SDK da FiscalAPI (Brasil): Inscrição Estadual, CNPJ, certidões, NF-e, SIGEF, CNIR e perfil do produtor rural."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -31,8 +31,8 @@ dependencies = []
|
|
|
31
31
|
[project.urls]
|
|
32
32
|
Homepage = "https://fiscalapi.com.br"
|
|
33
33
|
Documentation = "https://docs.fiscalapi.com.br"
|
|
34
|
-
Source = "https://github.com/
|
|
35
|
-
Issues = "https://github.com/
|
|
34
|
+
Source = "https://github.com/fiscalapi-br/fiscalapi-python"
|
|
35
|
+
Issues = "https://github.com/fiscalapi-br/fiscalapi-python/issues"
|
|
36
36
|
|
|
37
37
|
[tool.hatch.build.targets.wheel]
|
|
38
38
|
packages = ["src/fiscalapi_br"]
|
|
@@ -31,9 +31,11 @@ from .types import (
|
|
|
31
31
|
ConsultaIEResponse,
|
|
32
32
|
ConsultaIETodosResponse,
|
|
33
33
|
NfeXmlResponse,
|
|
34
|
+
NfseResponse,
|
|
34
35
|
PerfilProdutorResponse,
|
|
35
36
|
SigefParcelaResponse,
|
|
36
37
|
SigefResponse,
|
|
38
|
+
SimplesNacionalResponse,
|
|
37
39
|
)
|
|
38
40
|
|
|
39
41
|
DEFAULT_BASE_URL = "https://api.fiscalapi.com.br"
|
|
@@ -139,6 +141,15 @@ class FiscalAPI:
|
|
|
139
141
|
params = {"cnpj": cnpj, "force_fresh": force_fresh or None}
|
|
140
142
|
return cast(CNPJResponse, self._get("/api/consultar-cnpj", params))
|
|
141
143
|
|
|
144
|
+
def consultar_simples_nacional(self, cnpj: str) -> SimplesNacionalResponse:
|
|
145
|
+
"""Situação no Simples Nacional e SIMEI (``GET /api/consultar-simples-nacional``)."""
|
|
146
|
+
if not cnpj or not cnpj.strip():
|
|
147
|
+
raise ValueError("Informe o CNPJ.")
|
|
148
|
+
return cast(
|
|
149
|
+
SimplesNacionalResponse,
|
|
150
|
+
self._get("/api/consultar-simples-nacional", {"cnpj": cnpj.strip()}),
|
|
151
|
+
)
|
|
152
|
+
|
|
142
153
|
# ----------------------------------------------------------- Certidões
|
|
143
154
|
|
|
144
155
|
def consultar_cnd(
|
|
@@ -230,6 +241,18 @@ class FiscalAPI:
|
|
|
230
241
|
# POST não é repetido em 5xx: a manifestação pode já ter sido registrada.
|
|
231
242
|
return cast(NfeXmlResponse, self._request("POST", "/api/consultar-nfe-xml", json_body=body))
|
|
232
243
|
|
|
244
|
+
def consultar_nfse(self, chave: str, *, danfse: bool = False) -> NfseResponse:
|
|
245
|
+
"""NFS-e (padrão nacional) pela chave de acesso, sem certificado (``GET /api/consultar-nfse``).
|
|
246
|
+
|
|
247
|
+
``danfse=True`` inclui o PDF do DANFSe em base64. Uma consulta nova
|
|
248
|
+
pode levar de 30 a 60 segundos.
|
|
249
|
+
"""
|
|
250
|
+
digitos = "".join(c for c in (chave or "") if c.isdigit())
|
|
251
|
+
if not digitos:
|
|
252
|
+
raise ValueError("Informe a chave de acesso.")
|
|
253
|
+
params = {"chave": digitos, "danfse": danfse or None}
|
|
254
|
+
return cast(NfseResponse, self._get("/api/consultar-nfse", params))
|
|
255
|
+
|
|
233
256
|
# ------------------------------------------------------- Imóvel rural
|
|
234
257
|
|
|
235
258
|
def consultar_sigef(
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.0"
|
|
@@ -248,3 +248,125 @@ class PerfilProdutorResponse(TypedDict, total=False):
|
|
|
248
248
|
cnd_estaduais: Optional[CNDTodosResponse]
|
|
249
249
|
certidoes_federais: List[CertidaoFederalResponse]
|
|
250
250
|
cnir: Optional[CnirResponse]
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
class SimplesNacionalEventoFuturo(TypedDict, total=False):
|
|
254
|
+
regime: str
|
|
255
|
+
descricao: str
|
|
256
|
+
data_efeito: str
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
class SimplesNacionalPeriodoAnterior(TypedDict, total=False):
|
|
260
|
+
data_inicial: str
|
|
261
|
+
data_final: str
|
|
262
|
+
detalhamento: str
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
class SimplesNacionalMaisInfo(TypedDict, total=False):
|
|
266
|
+
opcoes_periodos_anteriores: str
|
|
267
|
+
opcoes_periodos_anteriores_lista: List[SimplesNacionalPeriodoAnterior]
|
|
268
|
+
enquadramentos_simei_periodos_anteriores: str
|
|
269
|
+
enquadramentos_simei_periodos_anteriores_lista: List[SimplesNacionalPeriodoAnterior]
|
|
270
|
+
eventos_futuros_simples: str
|
|
271
|
+
eventos_futuros_simei: str
|
|
272
|
+
mei_tac: str
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
class SimplesNacionalResponse(TypedDict, total=False):
|
|
276
|
+
request_id: str
|
|
277
|
+
cnpj: str
|
|
278
|
+
cnpj_matriz: str # para filiais, a situação é a da matriz
|
|
279
|
+
nome_empresarial: str
|
|
280
|
+
data_consulta: str
|
|
281
|
+
situacao_simples: str
|
|
282
|
+
optante_simples: bool
|
|
283
|
+
data_opcao_simples: Optional[str]
|
|
284
|
+
situacao_simei: str
|
|
285
|
+
enquadrado_simei: bool
|
|
286
|
+
regime_regular_ibs: str
|
|
287
|
+
regime_regular_cbs: str
|
|
288
|
+
eventos_futuros: List[SimplesNacionalEventoFuturo]
|
|
289
|
+
mais_info: Optional[SimplesNacionalMaisInfo]
|
|
290
|
+
cached: bool
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
class NfseEndereco(TypedDict, total=False):
|
|
294
|
+
logradouro: Optional[str]
|
|
295
|
+
numero: Optional[str]
|
|
296
|
+
complemento: Optional[str]
|
|
297
|
+
bairro: Optional[str]
|
|
298
|
+
cep: Optional[str]
|
|
299
|
+
municipio: Optional[str]
|
|
300
|
+
uf: Optional[str]
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
class NfseEmitente(TypedDict, total=False):
|
|
304
|
+
razao_social: Optional[str]
|
|
305
|
+
cpf_cnpj: Optional[str]
|
|
306
|
+
inscricao_municipal: Optional[str]
|
|
307
|
+
situacao_simples_nacional: Optional[str]
|
|
308
|
+
regime_especial_tributacao: Optional[str]
|
|
309
|
+
endereco: Optional[NfseEndereco]
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
class NfsePessoa(TypedDict, total=False):
|
|
313
|
+
cpf_cnpj: Optional[str]
|
|
314
|
+
inscricao_municipal: Optional[str]
|
|
315
|
+
nome: Optional[str]
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
class NfseServico(TypedDict, total=False):
|
|
319
|
+
pais: Optional[str]
|
|
320
|
+
municipio: Optional[str]
|
|
321
|
+
codigo_tributacao_nacional: Optional[str]
|
|
322
|
+
descricao_codigo: Optional[str]
|
|
323
|
+
item_nbs: Optional[str]
|
|
324
|
+
descricao: Optional[str]
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
class NfseTributacaoMunicipal(TypedDict, total=False):
|
|
328
|
+
tributacao_issqn: Optional[str]
|
|
329
|
+
municipio_incidencia: Optional[str]
|
|
330
|
+
valor_servico: Optional[float]
|
|
331
|
+
desconto_incondicionado: Optional[float]
|
|
332
|
+
deducoes: Optional[float]
|
|
333
|
+
beneficio_municipal: Optional[float]
|
|
334
|
+
base_calculo: Optional[float]
|
|
335
|
+
aliquota: Optional[float] # percentual (2.5 = 2,5%)
|
|
336
|
+
valor_issqn: Optional[float]
|
|
337
|
+
retencao: Optional[str]
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
class NfseTributacaoFederal(TypedDict, total=False):
|
|
341
|
+
situacao_pis_cofins: Optional[str]
|
|
342
|
+
base_calculo_pis_cofins: Optional[float]
|
|
343
|
+
aliquota_pis: Optional[float]
|
|
344
|
+
valor_pis: Optional[float]
|
|
345
|
+
aliquota_cofins: Optional[float]
|
|
346
|
+
valor_cofins: Optional[float]
|
|
347
|
+
irrf: Optional[float]
|
|
348
|
+
contribuicoes_sociais_retidas: Optional[float]
|
|
349
|
+
contribuicao_previdenciaria_retida: Optional[float]
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
class NfseResponse(TypedDict, total=False):
|
|
353
|
+
request_id: str
|
|
354
|
+
chave: str
|
|
355
|
+
numero_nfse: Optional[str]
|
|
356
|
+
codigo_municipio_emissor: Optional[str]
|
|
357
|
+
data_geracao: Optional[str]
|
|
358
|
+
versao: Optional[str]
|
|
359
|
+
dps: Optional[dict]
|
|
360
|
+
situacao: Optional[dict] # codigo/descricao; não indica cancelamento
|
|
361
|
+
emitente: Optional[NfseEmitente]
|
|
362
|
+
tomador: Optional[NfsePessoa]
|
|
363
|
+
intermediario: Optional[NfsePessoa]
|
|
364
|
+
servico: Optional[NfseServico]
|
|
365
|
+
tributacao_municipal: Optional[NfseTributacaoMunicipal]
|
|
366
|
+
tributacao_federal: Optional[NfseTributacaoFederal]
|
|
367
|
+
total_tributos: List[dict]
|
|
368
|
+
informacoes_complementares: Optional[str]
|
|
369
|
+
ambiente_gerador: Optional[str]
|
|
370
|
+
cached: bool
|
|
371
|
+
danfse_pdf_base64: Optional[str] # só com danfse=True
|
|
372
|
+
aviso: Optional[str]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|