nfse-br 2.0.0 → 2.1.0
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.
- package/README.md +41 -127
- package/dist/client.d.ts +26 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +41 -4
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,51 +1,24 @@
|
|
|
1
1
|
# nfse-br
|
|
2
2
|
|
|
3
|
-
Node/TypeScript client and CLI for Brazilian service invoices (NFS-e)
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
extensions (NT SE/CGNFS-e nº 007). The city is one environment variable; see
|
|
12
|
-
[docs/municipalities.md](docs/municipalities.md).
|
|
13
|
-
|
|
14
|
-
Formerly `gissonline-nfse`. The `giss` command and `GissClient` still work as aliases.
|
|
15
|
-
|
|
16
|
-
On GissOnline it covers all **16 operations** of the two published SOAP services: `nfse`
|
|
17
|
-
(services provided) and `nfsc` (services received). It also covers the portal REST API,
|
|
18
|
-
the only way to reach the customer and supplier directory and the municipal activity table.
|
|
19
|
-
|
|
20
|
-
- Issue, cancel and replace invoices, single or in batches
|
|
21
|
-
- Queries by period, competence, number range, RPS and protocol
|
|
22
|
-
- The city activity table, where `CodigoTributacaoMunicipio` and its LC 116 item come from
|
|
23
|
-
- Declaration of received services (supplier invoices)
|
|
24
|
-
- XMLDSig signing with an A1 certificate, in the shape each operation requires
|
|
25
|
-
- Portal login with that same certificate, so no CPF and password are needed
|
|
26
|
-
- Fale Conosco messages: read the replies from the city hall, and open new ones
|
|
3
|
+
Node/TypeScript client and CLI for Brazilian service invoices (NFS-e) through the
|
|
4
|
+
**Sistema Nacional NFS-e** (SEFIN + ADN) — the issuer for the **Simples Nacional** since
|
|
5
|
+
2026-11-01 (Res. CGSN 191/2026). One A1 certificate, one command line.
|
|
6
|
+
Formerly `gissonline-nfse`; the `giss` command and `GissClient` still work as aliases.
|
|
7
|
+
|
|
8
|
+
- Issue and cancel invoices, signed in SHA-256 over mutual TLS
|
|
9
|
+
- Query by access key or DPS, and the distribution of every invoice where your CNPJ appears
|
|
10
|
+
- DANFSe rendered locally from the invoice XML (NT 008)
|
|
27
11
|
- Validation against the official XSD before sending
|
|
28
|
-
- National issuer: issue, cancel, query, DANFSe and the distribution of every invoice
|
|
29
|
-
where your CNPJ appears
|
|
30
12
|
- Typed errors that say whether a retry is safe; see [docs/errors.md](docs/errors.md)
|
|
31
13
|
- No write operation fires without `--confirm`
|
|
32
14
|
|
|
33
|
-
|
|
15
|
+
The step by step, with what the live service accepts and refuses, is in
|
|
16
|
+
[docs/national.md](docs/national.md). The other guides are in [docs/](docs/).
|
|
34
17
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
| MEI | National web issuer | Not exercised by this client; RN 239 exempts MEI from the city agreement too |
|
|
40
|
-
|
|
41
|
-
GissOnline is still the way to **read** what it already holds: invoices issued until
|
|
42
|
-
2026-10-31, the customer and supplier directory, the activity table and the Fale Conosco
|
|
43
|
-
messages. Its issuing, cancelling and replacing are still in the client, but a Simples optant
|
|
44
|
-
should not count on them: GissOnline blocks them since 2026-11-01, and on 2026-11-13 its
|
|
45
|
-
homologation environment refused an RPS with `E160` (schema). Not tested in production.
|
|
46
|
-
|
|
47
|
-
Numbering is separate: the national system numbers invoices from 1 per issuer, apart from
|
|
48
|
-
GissOnline's sequence. `nDPS` (the request number) is yours to choose with `--dps`.
|
|
18
|
+
> **GissOnline is legacy.** The Web Services of 32 cities (ABRASF 2.04) are still in the
|
|
19
|
+
> client for reading what they hold and for taxpayers outside the Simples, but a Simples
|
|
20
|
+
> optant cannot issue there anymore. Pass `--issuer giss` to use them; see
|
|
21
|
+
> [docs/municipalities.md](docs/municipalities.md).
|
|
49
22
|
|
|
50
23
|
## Requirements
|
|
51
24
|
|
|
@@ -83,7 +56,6 @@ their contents never enter the repository.
|
|
|
83
56
|
## Quick start
|
|
84
57
|
|
|
85
58
|
```bash
|
|
86
|
-
# National issuer — the default for `issue` (use --issuer giss for a city that has not adopted it)
|
|
87
59
|
nfse national-status # the city's agreement (see docs/national.md)
|
|
88
60
|
nfse issue --customer acme --amount 1500 --description "Consulting" --dps 7
|
|
89
61
|
nfse issue --customer acme --amount 1500 --description "Consulting" --dps 7 --confirm
|
|
@@ -93,104 +65,46 @@ nfse cancel --key <key> --reason 1 --text "Wrong service code, will be reissued"
|
|
|
93
65
|
|
|
94
66
|
For an ME/EPP apportioned through the Simples the DPS carries no ISS rate (the DAS carries
|
|
95
67
|
it). Pass `--item`, `--cnae` and `--nbs` of the service you are billing: the default profile
|
|
96
|
-
is software development. Use `--dps N` in sequence so a retry is safe.
|
|
97
|
-
what the service refused and why, is in [docs/national.md](docs/national.md).
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
# GissOnline (queries, directory, and issuing where the city still serves you)
|
|
101
|
-
nfse latest # the most recent invoices
|
|
102
|
-
nfse activities --company # activity codes this company can use
|
|
103
|
-
nfse issue --issuer giss --customer acme --amount 1500 --description "Consulting"
|
|
104
|
-
nfse issue --issuer giss --customer acme --amount 1500 --description "Consulting" --confirm
|
|
105
|
-
nfse pdf --number 573 # the invoice as a file
|
|
106
|
-
```
|
|
68
|
+
is software development. Use `--dps N` in sequence so a retry is safe.
|
|
107
69
|
|
|
108
70
|
```ts
|
|
109
|
-
import { NfseClient
|
|
71
|
+
import { NfseClient } from "nfse-br";
|
|
110
72
|
|
|
111
|
-
|
|
112
|
-
//
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
const { invoices } = await nfse.queryProvidedServices({
|
|
116
|
-
issuePeriod: { from: "2026-07-01", to: "2026-07-31" },
|
|
73
|
+
const client = new NfseClient({
|
|
74
|
+
// The fiscal profile lives in the client; each invoice only brings what varies.
|
|
75
|
+
profile: { serviceListItem: "01.09.02", cnaeCode: "6319400", nbsCode: "117031000" },
|
|
117
76
|
});
|
|
118
77
|
|
|
119
|
-
|
|
120
|
-
//
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
78
|
+
const invoice = {
|
|
79
|
+
number: 5, // the DPS number: reusing it never issues twice
|
|
80
|
+
serviceAmount: 550,
|
|
81
|
+
description: "Recarga de conta",
|
|
82
|
+
taker: {
|
|
83
|
+
cnpj: "10966296000153",
|
|
84
|
+
legalName: "L.A. MOTORS LTDA",
|
|
85
|
+
address: {
|
|
86
|
+
street: "Rua das Flores",
|
|
87
|
+
number: "100",
|
|
88
|
+
district: "Centro",
|
|
89
|
+
cityCode: "3552502",
|
|
90
|
+
state: "SP",
|
|
91
|
+
zipCode: "08600000",
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
client.previewIssue(invoice); // the signed DPS, nothing sent
|
|
97
|
+
const { nfse } = await client.issue(invoice);
|
|
98
|
+
await client.cancel(nfse.accessKey, 1, "Erro na emissao do servico");
|
|
128
99
|
```
|
|
129
100
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
## Documentation
|
|
133
|
-
|
|
134
|
-
| | |
|
|
135
|
-
| --- | --- |
|
|
136
|
-
| [examples/](examples/) | Runnable scripts, all checked against production |
|
|
137
|
-
| [docs/cli.md](docs/cli.md) | Every command, completion, documents and lookups |
|
|
138
|
-
| [docs/municipalities.md](docs/municipalities.md) | The cities that publish the Web Service |
|
|
139
|
-
| [docs/library.md](docs/library.md) | Using it as a package, and the 16 operations |
|
|
140
|
-
| [docs/configuration.md](docs/configuration.md) | `.env`, serving several companies, tax profile, homologation |
|
|
141
|
-
| [docs/issuing.md](docs/issuing.md) | What actually issues an invoice, and why |
|
|
142
|
-
| [docs/national.md](docs/national.md) | The national issuer: the 2026-11-01 move for Simples Nacional, what the live service accepts, numbering |
|
|
143
|
-
| [docs/errors.md](docs/errors.md) | Error codes, retries, and what is safe to repeat |
|
|
144
|
-
| [docs/gotchas.md](docs/gotchas.md) | What the live service taught us the hard way |
|
|
145
|
-
| [docs/architecture.md](docs/architecture.md) | Layers, patterns, mTLS, SOAP and the signature |
|
|
146
|
-
|
|
147
|
-
Under `docs/`: technical manuals (Services Provided v1.6, Services Received/CST v2.5,
|
|
148
|
-
PIS/COFINS/CSLL v1.0), XML samples and the errors and alerts spreadsheet. The XSD live
|
|
149
|
-
in `schemas/`, one folder per provider.
|
|
150
|
-
Source: <https://suzano.giss.com.br/giss-ajuda/desenvolvedores.html>.
|
|
151
|
-
|
|
152
|
-
`schemas/giss/tomados/vigente/` carries the services-received XSD with the `tipos` v1_01
|
|
153
|
-
merged over v1_00 — necessary because the published v1_01 is a delta that does not compile
|
|
154
|
-
on its own. The originals stay untouched in the directory above.
|
|
155
|
-
|
|
156
|
-
## Security
|
|
157
|
-
|
|
158
|
-
Never committed (already covered by `.gitignore`):
|
|
159
|
-
|
|
160
|
-
- `.env` — certificate password and portal credentials
|
|
161
|
-
- `cert/*` — the `.pfx` and exported PEM files (the key is written **without a passphrase**,
|
|
162
|
-
mode `0600`)
|
|
163
|
-
- `data/*` — local directory and tax profile, holding third-party data
|
|
164
|
-
|
|
165
|
-
Two notes on the code: the `APP_ID` in `portal-service.ts` is not a secret — it is a public
|
|
166
|
-
constant from the portal bundle, sent by any browser that opens the site. And the signature
|
|
167
|
-
uses `rsa-sha1` with a `sha1` digest: weak by today's standards, but it is what the service
|
|
168
|
-
validates (manual, section 6.3).
|
|
101
|
+
GissOnline queries and the portal directory are in [docs/library.md](docs/library.md).
|
|
169
102
|
|
|
170
103
|
## Contributing
|
|
171
104
|
|
|
172
105
|
Commits follow [Conventional Commits](https://www.conventionalcommits.org), enforced by a
|
|
173
106
|
local hook and a CI check. See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
174
107
|
|
|
175
|
-
## Releasing
|
|
176
|
-
|
|
177
|
-
Fully automatic. Merging a pull request into `main` is the whole ritual:
|
|
178
|
-
[semantic-release](https://semantic-release.gitbook.io) reads the conventional
|
|
179
|
-
commits, works out the version, writes the changelog, tags, opens the GitHub
|
|
180
|
-
release, and publishes to npm through
|
|
181
|
-
[trusted publishing](https://docs.npmjs.com/trusted-publishers) — OIDC, no token
|
|
182
|
-
stored anywhere.
|
|
183
|
-
|
|
184
|
-
| Commit | Release |
|
|
185
|
-
| --- | --- |
|
|
186
|
-
| `fix:` | patch |
|
|
187
|
-
| `feat:` | minor |
|
|
188
|
-
| `feat!:` or `BREAKING CHANGE:` | major |
|
|
189
|
-
| `chore:`, `ci:`, `docs:`, `test:` | none |
|
|
190
|
-
|
|
191
|
-
Which is why the commit type matters: it is the only input to the version. A
|
|
192
|
-
`fix` labelled as `chore` never ships.
|
|
193
|
-
|
|
194
108
|
## Disclaimer
|
|
195
109
|
|
|
196
110
|
Independent project, not affiliated with Eicon, GissOnline or the Comitê Gestor da NFS-e. The portal REST API is
|
package/dist/client.d.ts
CHANGED
|
@@ -3,7 +3,9 @@ import type { PartyIdentification } from "./domain/types.ts";
|
|
|
3
3
|
import { type Certificate, type CertificateInput } from "./infra/certificate.ts";
|
|
4
4
|
import type { QueryResult } from "./providers/giss/messages/parser.ts";
|
|
5
5
|
import { NfscService } from "./providers/giss/nfsc-service.ts";
|
|
6
|
-
import { NationalService } from "./providers/nacional/national-service.ts";
|
|
6
|
+
import { NationalService, type NationalIssueOutcome } from "./providers/nacional/national-service.ts";
|
|
7
|
+
import type { NationalCancellationReason } from "./providers/nacional/messages.ts";
|
|
8
|
+
import { type IssueInput, type IssuingProfile } from "./storage/profile-repository.ts";
|
|
7
9
|
import { NfseService } from "./providers/giss/nfse-service.ts";
|
|
8
10
|
export interface NfseClientOptions extends Partial<GissConfig> {
|
|
9
11
|
/**
|
|
@@ -14,15 +16,36 @@ export interface NfseClientOptions extends Partial<GissConfig> {
|
|
|
14
16
|
certificate?: CertificateInput;
|
|
15
17
|
/** Loga na saída de erro os XMLs enviados e recebidos */
|
|
16
18
|
debug?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Perfil fiscal do prestador (item, CNAE, NBS, regime…), por cima do
|
|
21
|
+
* `DEFAULT_PROFILE`. É o que `issue` usa; cada nota só informa o que varia.
|
|
22
|
+
*/
|
|
23
|
+
profile?: Partial<IssuingProfile>;
|
|
24
|
+
}
|
|
25
|
+
/** Uma nota nacional: só o que varia por emissão. O resto vem do `profile` do client. */
|
|
26
|
+
export interface NationalInvoiceInput extends Omit<IssueInput, "rpsNumber" | "rpsType" | "series"> {
|
|
27
|
+
/** Número da DPS, escolhido por você. Repetir o mesmo número nunca emite duas notas. */
|
|
28
|
+
number: string | number;
|
|
29
|
+
/** Série da DPS; por padrão `profile.nationalSeries`, ou "1" */
|
|
30
|
+
series?: string | number;
|
|
17
31
|
}
|
|
18
32
|
export declare class NfseClient {
|
|
33
|
+
#private;
|
|
19
34
|
readonly config: GissConfig;
|
|
20
35
|
readonly certificate: Certificate;
|
|
36
|
+
/** Sistema Nacional NFS-e — o emissor principal. Mesmo certificado, assinatura SHA-256 */
|
|
37
|
+
readonly national: NationalService;
|
|
38
|
+
/** GissOnline, serviços prestados (SOAP). Legado: o Simples Nacional não emite mais por ele */
|
|
21
39
|
readonly nfse: NfseService;
|
|
40
|
+
/** GissOnline, serviços tomados (SOAP) */
|
|
22
41
|
readonly nfsc: NfscService;
|
|
23
|
-
/** Sistema Nacional NFS-e — mesmo certificado, assinatura SHA-256 */
|
|
24
|
-
readonly national: NationalService;
|
|
25
42
|
constructor(options?: NfseClientOptions);
|
|
43
|
+
/** Emite pelo Sistema Nacional, com o perfil do client e os dados desta nota. */
|
|
44
|
+
issue(invoice: NationalInvoiceInput): Promise<NationalIssueOutcome>;
|
|
45
|
+
/** A DPS assinada que `issue` enviaria, sem enviar nada. */
|
|
46
|
+
previewIssue(invoice: NationalInvoiceInput): string;
|
|
47
|
+
/** Cancela uma nota nacional pela chave de acesso (evento 101101). */
|
|
48
|
+
cancel(accessKey: string, reason: NationalCancellationReason, justification: string): Promise<string>;
|
|
26
49
|
/** Identificação do prestador configurado no `.env`. */
|
|
27
50
|
get provider(): PartyIdentification;
|
|
28
51
|
/**
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EACL,eAAe,EAEf,KAAK,oBAAoB,EAC1B,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,UAAU,CAAC;IAC5D;;;;OAIG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACnC;AAED,yFAAyF;AACzF,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC5D,wFAAwF;IACxF,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAaD,qBAAa,UAAU;;IACrB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IAEnC,+FAA+F;IAC/F,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;gBAEf,OAAO,GAAE,iBAAsB;IA4C3C,iFAAiF;IACjF,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAKnE,4DAA4D;IAC5D,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM;IAKnD,sEAAsE;IACtE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM;IAyBnF,wDAAwD;IACxD,IAAI,QAAQ,IAAI,mBAAmB,CAKlC;IAED;;;OAGG;IACI,QAAQ,CACb,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,EAC7C,SAAS,SAAM,GACd,cAAc,CAAC,WAAW,CAAC;CAO/B;AAED,wEAAwE;AACxE,eAAO,MAAM,UAAU,mBAAa,CAAC;AACrC,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AACpC,2BAA2B;AAC3B,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC"}
|
package/dist/client.js
CHANGED
|
@@ -2,7 +2,8 @@ import { loadConfig } from "./config/index.js";
|
|
|
2
2
|
import { loadCertificate, } from "./infra/certificate.js";
|
|
3
3
|
import { createXmlSigner } from "./infra/xml-signer.js";
|
|
4
4
|
import { NfscService } from "./providers/giss/nfsc-service.js";
|
|
5
|
-
import { NationalService } from "./providers/nacional/national-service.js";
|
|
5
|
+
import { NationalService, } from "./providers/nacional/national-service.js";
|
|
6
|
+
import { buildRps, DEFAULT_PROFILE, } from "./storage/profile-repository.js";
|
|
6
7
|
import { NfseService } from "./providers/giss/nfse-service.js";
|
|
7
8
|
/**
|
|
8
9
|
* Fachada sobre os dois Web Services SOAP.
|
|
@@ -17,12 +18,16 @@ const MEMORY_CERTIFICATE = "<in-memory>";
|
|
|
17
18
|
export class NfseClient {
|
|
18
19
|
config;
|
|
19
20
|
certificate;
|
|
21
|
+
/** Sistema Nacional NFS-e — o emissor principal. Mesmo certificado, assinatura SHA-256 */
|
|
22
|
+
national;
|
|
23
|
+
#profile;
|
|
24
|
+
/** GissOnline, serviços prestados (SOAP). Legado: o Simples Nacional não emite mais por ele */
|
|
20
25
|
nfse;
|
|
26
|
+
/** GissOnline, serviços tomados (SOAP) */
|
|
21
27
|
nfsc;
|
|
22
|
-
/** Sistema Nacional NFS-e — mesmo certificado, assinatura SHA-256 */
|
|
23
|
-
national;
|
|
24
28
|
constructor(options = {}) {
|
|
25
|
-
const { debug = false, certificate, ...overrides } = options;
|
|
29
|
+
const { debug = false, certificate, profile, ...overrides } = options;
|
|
30
|
+
this.#profile = { ...DEFAULT_PROFILE, ...profile };
|
|
26
31
|
// `CERT_PATH` e `CERT_PASSWORD` só existem para abrir o arquivo: quando o
|
|
27
32
|
// certificado chega pronto, nada disso é necessário e exigir as variáveis
|
|
28
33
|
// impediria o uso sem `.env`. Um .pfx em memória ainda precisa da senha.
|
|
@@ -57,6 +62,38 @@ export class NfseClient {
|
|
|
57
62
|
debug,
|
|
58
63
|
});
|
|
59
64
|
}
|
|
65
|
+
/** Emite pelo Sistema Nacional, com o perfil do client e os dados desta nota. */
|
|
66
|
+
issue(invoice) {
|
|
67
|
+
const { rps, dps } = this.#compose(invoice);
|
|
68
|
+
return this.national.issue(rps, dps);
|
|
69
|
+
}
|
|
70
|
+
/** A DPS assinada que `issue` enviaria, sem enviar nada. */
|
|
71
|
+
previewIssue(invoice) {
|
|
72
|
+
const { rps, dps } = this.#compose(invoice);
|
|
73
|
+
return this.national.previewDps(rps, dps);
|
|
74
|
+
}
|
|
75
|
+
/** Cancela uma nota nacional pela chave de acesso (evento 101101). */
|
|
76
|
+
cancel(accessKey, reason, justification) {
|
|
77
|
+
return this.national.cancel(accessKey, reason, justification);
|
|
78
|
+
}
|
|
79
|
+
#compose({ number, series, ...input }) {
|
|
80
|
+
const profile = { ...this.#profile, ...input.profile };
|
|
81
|
+
const optant = profile.simplesNacionalOptant === 1;
|
|
82
|
+
const apportionment = profile.simplesApportionment ?? 1;
|
|
83
|
+
// ME/EPP apurada pelo Simples e sem retenção de ISS não envia alíquota na DPS
|
|
84
|
+
// (RN 657). O `buildRps` a exige só por causa do GissOnline, então o placeholder
|
|
85
|
+
// fica aqui dentro e nunca chega ao XML. Em qualquer outro caso, a falta é erro.
|
|
86
|
+
const rateIsOptional = optant && profile.issWithheld !== 1 && apportionment === 1;
|
|
87
|
+
return {
|
|
88
|
+
rps: buildRps(profile, { ...input, rate: input.rate ?? (rateIsOptional ? 0 : undefined) }),
|
|
89
|
+
dps: {
|
|
90
|
+
number,
|
|
91
|
+
series: series ?? profile.nationalSeries ?? "1",
|
|
92
|
+
simplesOption: profile.simplesOption ?? (optant ? 3 : 1),
|
|
93
|
+
simplesApportionment: profile.simplesApportionment,
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
}
|
|
60
97
|
/** Identificação do prestador configurado no `.env`. */
|
|
61
98
|
get provider() {
|
|
62
99
|
return {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EACL,eAAe,GAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EACL,eAAe,GAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EACL,eAAe,GAGhB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,QAAQ,EACR,eAAe,GAGhB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AA2B/D;;;;;;;GAOG;AACH,kEAAkE;AAClE,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEzC,MAAM,OAAO,UAAU;IACZ,MAAM,CAAa;IACnB,WAAW,CAAc;IAClC,0FAA0F;IACjF,QAAQ,CAAkB;IAC1B,QAAQ,CAAiB;IAClC,+FAA+F;IACtF,IAAI,CAAc;IAC3B,0CAA0C;IACjC,IAAI,CAAc;IAE3B,YAAY,UAA6B,EAAE;QACzC,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;QAEnD,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,MAAM,UAAU,GAAG,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,KAAK,QAAQ,CAAC;QAChF,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACvB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,SAAS;SACb,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,eAAe,CAChC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAC1C,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAChC,CAAC;QAEF,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,KAAK;SACN,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC;YAC1B,GAAG,MAAM;YACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;YACnD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,OAA6B;QACjC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,4DAA4D;IAC5D,YAAY,CAAC,OAA6B;QACxC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,sEAAsE;IACtE,MAAM,CAAC,SAAiB,EAAE,MAAkC,EAAE,aAAqB;QACjF,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAChE,CAAC;IAED,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAwB;QACzD,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,KAAK,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAC;QAExD,8EAA8E;QAC9E,iFAAiF;QACjF,iFAAiF;QACjF,MAAM,cAAc,GAAG,MAAM,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC;QAElF,OAAO;YACL,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1F,GAAG,EAAE;gBACH,MAAM;gBACN,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,cAAc,IAAI,GAAG;gBAC/C,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;aACpB;SACjC,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,IAAI,QAAQ;QACV,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,qBAAqB;SACzD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,QAAQ,CACb,KAA6C,EAC7C,SAAS,GAAG,GAAG;QAEf,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,MAAM,CAAC;YACb,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE;gBAAE,OAAO;QAC1C,CAAC;IACH,CAAC;CACF;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export type { SignatureAlgorithm } from "./infra/xml-signer.ts";
|
|
|
13
13
|
export { SOAP_SERVICES } from "./providers/giss/soap-client.ts";
|
|
14
14
|
export type { NfscOperation, NfseOperation, SoapOperation, SoapService, } from "./providers/giss/soap-client.ts";
|
|
15
15
|
export { NfseClient, GissClient } from "./client.ts";
|
|
16
|
-
export type { NfseClientOptions, GissClientOptions } from "./client.ts";
|
|
16
|
+
export type { NfseClientOptions, GissClientOptions, NationalInvoiceInput, } from "./client.ts";
|
|
17
17
|
export { lookupZip, lookupCompany, lookupParty, LookupError, type ZipLookup, type CompanyLookup, } from "./services/lookup-service.ts";
|
|
18
18
|
export { NfseService } from "./providers/giss/nfse-service.ts";
|
|
19
19
|
export type { IssueOutcome } from "./providers/giss/nfse-service.ts";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EACL,UAAU,EACV,OAAO,EACP,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,YAAY,GAClB,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,YAAY,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,GACZ,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EACL,UAAU,EACV,OAAO,EACP,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,gBAAgB,GAEjB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAQ5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAQhE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EACL,UAAU,EACV,OAAO,EACP,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,gBAAgB,GAEjB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAQ5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAQhE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMrD,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,WAAW,GAGZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAQ3F,OAAO,EACL,QAAQ,EACR,sBAAsB,EACtB,KAAK,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAU3F,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAerF,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAWnE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,QAAQ,GACT,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,kCAAkC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nfse-br",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Node/TypeScript client and CLI for Brazilian NFS-e: the Sistema Nacional NFS-e (SEFIN/ADN, the default issuer and the only one left for the Simples Nacional since 2026-11-01) and the GissOnline Web Services (ABRASF 2.04 + LC 214/2025, 32 cities)",
|
|
6
6
|
"keywords": [
|