rnfse 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +25 -0
- data/.rspec +1 -0
- data/.travis.yml +14 -0
- data/CHANGELOG.md +0 -0
- data/Gemfile +3 -0
- data/Guardfile +15 -0
- data/LICENSE.md +41 -0
- data/Procfile +1 -0
- data/README.md +59 -0
- data/Rakefile +12 -0
- data/lib/provedores.yml +11 -0
- data/lib/rnfse/api/abrasf_1_0/definitions.json +374 -0
- data/lib/rnfse/api/abrasf_1_0/recepcionar_lote_rps.json +46 -0
- data/lib/rnfse/api/abrasf_1_0.rb +55 -0
- data/lib/rnfse/api/iss_net_1_0.rb +6 -0
- data/lib/rnfse/api.rb +101 -0
- data/lib/rnfse/configuration.rb +18 -0
- data/lib/rnfse/core.rb +9 -0
- data/lib/rnfse/hash.rb +148 -0
- data/lib/rnfse/string.rb +36 -0
- data/lib/rnfse/version.rb +3 -0
- data/lib/rnfse/xml_builder/abrasf_1_0.rb +95 -0
- data/lib/rnfse/xml_builder/iss_net_1_0.rb +70 -0
- data/lib/rnfse/xml_builder.rb +10 -0
- data/lib/rnfse.rb +22 -0
- data/rnfse.gemspec +60 -0
- data/spec/api/abrasf_1_0/recepcionar_lote_rps_json_spec.rb +123 -0
- data/spec/api/abrasf_1_0_spec.rb +26 -0
- data/spec/api/iss_net_1_0_spec.rb +99 -0
- data/spec/api_spec.rb +65 -0
- data/spec/core_spec.rb +35 -0
- data/spec/fixtures/abrasf_1_0/enviar_lote_rps_envio.xml +47 -0
- data/spec/fixtures/abrasf_1_0/nfse.xsd +771 -0
- data/spec/fixtures/certificate.pem +18 -0
- data/spec/fixtures/iss_net_1_0/enviar_lote_rps_envio.xml +75 -0
- data/spec/fixtures/key.pem +15 -0
- data/spec/fixtures/vcr_cassettes/iss_net_1_0_recepcionar_lote_rps.yml +214 -0
- data/spec/hash_spec.rb +205 -0
- data/spec/spec_helper.rb +29 -0
- data/spec/string_spec.rb +38 -0
- data/spec/support/.keep +0 -0
- data/spec/version_spec.rb +5 -0
- data/spec/xml_builder/abrasf_1_0_spec.rb +63 -0
- data/spec/xml_builder/iss_net_1_0_spec.rb +86 -0
- data/spec/xml_builder_spec.rb +14 -0
- metadata +433 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 76d106a8b27e0d7d017eb9e661333ebe1c8c4735
|
4
|
+
data.tar.gz: 28d26e8e0c33bd7c9b6d6e54b20114bae13960ac
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7f60b4ad9f17bbcf652d1e0f0b5420444d56627a9ddd77d1036fe6cfdcd4a00ff00dd965115ce8cab1d95e6dbfb70acc19615084fdb2a2a8aaeb8da813788114
|
7
|
+
data.tar.gz: 43e15ce520a0231e2e3a74c2097022d4dcbf00f190edd7456d4308afae1d4502077cdfcd223e73ba0b2f9d5413ba80c836bc995192411689a4c25127e1135eac
|
data/.gitignore
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# Because this is a gem, ignore Gemfile.lock:
|
2
|
+
|
3
|
+
Gemfile.lock
|
4
|
+
|
5
|
+
# And because this is Ruby, ignore the following
|
6
|
+
# (source: https://github.com/github/gitignore/blob/master/Ruby.gitignore):
|
7
|
+
|
8
|
+
*.gem
|
9
|
+
*.rbc
|
10
|
+
.bundle
|
11
|
+
.config
|
12
|
+
coverage
|
13
|
+
InstalledFiles
|
14
|
+
lib/bundler/man
|
15
|
+
pkg
|
16
|
+
rdoc
|
17
|
+
spec/reports
|
18
|
+
test/tmp
|
19
|
+
test/version_tmp
|
20
|
+
tmp
|
21
|
+
|
22
|
+
# YARD artifacts
|
23
|
+
.yardoc
|
24
|
+
_yardoc
|
25
|
+
doc/
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/.travis.yml
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 1.9.3
|
4
|
+
- 2.0
|
5
|
+
- 2.1
|
6
|
+
- ruby-head
|
7
|
+
matrix:
|
8
|
+
fast_finish: true
|
9
|
+
allow_failures:
|
10
|
+
- rvm: ruby-head
|
11
|
+
addons:
|
12
|
+
code_climate:
|
13
|
+
repo_token:
|
14
|
+
secure: "vzzNVwWPm/BzVPjImSALhXSaaqExZRwZ1ePw8v9/lncbBSQoTGdthAjbirOO14rP2RTvupRnvoG3XK8FrY7Ct5+WCtEEuWNNB6f5u6gAI/+KKMQN69oIE5pLienB2yhTvcvghmNVf0aOVVh4H9RWeJD3Bv4GxnSkmNZNKNWfki0="
|
data/CHANGELOG.md
ADDED
File without changes
|
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
guard :rspec do
|
2
|
+
watch(%r{^spec/.+_spec\.rb$})
|
3
|
+
watch(%r{^spec/support/(.+)\.rb$}) { 'spec' }
|
4
|
+
watch('spec/spec_helper.rb') { 'spec' }
|
5
|
+
watch(%r{^lib/rnfse/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
6
|
+
watch(%r{^lib/rnfse/api/(.+)\.rb$}) { |m| "spec/api/#{m[1]}_spec.rb" }
|
7
|
+
watch(%r{^lib/rnfse/api/(.+)/(.+)\.rb$}) { |m| "spec/api/#{m[1]}/#{m[2]}_spec.rb" }
|
8
|
+
watch(%r{^lib/rnfse/xml_builder/(.+)/(.+)\.rb$}) { |m| "spec/xml_builder/#{m[1]}/#{m[2]}_spec.rb" }
|
9
|
+
watch(%r{^lib/rnfse/api/(.+)/(.+)\.json$}) { |m| "spec/api/#{m[1]}/#{m[2]}_json_spec.rb" }
|
10
|
+
end
|
11
|
+
|
12
|
+
guard :bundler do
|
13
|
+
watch(/^.+\.gemspec/)
|
14
|
+
watch(/^Gemfile/)
|
15
|
+
end
|
data/LICENSE.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
DUAL LICENSED: GPL-3 and MIT
|
2
|
+
====
|
3
|
+
|
4
|
+
## The GNU Public License, Version 3 (GPL-3)
|
5
|
+
|
6
|
+
Copyright (c) Renan Mendes Carvalho <aitherios@gmail.com>
|
7
|
+
|
8
|
+
This program is free software: you can redistribute it and/or modify it under
|
9
|
+
the terms of the GNU General Public License as published by the
|
10
|
+
Free Software Foundation, either version 3 of the License, or (at your option)
|
11
|
+
any later version.
|
12
|
+
|
13
|
+
This program is distributed in the hope that it will be useful, but
|
14
|
+
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE.
|
16
|
+
See the GNU General Public License for more details.
|
17
|
+
|
18
|
+
You should have received a copy of the GNU General Public License along with
|
19
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
20
|
+
|
21
|
+
|
22
|
+
## The MIT License (MIT)
|
23
|
+
|
24
|
+
Copyright (c) Renan Mendes Carvalho <aitherios@gmail.com>
|
25
|
+
|
26
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
27
|
+
this software and associated documentation files (the "Software"), to deal in
|
28
|
+
the Software without restriction, including without limitation the rights to
|
29
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
30
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
31
|
+
subject to the following conditions:
|
32
|
+
|
33
|
+
The above copyright notice and this permission notice shall be included in all
|
34
|
+
copies or substantial portions of the Software.
|
35
|
+
|
36
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
37
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
38
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
39
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
40
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
41
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Procfile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
guard: bundle exec guard start
|
data/README.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# rnfse
|
2
|
+
[![Gem Version](http://img.shields.io/gem/v/rnfse.svg?style=flat)](http://rubygems.org/gems/rnfse)
|
3
|
+
[![Dependency Status](https://img.shields.io/gemnasium/aitherios/rnfse.svg?style=flat)](https://gemnasium.com/aitherios/rnfse)
|
4
|
+
[![Build Status](https://img.shields.io/travis/aitherios/rnfse.svg?style=flat)](https://travis-ci.org/aitherios/rnfse)
|
5
|
+
[![Coverage](https://img.shields.io/codeclimate/coverage/github/aitherios/rnfse.svg?style=flat)](https://codeclimate.com/github/aitherios/rnfse)
|
6
|
+
|
7
|
+
Biblioteca para integração com as várias implementações
|
8
|
+
municipais de Nota Fiscal de Serviços eletrônica (NFS-e) que utilizam uma
|
9
|
+
das versões ou variações dos padrões
|
10
|
+
[ABRASF](http://www.abrasf.org.br/paginas_multiplas_detalhes.php?cod_pagina=1).
|
11
|
+
|
12
|
+
> O grande problema do nosso sistema democrático é que permite fazer coisas nada democráticas democraticamente.
|
13
|
+
> [José Saramago](http://pt.wikipedia.org/wiki/Jos%C3%A9_Saramago)
|
14
|
+
|
15
|
+
## Instalação
|
16
|
+
|
17
|
+
Usando o rubygems.org rode:
|
18
|
+
```
|
19
|
+
$ gem install rnfse
|
20
|
+
```
|
21
|
+
**Ou** usando o repositório git rode:
|
22
|
+
```
|
23
|
+
$ gem build rnfse.gemspec
|
24
|
+
$ gem install rnfse-X.X.X.gem
|
25
|
+
```
|
26
|
+
**Ou** usando o bundler, adicione o Rnfse ao seu Gemfile:
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
gem 'rnfse'
|
30
|
+
```
|
31
|
+
|
32
|
+
E rode `$ bundle install`
|
33
|
+
|
34
|
+
## Uso
|
35
|
+
|
36
|
+
## Limitações e problemas conhecidos
|
37
|
+
|
38
|
+
Esta é uma lista de limitações e problemas conhecidos. São questões que não tem
|
39
|
+
plano imediato de resolução. Talvez porque a funcionalidade nunca foi
|
40
|
+
necessária ou nenhum pull request tenha sido enviado. (dica!)
|
41
|
+
|
42
|
+
- Suporte para o JRuby e Rubinius (problema com a dependência nokogiri-xmlsec1).
|
43
|
+
- Só foi testada com municípios inscritos no [ISS.net](http://www.issnetonline.com.br/portaliss/) que utilizam o padrão [ABRASF v1](http://www.abrasf.org.br/paginas_multiplas_detalhes.php?cod_pagina=1).
|
44
|
+
|
45
|
+
## Contribuindo
|
46
|
+
|
47
|
+
Antes do tudo, **obrigado** por querer ajudar!
|
48
|
+
|
49
|
+
1. [Faça um fork do projeto](https://help.github.com/articles/fork-a-repo).
|
50
|
+
2. Crie um branch para a funcionalidade - `git checkout -b mais_magia`
|
51
|
+
3. Adicione testes e faça suas mudanças!
|
52
|
+
4. Confira se os testes passam - `bundle exec rake`
|
53
|
+
5. Faça um commit das suas mudanças - `git commit -am "Adicionei mais magia"`
|
54
|
+
6. Faça um push do branch para o Github - `git push origin mais_magia`
|
55
|
+
7. Envie um [pull request](https://help.github.com/articles/using-pull-requests)! :heart: :sparkling_heart: :heart:
|
56
|
+
|
57
|
+
## Licença
|
58
|
+
|
59
|
+
Duplamente licenciado por GPL-3 e MIT. Veja [LICENSE.md](LICENSE.md) para mais detalhes.
|
data/Rakefile
ADDED
data/lib/provedores.yml
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
producao:
|
2
|
+
iss_net:
|
3
|
+
namespace: http://www.issnetonline.com.br/webservice/nfd
|
4
|
+
endpoint: http://www.issnetonline.com.br/webserviceabrasf/%{municipio}/servicos.asmx
|
5
|
+
api: abrasf_1_0
|
6
|
+
|
7
|
+
homologacao:
|
8
|
+
iss_net:
|
9
|
+
namespace: http://www.issnetonline.com.br/webservice/nfd
|
10
|
+
endpoint: http://www.issnetonline.com.br/webserviceabrasf/homologacao/servicos.asmx
|
11
|
+
api: abrasf_1_0
|
@@ -0,0 +1,374 @@
|
|
1
|
+
{
|
2
|
+
"numeroNfse": {
|
3
|
+
"description": "Número da Nota Fiscal de Serviço Eletrônica, formado pelo ano com 04 (quatro) dígitos e um número seqüencial com 11 posições – Formato AAAANNNNNNNNNNN.",
|
4
|
+
"type": "integer",
|
5
|
+
"minimum": 199000000000000,
|
6
|
+
"maximum": 220099999999999
|
7
|
+
},
|
8
|
+
"codigoVerificacao": {
|
9
|
+
"description": "Código de verificação do número da nota",
|
10
|
+
"type": "string",
|
11
|
+
"maxLength": 9
|
12
|
+
},
|
13
|
+
"statusRps": {
|
14
|
+
"description": "Código de status do RPS 1 – Normal ; 2 – Cancelado",
|
15
|
+
"type": "integer",
|
16
|
+
"minimum": 1,
|
17
|
+
"maximum": 2
|
18
|
+
},
|
19
|
+
"statusNfse": {
|
20
|
+
"description": "Código de status da NFS-e 1 – Normal ; 2 – Cancelado",
|
21
|
+
"type": "integer",
|
22
|
+
"minimum": 1,
|
23
|
+
"maximum": 2
|
24
|
+
},
|
25
|
+
"naturezaOperacao": {
|
26
|
+
"description": "Código de natureza da operação 1 – Tributação no município ; 2 - Tributação fora do município ; 3 - Isenção ; 4 - Imune ; 5 – Exigibilidade suspensa por decisão judicial ; 6 – Exigibilidade suspensa por procedimento administrativo ",
|
27
|
+
"type": "integer",
|
28
|
+
"minimum": 1,
|
29
|
+
"maximum": 6
|
30
|
+
},
|
31
|
+
"regimeEspecialTributacao": {
|
32
|
+
"description": "Código de natureza da operação 1 – Tributação no município ; 2 - Tributação fora do município ; 3 - Isenção ; 4 - Imune ; 5 – Exigibilidade suspensa por decisão judicial ; 6 – Exigibilidade suspensa por procedimento administrativo ",
|
33
|
+
"type": "integer",
|
34
|
+
"minimum": 1,
|
35
|
+
"maximum": 6
|
36
|
+
},
|
37
|
+
"simNao": {
|
38
|
+
"type": "boolean"
|
39
|
+
},
|
40
|
+
"quantidadeRps": {
|
41
|
+
"description": "Quantidade de RPS do Lote",
|
42
|
+
"type": "integer",
|
43
|
+
"minimum": 1,
|
44
|
+
"maximum": 9999
|
45
|
+
},
|
46
|
+
"numeroRps": {
|
47
|
+
"description": "Número do RPS",
|
48
|
+
"type": "integer",
|
49
|
+
"minimum": 1,
|
50
|
+
"maximum": 999999999999999
|
51
|
+
},
|
52
|
+
"serieRps": {
|
53
|
+
"description": "Número de série do RPS",
|
54
|
+
"type": "string",
|
55
|
+
"maxLength": 5
|
56
|
+
},
|
57
|
+
"tipoRps": {
|
58
|
+
"description": "Código de tipo de RPS 1 - RPS ; 2 – Nota Fiscal Conjugada (Mista) ; 3 – Cupom",
|
59
|
+
"type": "integer",
|
60
|
+
"minimum": 1,
|
61
|
+
"maximum": 3
|
62
|
+
},
|
63
|
+
"outrasInformacoes": {
|
64
|
+
"description": "Informações adicionais ao documento",
|
65
|
+
"type": "string",
|
66
|
+
"maxLength": 255
|
67
|
+
},
|
68
|
+
"valor": {
|
69
|
+
"description": "Valor monetário. Formato: 0.00 (ponto separando casa decimal) Ex: 1.234,56 = 1234.56 ; 1.000,00 = 1000.00 ; 1.000,00 = 1000",
|
70
|
+
"type": "number",
|
71
|
+
"minimum": 0,
|
72
|
+
"maximum": 9999999999999.99
|
73
|
+
},
|
74
|
+
"itemListaServico": {
|
75
|
+
"description": "Código de item da lista de serviço",
|
76
|
+
"type": "string",
|
77
|
+
"maxLength": 5
|
78
|
+
},
|
79
|
+
"codigoCnae": {
|
80
|
+
"description": "Código CNAE. Formato: 0000-0/00",
|
81
|
+
"type": "string",
|
82
|
+
"pattern": "^[0-9]{4}-[0-9]{1}/[0-9]{2}$"
|
83
|
+
},
|
84
|
+
"codigoTributacao": {
|
85
|
+
"description": "Código de Tributação",
|
86
|
+
"type": "string",
|
87
|
+
"maxLength": 20
|
88
|
+
},
|
89
|
+
"aliquota": {
|
90
|
+
"description": "Alíquota. Valor percentual. Formato: 0.0000 Ex: 1% = 0.01 ; 25,5% = 0.255 ; 100% = 1.0000 ou 1",
|
91
|
+
"type": "numeric",
|
92
|
+
"minimum": 0,
|
93
|
+
"maximum": 1
|
94
|
+
},
|
95
|
+
"discriminacao": {
|
96
|
+
"description": "Discriminação do conteúdo da NFS-e",
|
97
|
+
"type": "string",
|
98
|
+
"maxLength": 2000
|
99
|
+
},
|
100
|
+
"codigoMunicipioIbge": {
|
101
|
+
"description": "Código de identificação do município conforme tabela do IBGE",
|
102
|
+
"type": "integer",
|
103
|
+
"minimum": 1,
|
104
|
+
"maximum": 9999999
|
105
|
+
},
|
106
|
+
"inscricaoMunicipal": {
|
107
|
+
"description": "Número de inscrição municipal",
|
108
|
+
"type": "string",
|
109
|
+
"maxLength": 15
|
110
|
+
},
|
111
|
+
"razaoSocial": {
|
112
|
+
"description": "Razão Social do contribuinte",
|
113
|
+
"type": "string",
|
114
|
+
"maxLength": 115
|
115
|
+
},
|
116
|
+
"nomeFantasia": {
|
117
|
+
"description": "Nome fantasia",
|
118
|
+
"type": "string",
|
119
|
+
"maxLength": 60
|
120
|
+
},
|
121
|
+
"cnpj": {
|
122
|
+
"description": "Número CNPJ. Formato: 00.000.000/0000-00",
|
123
|
+
"type": "string",
|
124
|
+
"pattern": "^[0-9]{2}\.[0-9]{3}\.[0-9]{3}/[0-9]{4}-[0-9]{2}$"
|
125
|
+
},
|
126
|
+
"endereco": {
|
127
|
+
"description": "Endereço",
|
128
|
+
"type": "string",
|
129
|
+
"maxLength": 125
|
130
|
+
},
|
131
|
+
"numeroEndereco": {
|
132
|
+
"description": "Número do endereço",
|
133
|
+
"type": "string",
|
134
|
+
"maxLength": 10
|
135
|
+
},
|
136
|
+
"complementoEndereco": {
|
137
|
+
"description": "Número do endereço",
|
138
|
+
"type": "string",
|
139
|
+
"maxLength": 60
|
140
|
+
},
|
141
|
+
"bairro": {
|
142
|
+
"description": "Bairro",
|
143
|
+
"type": "string",
|
144
|
+
"maxLength": 60
|
145
|
+
},
|
146
|
+
"uf": {
|
147
|
+
"description": "Sigla da unidade federativa",
|
148
|
+
"type": "string",
|
149
|
+
"enum": ["AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS", "MG", "PA", "PB", "PR", "PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SP", "SE", "TO"]
|
150
|
+
},
|
151
|
+
"cep": {
|
152
|
+
"description": "Número do CEP. Formato: 00000-000",
|
153
|
+
"type": "string",
|
154
|
+
"pattern": "^[0-9]{5}-[0-9]{3}$"
|
155
|
+
},
|
156
|
+
"email": {
|
157
|
+
"description": "E-mail",
|
158
|
+
"type": "string",
|
159
|
+
"format": "email"
|
160
|
+
},
|
161
|
+
"telefone": {
|
162
|
+
"description": "Telefone",
|
163
|
+
"type": "string",
|
164
|
+
"maxLength": 11
|
165
|
+
},
|
166
|
+
"cpf": {
|
167
|
+
"description": "Número de CPF. Formato: 000.000.000-00",
|
168
|
+
"type": "string",
|
169
|
+
"pattern": "^[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}$"
|
170
|
+
},
|
171
|
+
"indicacaoCpfCnpj": {
|
172
|
+
"description": "Indicador de uso de CPF ou CNPJ 1 – CPF ; 2 – CNPJ ; 3 – Não Informado",
|
173
|
+
"type": "integer",
|
174
|
+
"minimum": 1,
|
175
|
+
"maximum": 3
|
176
|
+
},
|
177
|
+
"codigoObra": {
|
178
|
+
"description": "Código de Obra",
|
179
|
+
"type": "string",
|
180
|
+
"maxLength": 15
|
181
|
+
},
|
182
|
+
"art": {
|
183
|
+
"description": "Código ART",
|
184
|
+
"type": "string",
|
185
|
+
"maxLength": 15
|
186
|
+
},
|
187
|
+
"numeroLote": {
|
188
|
+
"description": "Número do Lote de RPS",
|
189
|
+
"type": "integer",
|
190
|
+
"minimum": 1,
|
191
|
+
"maximum": 999999999999999
|
192
|
+
},
|
193
|
+
"numeroProtocolo": {
|
194
|
+
"description": "Número do protocolo de recebimento do RPS",
|
195
|
+
"maxLength": 50
|
196
|
+
},
|
197
|
+
"situacaoLoteRps": {
|
198
|
+
"description": "Código de situação de lote de RPS 1 – Não Recebido ; 2 – Não Processado ; 3 – Processado com Erro ; 4 – Processado com Sucesso",
|
199
|
+
"type": "integer",
|
200
|
+
"minimum": 1,
|
201
|
+
"maximum": 4
|
202
|
+
},
|
203
|
+
"codigoMensagemAlerta": {
|
204
|
+
"description": "Código de mensagem de retorno de serviço",
|
205
|
+
"type": "string",
|
206
|
+
"maxLength": 4
|
207
|
+
},
|
208
|
+
"descricaoMensagemAlerta": {
|
209
|
+
"description": "Descrição da mensagem de retorno de serviço",
|
210
|
+
"type": "string",
|
211
|
+
"maxLength": 200
|
212
|
+
},
|
213
|
+
"codigoCancelamentoNfse": {
|
214
|
+
"description": "Código de cancelamento com base na tabela de Erros e alertas",
|
215
|
+
"type": "string",
|
216
|
+
"maxLength": 4
|
217
|
+
},
|
218
|
+
"idTag": {
|
219
|
+
"description": "Atributo de identificação da tag a ser assinada no documento XML",
|
220
|
+
"type": "string",
|
221
|
+
"maxLength": 255
|
222
|
+
},
|
223
|
+
"identificacaoRps": {
|
224
|
+
"description": "Dados de identificação do RPS",
|
225
|
+
"type": "object",
|
226
|
+
"properties": {
|
227
|
+
"numero": { "$ref": "#/numeroRps" },
|
228
|
+
"serie": { "$ref": "#/serieRps" },
|
229
|
+
"tipo": { "$ref": "#/tipoRps" }
|
230
|
+
},
|
231
|
+
"required": ["numero", "serie", "tipo"],
|
232
|
+
"additionalProperties": false
|
233
|
+
},
|
234
|
+
"dadosServico": {
|
235
|
+
"description": "Representa dados que compõe o serviço prestado",
|
236
|
+
"type": "object",
|
237
|
+
"properties": {
|
238
|
+
"valores": {
|
239
|
+
"type": "object",
|
240
|
+
"properties": {
|
241
|
+
"valorServicos": { "$ref": "#/valor" },
|
242
|
+
"valorDeducoes": { "$ref": "#/valor" },
|
243
|
+
"valorPis": { "$ref": "#/valor" },
|
244
|
+
"valorCofins": { "$ref": "#/valor" },
|
245
|
+
"valorInss": { "$ref": "#/valor" },
|
246
|
+
"valorIr": { "$ref": "#/valor" },
|
247
|
+
"valorCsll": { "$ref": "#/valor" },
|
248
|
+
"issRetido": { "type": "boolean" },
|
249
|
+
"valorIss": { "$ref": "#/valor" },
|
250
|
+
"outrasRetencoes": { "$ref": "#/valor" },
|
251
|
+
"baseCalculo": {
|
252
|
+
"description": "(Valor dos serviços - Valor das deduções - descontos incondicionados)",
|
253
|
+
"$ref": "#/valor"
|
254
|
+
},
|
255
|
+
"aliquota": { "$ref": "#/aliquota" },
|
256
|
+
"valorLiquidoNfse": {
|
257
|
+
"description": "(ValorServicos - ValorPIS - ValorCOFINS - ValorINSS - ValorIR - ValorCSLL - OutrasRetençoes - ValorISSRetido - DescontoIncondicionado - DescontoCondicionado)",
|
258
|
+
"$ref": "#/valor"
|
259
|
+
},
|
260
|
+
"valorIssRetido": { "$ref": "#/valor" },
|
261
|
+
"descontoCondicionado": { "$ref": "#/valor" },
|
262
|
+
"descontoIncondicionado": { "$ref": "#/valor" }
|
263
|
+
},
|
264
|
+
"required": ["valorServicos", "issRetido", "baseCalculo"],
|
265
|
+
"additionalProperties": false
|
266
|
+
},
|
267
|
+
"itemListaServico": { "$ref": "#/itemListaServico" },
|
268
|
+
"codigoCnae": { "$ref": "#/codigoCnae" },
|
269
|
+
"codigoTributacaoMunicipio": { "$ref": "#/codigoTributacao" },
|
270
|
+
"discriminacao": { "$ref": "#/discriminacao" },
|
271
|
+
"codigoMunicipio": { "$ref": "#/codigoMunicipioIbge" }
|
272
|
+
},
|
273
|
+
"required": ["valores", "itemListaServico", "discriminacao", "codigoMunicipio"],
|
274
|
+
"additionalProperties": false
|
275
|
+
},
|
276
|
+
"identificacaoPrestador": {
|
277
|
+
"description": "Representa dados para identificação do prestador de serviço",
|
278
|
+
"type": "object",
|
279
|
+
"properties": {
|
280
|
+
"cnpj": { "$ref": "#/cnpj" },
|
281
|
+
"inscricaoMunicipal": { "$ref": "#/inscricaoMunicipal" }
|
282
|
+
},
|
283
|
+
"required": ["cnpj"],
|
284
|
+
"additionalProperties": false
|
285
|
+
},
|
286
|
+
"dadosTomador": {
|
287
|
+
"description": "Representa dados do tomador de serviço",
|
288
|
+
"type": "object",
|
289
|
+
"properties": {
|
290
|
+
"identificacaoTomador": { "$ref": "#/identificacaoTomador" },
|
291
|
+
"razaoSocial": { "$ref": "#/razaoSocial" },
|
292
|
+
"endereco": { "$ref": "#/enderecoCompleto" },
|
293
|
+
"contato": { "$ref": "#/contato" }
|
294
|
+
},
|
295
|
+
"additionalProperties": false
|
296
|
+
},
|
297
|
+
"identificacaoTomador": {
|
298
|
+
"description": "Representa dados para identificação do tomador de serviço",
|
299
|
+
"oneOf": [
|
300
|
+
{
|
301
|
+
"type": "object",
|
302
|
+
"properties": {
|
303
|
+
"inscricaoMunicipal": { "$ref": "#/inscricaoMunicipal" },
|
304
|
+
"cnpj": { "$ref": "#/cnpj" }
|
305
|
+
},
|
306
|
+
"additionalProperties": false
|
307
|
+
},
|
308
|
+
{
|
309
|
+
"type": "object",
|
310
|
+
"properties": {
|
311
|
+
"cpf": { "$ref": "#/cpf" }
|
312
|
+
},
|
313
|
+
"additionalProperties": false
|
314
|
+
}
|
315
|
+
]
|
316
|
+
},
|
317
|
+
"enderecoCompleto": {
|
318
|
+
"description": "Representação completa do endereço.",
|
319
|
+
"type": "object",
|
320
|
+
"properties": {
|
321
|
+
"endereco": { "$ref": "#/endereco" },
|
322
|
+
"numero": { "$ref": "#/numeroEndereco" },
|
323
|
+
"complemento": { "$ref": "#/complementoEndereco" },
|
324
|
+
"bairro": { "$ref": "#/bairro" },
|
325
|
+
"codigoMunicipio": { "$ref": "#/codigoMunicipioIbge" },
|
326
|
+
"uf": { "$ref": "#/uf" },
|
327
|
+
"cep": { "$ref": "#/cep" }
|
328
|
+
},
|
329
|
+
"required": [],
|
330
|
+
"additionalProperties": false
|
331
|
+
},
|
332
|
+
"contato": {
|
333
|
+
"description": "Representa forma de contato com a pessoa (física/jurídica)",
|
334
|
+
"type": "object",
|
335
|
+
"properties": {
|
336
|
+
"telefone": { "$ref": "#/telefone" },
|
337
|
+
"email": { "$ref": "#/email" }
|
338
|
+
},
|
339
|
+
"required": [],
|
340
|
+
"additionalProperties": false
|
341
|
+
},
|
342
|
+
"identificacaoIntermediarioServico": {
|
343
|
+
"description": "Representa dados para identificação de intermediário do serviço",
|
344
|
+
"oneOf": [
|
345
|
+
{
|
346
|
+
"type": "object",
|
347
|
+
"properties": {
|
348
|
+
"razaoSocial": { "$ref": "#/razaoSocial" },
|
349
|
+
"cnpj": { "$ref": "#/cnpj" },
|
350
|
+
"inscricaoMunicipal": { "$ref": "#/inscricaoMunicipal" }
|
351
|
+
},
|
352
|
+
"required": ["razaoSocial", "cnpj"],
|
353
|
+
"additionalProperties": false
|
354
|
+
},
|
355
|
+
{
|
356
|
+
"type": "object",
|
357
|
+
"properties": {
|
358
|
+
"cpf": { "$ref": "#/cpf" }
|
359
|
+
},
|
360
|
+
"required": ["cpf"],
|
361
|
+
"additionalProperties": false
|
362
|
+
}
|
363
|
+
]
|
364
|
+
},
|
365
|
+
"dadosConstrucaoCivil": {
|
366
|
+
"description": "Representa dados para identificação de intermediário do serviço",
|
367
|
+
"properties": {
|
368
|
+
"codigoObra": { "$ref": "#/codigoObra" },
|
369
|
+
"art": { "$ref": "#/art" }
|
370
|
+
},
|
371
|
+
"required": [],
|
372
|
+
"additionalProperties": false
|
373
|
+
}
|
374
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
"title": "Recepção de Lote de RPS",
|
4
|
+
"description": "Esse serviço compreende a recepção do Lote de RPS, a resposta com o número do protocolo gerado para esta transação e o processamento do lote. Quando efetuada a recepção, o Lote entrará na fila para processamento posterior onde serão feitas as validações necessárias e geração das NFS-e. ",
|
5
|
+
|
6
|
+
"type": "object",
|
7
|
+
"properties": {
|
8
|
+
"loteRps": {
|
9
|
+
"type": "object",
|
10
|
+
"properties": {
|
11
|
+
"numeroLote": { "$ref": "definitions.json#/numeroLote"},
|
12
|
+
"cnpj": { "$ref": "definitions.json#/cnpj"},
|
13
|
+
"inscricaoMunicipal": { "$ref": "definitions.json#/inscricaoMunicipal" },
|
14
|
+
"quantidadeRps": { "$ref": "definitions.json#/quantidadeRps" },
|
15
|
+
"listaRps": {
|
16
|
+
"type": "array",
|
17
|
+
"items": {
|
18
|
+
"type": "object",
|
19
|
+
"properties": {
|
20
|
+
"identificacaoRps": { "$ref": "definitions.json#/identificacaoRps" },
|
21
|
+
"dataEmissao": { "type": "string", "format": "date-time" },
|
22
|
+
"naturezaOperacao": { "$ref": "definitions.json#/naturezaOperacao" },
|
23
|
+
"regimeEspecialTributacao": { "$ref": "definitions.json#/regimeEspecialTributacao" },
|
24
|
+
"optanteSimplesNacional": { "type": "boolean" },
|
25
|
+
"incentivadorCultural": { "type": "boolean" },
|
26
|
+
"status": { "$ref": "definitions.json#/statusRps" },
|
27
|
+
"rpsSubstituido": { "$ref": "definitions.json#/identificacaoRps" },
|
28
|
+
"servico": { "$ref": "definitions.json#/dadosServico" },
|
29
|
+
"prestador": { "$ref": "definitions.json#/identificacaoPrestador" },
|
30
|
+
"tomador": { "$ref": "definitions.json#/dadosTomador" },
|
31
|
+
"intermediarioServico": { "$ref": "definitions.json#/identificacaoIntermediarioServico" },
|
32
|
+
"construcaoCivil": { "$ref": "definitions.json#/dadosConstrucaoCivil" }
|
33
|
+
},
|
34
|
+
"required": ["identificacaoRps", "dataEmissao", "naturezaOperacao", "optanteSimplesNacional", "incentivadorCultural", "status", "servico", "prestador", "tomador"],
|
35
|
+
"additionalProperties": false
|
36
|
+
},
|
37
|
+
"minItems": 1
|
38
|
+
}
|
39
|
+
},
|
40
|
+
"required": ["numeroLote", "cnpj", "inscricaoMunicipal", "quantidadeRps", "listaRps"],
|
41
|
+
"additionalProperties": false
|
42
|
+
}
|
43
|
+
},
|
44
|
+
"required": ["loteRps"],
|
45
|
+
"additionalProperties": false
|
46
|
+
}
|