@useinvio/nfse-sdk 3.0.0 → 3.2.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/CHANGELOG.md +176 -0
- package/README.en.md +146 -0
- package/README.md +77 -518
- package/dist/agent.d.ts +131 -0
- package/dist/agent.js +551 -0
- package/dist/agent.js.map +1 -0
- package/dist/certificate.d.ts +96 -0
- package/dist/certificate.js +218 -0
- package/dist/certificate.js.map +1 -0
- package/dist/certificateValidation.d.ts +11 -6
- package/dist/certificateValidation.js +23 -12
- package/dist/certificateValidation.js.map +1 -1
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +520 -0
- package/dist/cli.js.map +1 -0
- package/dist/cliBin.d.ts +2 -0
- package/dist/cliBin.js +6 -0
- package/dist/cliBin.js.map +1 -0
- package/dist/cliExample.d.ts +6 -0
- package/dist/cliExample.js +29 -0
- package/dist/cliExample.js.map +1 -0
- package/dist/client.d.ts +51 -4
- package/dist/client.js +41 -10
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/consultas.d.ts +34 -0
- package/dist/consultas.js +61 -0
- package/dist/consultas.js.map +1 -0
- package/dist/dpsJson.js +1 -41
- package/dist/dpsJson.js.map +1 -1
- package/dist/dpsJsonSchema.d.ts +17 -0
- package/dist/dpsJsonSchema.js +184 -0
- package/dist/dpsJsonSchema.js.map +1 -0
- package/dist/emissaoNota.d.ts +11 -6
- package/dist/emissaoNota.js +10 -6
- package/dist/emissaoNota.js.map +1 -1
- package/dist/eventoJson.d.ts +76 -0
- package/dist/eventoJson.js +128 -0
- package/dist/eventoJson.js.map +1 -0
- package/dist/eventosNfse.d.ts +38 -0
- package/dist/eventosNfse.js +73 -0
- package/dist/eventosNfse.js.map +1 -0
- package/dist/fiscalDomains.d.ts +22 -0
- package/dist/fiscalDomains.js +99 -0
- package/dist/fiscalDomains.js.map +1 -0
- package/dist/fiscalValidation.js +21 -53
- package/dist/fiscalValidation.js.map +1 -1
- package/dist/gzipB64.d.ts +5 -0
- package/dist/gzipB64.js +12 -0
- package/dist/gzipB64.js.map +1 -1
- package/dist/index.d.ts +22 -7
- package/dist/index.js +11 -4
- package/dist/index.js.map +1 -1
- package/dist/jsonSchemaCheck.d.ts +12 -0
- package/dist/jsonSchemaCheck.js +70 -0
- package/dist/jsonSchemaCheck.js.map +1 -0
- package/dist/loadPfx.d.ts +2 -0
- package/dist/loadPfx.js +2 -1
- package/dist/loadPfx.js.map +1 -1
- package/dist/mcpCli.d.ts +2 -0
- package/dist/mcpCli.js +7 -0
- package/dist/mcpCli.js.map +1 -0
- package/dist/mcpServer.d.ts +49 -0
- package/dist/mcpServer.js +159 -0
- package/dist/mcpServer.js.map +1 -0
- package/dist/nfseXml.d.ts +48 -0
- package/dist/nfseXml.js +86 -0
- package/dist/nfseXml.js.map +1 -0
- package/dist/rejeicoes.d.ts +50 -0
- package/dist/rejeicoes.js +62 -0
- package/dist/rejeicoes.js.map +1 -0
- package/dist/rejeicoesCatalog.d.ts +10 -0
- package/dist/rejeicoesCatalog.js +4449 -0
- package/dist/rejeicoesCatalog.js.map +1 -0
- package/dist/sefinClient.d.ts +107 -7
- package/dist/sefinClient.js +232 -22
- package/dist/sefinClient.js.map +1 -1
- package/dist/signXml.d.ts +3 -3
- package/dist/signXml.js +17 -7
- package/dist/signXml.js.map +1 -1
- package/dist/testing.d.ts +80 -0
- package/dist/testing.js +285 -0
- package/dist/testing.js.map +1 -0
- package/dist/xmlBuild.d.ts +11 -0
- package/dist/xmlBuild.js +44 -0
- package/dist/xmlBuild.js.map +1 -0
- package/dist/xmlInspection.d.ts +1 -1
- package/dist/xmlInspection.js +10 -9
- package/dist/xmlInspection.js.map +1 -1
- package/dist/xsdValidation.d.ts +24 -5
- package/dist/xsdValidation.js +97 -67
- package/dist/xsdValidation.js.map +1 -1
- package/docs/README.md +47 -0
- package/docs/REGRAS_NEGOCIO_EMISSAO.md +8 -8
- package/docs/conceitos/como-funciona.md +87 -0
- package/docs/guias/adn.md +51 -0
- package/docs/guias/agentes-ia.md +111 -0
- package/docs/guias/cancelar.md +70 -0
- package/docs/guias/certificado.md +88 -0
- package/docs/guias/cli.md +68 -0
- package/docs/guias/consultar.md +54 -0
- package/docs/guias/emitir.md +172 -0
- package/docs/guias/recuperar-emissao.md +33 -0
- package/docs/guias/rejeicoes.md +70 -0
- package/docs/guias/testes.md +79 -0
- package/docs/guias/timeouts.md +33 -0
- package/docs/referencia/ambientes.md +35 -0
- package/docs/referencia/api.md +137 -0
- package/docs/referencia/erros.md +55 -0
- package/docs/tutoriais/primeira-nfse.md +130 -0
- package/examples/README.md +3 -1
- package/examples/cancel-nfse.ts +29 -0
- package/examples/client-resource.ts +3 -5
- package/examples/emit-homologation.ts +3 -4
- package/examples/handle-errors.ts +3 -3
- package/examples/recover-emission.ts +29 -0
- package/llms.txt +97 -82
- package/package.json +31 -6
package/dist/client.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { Ambiente } from './config.js';
|
|
2
2
|
import type { DpsJsonInput, DpsJsonRequest, PrestadorProfile, ServicoProfile } from './dpsJson.js';
|
|
3
3
|
import { type ResultadoEmissaoNota } from './emissaoNota.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { NfseCertificate } from './certificate.js';
|
|
5
|
+
import type { PfxMaterial } from './loadPfx.js';
|
|
6
|
+
import { type NfseConsultada } from './consultas.js';
|
|
7
|
+
import { type ComAutorOpcional, type ResultadoEvento } from './eventosNfse.js';
|
|
8
|
+
import type { CancelamentoNfseInput, CancelamentoPorSubstituicaoInput } from './eventoJson.js';
|
|
9
|
+
import { type DanfseResposta, type SefinRequestOptions, type SefinResposta } from './sefinClient.js';
|
|
6
10
|
export type NfseEnvironment = 'sandbox' | 'production' | Ambiente;
|
|
7
11
|
export interface NfseCertificateInput {
|
|
8
12
|
/** Conteudo bruto ou base64 do arquivo A1/PFX. */
|
|
@@ -20,23 +24,66 @@ export type CreateInvoiceInput = NfseClientDpsDefaults;
|
|
|
20
24
|
export interface GetInvoiceOptions {
|
|
21
25
|
ambiente?: Ambiente;
|
|
22
26
|
}
|
|
27
|
+
export type CancelInvoiceInput = ComAutorOpcional<CancelamentoNfseInput>;
|
|
28
|
+
export type CancelBySubstitutionInput = ComAutorOpcional<CancelamentoPorSubstituicaoInput>;
|
|
23
29
|
export interface NfseClientOptions {
|
|
24
30
|
environment?: NfseEnvironment;
|
|
25
|
-
|
|
31
|
+
/** Prefer `NfseCertificate.fromEnv()` / `fromFile()`; raw PFX content and legacy `PfxMaterial` are also accepted. */
|
|
32
|
+
certificate: NfseCertificateInput | NfseCertificate | PfxMaterial;
|
|
26
33
|
defaults?: NfseClientDpsDefaults;
|
|
34
|
+
/** Transport options for every call. `retries` only applies to GETs; emission and events are never retried. */
|
|
35
|
+
request?: SefinRequestOptions;
|
|
27
36
|
}
|
|
28
37
|
export interface InvoiceResource {
|
|
29
38
|
create(input: CreateInvoiceInput): Promise<ResultadoEmissaoNota>;
|
|
30
39
|
buildDpsJson(input: CreateInvoiceInput): DpsJsonRequest;
|
|
40
|
+
/** GET /nfse/{chave}: raw status/body. Prefer `retrieve` for the decoded XML and typed summary. */
|
|
31
41
|
get(chaveAcesso: string, options?: GetInvoiceOptions): Promise<SefinResposta>;
|
|
42
|
+
/** GET /nfse/{chave}: decompressed XML plus typed summary; throws `ConsultaNfseError` on non-2xx. */
|
|
43
|
+
retrieve(chaveAcesso: string, options?: GetInvoiceOptions): Promise<NfseConsultada>;
|
|
44
|
+
/** GET /dps/{id}: raw status/body with the access key generated from a DPS. */
|
|
45
|
+
getByDpsId(dpsId: string, options?: GetInvoiceOptions): Promise<SefinResposta>;
|
|
46
|
+
/** Recovers an emission with unknown outcome by DPS Id; `null` means no NFS-e exists for it. */
|
|
47
|
+
recover(dpsId: string, options?: GetInvoiceOptions): Promise<NfseConsultada | null>;
|
|
48
|
+
/** Event e101101. `autor` defaults to the certificate holder. */
|
|
49
|
+
cancel(input: CancelInvoiceInput): Promise<ResultadoEvento>;
|
|
50
|
+
/** Event e105102. Issue the replacement NFS-e first. */
|
|
51
|
+
cancelBySubstitution(input: CancelBySubstitutionInput): Promise<ResultadoEvento>;
|
|
52
|
+
/** ADN GET /danfse/{chave}: the official DANFSe PDF. */
|
|
53
|
+
danfse(chaveAcesso: string, options?: GetInvoiceOptions): Promise<DanfseResposta>;
|
|
54
|
+
}
|
|
55
|
+
export interface EventResource {
|
|
56
|
+
/** SEFIN GET /nfse/{chave}/eventos/{tpEvento}/{nSeqEvento}. */
|
|
57
|
+
get(chaveAcesso: string, tpEvento: string, nSeqEvento?: number | string): Promise<SefinResposta>;
|
|
58
|
+
/** ADN GET /contribuintes/NFSe/{chave}/Eventos. */
|
|
59
|
+
listByAccessKey(chaveAcesso: string): Promise<SefinResposta>;
|
|
60
|
+
}
|
|
61
|
+
export interface DistributionResource {
|
|
62
|
+
/** ADN GET /contribuintes/DFe/{nsu}: documents issued to or by the certificate holder. */
|
|
63
|
+
byNsu(nsu: string | number, options?: {
|
|
64
|
+
cnpjConsulta?: string;
|
|
65
|
+
lote?: boolean;
|
|
66
|
+
}): Promise<SefinResposta>;
|
|
67
|
+
}
|
|
68
|
+
export interface MunicipalParametersResource {
|
|
69
|
+
agreement(codigoMunicipio: string): Promise<SefinResposta>;
|
|
70
|
+
rate(codigoMunicipio: string, codigoServico: string, competencia: string): Promise<SefinResposta>;
|
|
71
|
+
rateHistory(codigoMunicipio: string, codigoServico: string): Promise<SefinResposta>;
|
|
72
|
+
specialRegimes(codigoMunicipio: string, codigoServico: string, competencia: string): Promise<SefinResposta>;
|
|
73
|
+
withholdings(codigoMunicipio: string, competencia: string): Promise<SefinResposta>;
|
|
74
|
+
benefit(codigoMunicipio: string, numeroBeneficio: string, competencia: string): Promise<SefinResposta>;
|
|
32
75
|
}
|
|
33
76
|
export declare class NfseClient {
|
|
34
77
|
readonly invoices: InvoiceResource;
|
|
78
|
+
readonly events: EventResource;
|
|
79
|
+
readonly distribution: DistributionResource;
|
|
80
|
+
readonly municipalParameters: MunicipalParametersResource;
|
|
35
81
|
private readonly ambiente;
|
|
36
82
|
private readonly pfx;
|
|
37
83
|
private readonly defaults;
|
|
84
|
+
private readonly request;
|
|
38
85
|
constructor(options: NfseClientOptions);
|
|
86
|
+
private resolveAmbiente;
|
|
39
87
|
private buildInvoiceDpsJson;
|
|
40
88
|
private createInvoice;
|
|
41
|
-
private getInvoice;
|
|
42
89
|
}
|
package/dist/client.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { DEFAULT_AMBIENTE } from './config.js';
|
|
2
2
|
import { emitirNfse } from './emissaoNota.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { NfseCertificate } from './certificate.js';
|
|
4
|
+
import { obterNfse, recuperarNfsePorDps } from './consultas.js';
|
|
5
|
+
import { cancelarNfse, cancelarNfsePorSubstituicao, } from './eventosNfse.js';
|
|
6
|
+
import { baixarDanfse, consultarAliquota, consultarBeneficio, consultarConvenio, consultarDps, consultarEvento, consultarEventosPorChaveAdn, consultarHistoricoAliquotas, consultarNfse, consultarRegimesEspeciais, consultarRetencoes, distribuirDfePorNsu, } from './sefinClient.js';
|
|
5
7
|
function resolveEnvironment(environment) {
|
|
6
8
|
if (!environment || environment === 'sandbox')
|
|
7
9
|
return DEFAULT_AMBIENTE;
|
|
@@ -31,21 +33,53 @@ function ensureObject(value, field) {
|
|
|
31
33
|
}
|
|
32
34
|
export class NfseClient {
|
|
33
35
|
invoices;
|
|
36
|
+
events;
|
|
37
|
+
distribution;
|
|
38
|
+
municipalParameters;
|
|
34
39
|
ambiente;
|
|
35
40
|
pfx;
|
|
36
41
|
defaults;
|
|
42
|
+
request;
|
|
37
43
|
constructor(options) {
|
|
38
44
|
this.ambiente = resolveEnvironment(options.environment);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
const { certificate } = options;
|
|
46
|
+
this.pfx = certificate instanceof NfseCertificate || isPfxMaterial(certificate)
|
|
47
|
+
? certificate
|
|
48
|
+
: NfseCertificate.fromPfx(decodeCertificateContent(certificate), certificate.password);
|
|
42
49
|
this.defaults = options.defaults ?? {};
|
|
50
|
+
this.request = options.request ?? {};
|
|
51
|
+
const req = this.request;
|
|
52
|
+
const amb = (options) => this.resolveAmbiente(options?.ambiente);
|
|
43
53
|
this.invoices = {
|
|
44
54
|
create: (input) => this.createInvoice(input),
|
|
45
55
|
buildDpsJson: (input) => this.buildInvoiceDpsJson(input),
|
|
46
|
-
get: (chaveAcesso, options) =>
|
|
56
|
+
get: (chaveAcesso, options) => consultarNfse(chaveAcesso, this.pfx, amb(options), req),
|
|
57
|
+
retrieve: (chaveAcesso, options) => obterNfse(chaveAcesso, this.pfx, amb(options), req),
|
|
58
|
+
getByDpsId: (dpsId, options) => consultarDps(dpsId, this.pfx, amb(options), req),
|
|
59
|
+
recover: (dpsId, options) => recuperarNfsePorDps(dpsId, this.pfx, amb(options), req),
|
|
60
|
+
cancel: (input) => cancelarNfse({ ...input, ambiente: amb(input) }, this.pfx, req),
|
|
61
|
+
cancelBySubstitution: (input) => cancelarNfsePorSubstituicao({ ...input, ambiente: amb(input) }, this.pfx, req),
|
|
62
|
+
danfse: (chaveAcesso, options) => baixarDanfse(chaveAcesso, this.pfx, amb(options), req),
|
|
63
|
+
};
|
|
64
|
+
this.events = {
|
|
65
|
+
get: (chaveAcesso, tpEvento, nSeqEvento) => consultarEvento(chaveAcesso, tpEvento, this.pfx, amb(), { ...req, nSeqEvento }),
|
|
66
|
+
listByAccessKey: (chaveAcesso) => consultarEventosPorChaveAdn(chaveAcesso, this.pfx, amb(), req),
|
|
67
|
+
};
|
|
68
|
+
this.distribution = {
|
|
69
|
+
byNsu: (nsu, options) => distribuirDfePorNsu(nsu, this.pfx, amb(), { ...req, ...options }),
|
|
70
|
+
};
|
|
71
|
+
this.municipalParameters = {
|
|
72
|
+
agreement: (mun) => consultarConvenio(mun, this.pfx, amb(), req),
|
|
73
|
+
rate: (mun, servico, competencia) => consultarAliquota(mun, servico, competencia, this.pfx, amb(), req),
|
|
74
|
+
rateHistory: (mun, servico) => consultarHistoricoAliquotas(mun, servico, this.pfx, amb(), req),
|
|
75
|
+
specialRegimes: (mun, servico, competencia) => consultarRegimesEspeciais(mun, servico, competencia, this.pfx, amb(), req),
|
|
76
|
+
withholdings: (mun, competencia) => consultarRetencoes(mun, competencia, this.pfx, amb(), req),
|
|
77
|
+
benefit: (mun, beneficio, competencia) => consultarBeneficio(mun, beneficio, competencia, this.pfx, amb(), req),
|
|
47
78
|
};
|
|
48
79
|
}
|
|
80
|
+
resolveAmbiente(ambiente) {
|
|
81
|
+
return ambiente ?? this.defaults.ambiente ?? this.ambiente;
|
|
82
|
+
}
|
|
49
83
|
buildInvoiceDpsJson(input) {
|
|
50
84
|
const prestador = {
|
|
51
85
|
...this.defaults.prestador,
|
|
@@ -68,10 +102,7 @@ export class NfseClient {
|
|
|
68
102
|
}
|
|
69
103
|
async createInvoice(input) {
|
|
70
104
|
const dpsJson = this.buildInvoiceDpsJson(input);
|
|
71
|
-
return emitirNfse(dpsJson, this.pfx, { ambiente: dpsJson.ambiente });
|
|
72
|
-
}
|
|
73
|
-
async getInvoice(chaveAcesso, options = {}) {
|
|
74
|
-
return consultarNfse(chaveAcesso, this.pfx, options.ambiente ?? this.defaults.ambiente ?? this.ambiente);
|
|
105
|
+
return emitirNfse(dpsJson, this.pfx, { ambiente: dpsJson.ambiente, timeoutMs: this.request.timeoutMs, signal: this.request.signal });
|
|
75
106
|
}
|
|
76
107
|
}
|
|
77
108
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,UAAU,EAA6B,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -3,3 +3,6 @@ export declare const SEFIN_BASE_URL: Record<Ambiente, string>;
|
|
|
3
3
|
export declare const TP_AMB: Record<Ambiente, '1' | '2'>;
|
|
4
4
|
export declare const DEFAULT_AMBIENTE: Ambiente;
|
|
5
5
|
export declare function resolveSefinBaseUrl(ambiente?: Ambiente): string;
|
|
6
|
+
/** Ambiente de Dados Nacional: DANFSe, distribuicao por NSU e parametros municipais. */
|
|
7
|
+
export declare const ADN_BASE_URL: Record<Ambiente, string>;
|
|
8
|
+
export declare function resolveAdnBaseUrl(ambiente?: Ambiente): string;
|
package/dist/config.js
CHANGED
|
@@ -10,4 +10,12 @@ export const DEFAULT_AMBIENTE = 'restrita';
|
|
|
10
10
|
export function resolveSefinBaseUrl(ambiente = DEFAULT_AMBIENTE) {
|
|
11
11
|
return SEFIN_BASE_URL[ambiente];
|
|
12
12
|
}
|
|
13
|
+
/** Ambiente de Dados Nacional: DANFSe, distribuicao por NSU e parametros municipais. */
|
|
14
|
+
export const ADN_BASE_URL = {
|
|
15
|
+
producao: 'https://adn.nfse.gov.br',
|
|
16
|
+
restrita: 'https://adn.producaorestrita.nfse.gov.br',
|
|
17
|
+
};
|
|
18
|
+
export function resolveAdnBaseUrl(ambiente = DEFAULT_AMBIENTE) {
|
|
19
|
+
return ADN_BASE_URL[ambiente];
|
|
20
|
+
}
|
|
13
21
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,QAAQ,EAAE,yCAAyC;IACnD,QAAQ,EAAE,0DAA0D;CACrE,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAgC;IACjD,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAa,UAAU,CAAC;AAErD,MAAM,UAAU,mBAAmB,CAAC,WAAqB,gBAAgB;IACvE,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,QAAQ,EAAE,yCAAyC;IACnD,QAAQ,EAAE,0DAA0D;CACrE,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAgC;IACjD,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAa,UAAU,CAAC;AAErD,MAAM,UAAU,mBAAmB,CAAC,WAAqB,gBAAgB;IACvE,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,YAAY,GAA6B;IACpD,QAAQ,EAAE,yBAAyB;IACnC,QAAQ,EAAE,0CAA0C;CACrD,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,WAAqB,gBAAgB;IACrE,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type NfseResumo } from './nfseXml.js';
|
|
2
|
+
import { type SefinErro, type SefinRequestOptions } from './sefinClient.js';
|
|
3
|
+
import type { CertificateInput } from './certificate.js';
|
|
4
|
+
import type { Ambiente } from './config.js';
|
|
5
|
+
export interface NfseConsultada {
|
|
6
|
+
chaveAcesso: string;
|
|
7
|
+
/** Authorized NFS-e XML, decompressed. */
|
|
8
|
+
nfseXml: string;
|
|
9
|
+
resumo: NfseResumo;
|
|
10
|
+
status: number;
|
|
11
|
+
body: any;
|
|
12
|
+
}
|
|
13
|
+
export declare class ConsultaNfseError extends Error {
|
|
14
|
+
readonly status: number;
|
|
15
|
+
readonly erros: SefinErro[];
|
|
16
|
+
readonly body: any;
|
|
17
|
+
constructor(message: string, status: number, erros: SefinErro[], body: any);
|
|
18
|
+
/** True when SEFIN answered 404: the NFS-e (or DPS) does not exist in this environment. */
|
|
19
|
+
get notFound(): boolean;
|
|
20
|
+
}
|
|
21
|
+
/** Decodes a GET /nfse/{chave} response body into XML + typed summary. */
|
|
22
|
+
export declare function decodificarRespostaNfse(status: number, body: any): NfseConsultada;
|
|
23
|
+
/**
|
|
24
|
+
* GET /nfse/{chave} returning the decompressed XML and a typed summary.
|
|
25
|
+
* Throws {@link ConsultaNfseError} on non-2xx (`error.notFound` for 404).
|
|
26
|
+
*/
|
|
27
|
+
export declare function obterNfse(chaveAcesso: string, certificate: CertificateInput, ambiente?: Ambiente, options?: SefinRequestOptions): Promise<NfseConsultada>;
|
|
28
|
+
/**
|
|
29
|
+
* Recovers an emission whose POST /nfse outcome is unknown (timeout, dropped
|
|
30
|
+
* connection) without resending the DPS: GET /dps/{id} for the access key, then
|
|
31
|
+
* GET /nfse/{chave}. Resolves to `null` when SEFIN has no NFS-e for that DPS,
|
|
32
|
+
* in which case it is safe to transmit the same signed DPS again.
|
|
33
|
+
*/
|
|
34
|
+
export declare function recuperarNfsePorDps(dpsId: string, certificate: CertificateInput, ambiente?: Ambiente, options?: SefinRequestOptions): Promise<NfseConsultada | null>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { gunzipBase64 } from './gzipB64.js';
|
|
2
|
+
import { lerNfse } from './nfseXml.js';
|
|
3
|
+
import { consultarDps, consultarNfse, extrairErros } from './sefinClient.js';
|
|
4
|
+
export class ConsultaNfseError extends Error {
|
|
5
|
+
status;
|
|
6
|
+
erros;
|
|
7
|
+
body;
|
|
8
|
+
constructor(message, status, erros, body) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.status = status;
|
|
11
|
+
this.erros = erros;
|
|
12
|
+
this.body = body;
|
|
13
|
+
this.name = 'ConsultaNfseError';
|
|
14
|
+
}
|
|
15
|
+
/** True when SEFIN answered 404: the NFS-e (or DPS) does not exist in this environment. */
|
|
16
|
+
get notFound() {
|
|
17
|
+
return this.status === 404;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Decodes a GET /nfse/{chave} response body into XML + typed summary. */
|
|
21
|
+
export function decodificarRespostaNfse(status, body) {
|
|
22
|
+
const b64 = body?.nfseXmlGZipB64 ?? body?.NfseXmlGZipB64;
|
|
23
|
+
if (status < 200 || status >= 300) {
|
|
24
|
+
throw new ConsultaNfseError(`Consulta da NFS-e falhou (HTTP ${status})`, status, extrairErros(body), body);
|
|
25
|
+
}
|
|
26
|
+
if (typeof b64 !== 'string' || !b64) {
|
|
27
|
+
throw new ConsultaNfseError(`Resposta da consulta sem nfseXmlGZipB64 (HTTP ${status})`, status, [{ Codigo: 'INVALID_QUERY_RESPONSE', Descricao: 'XML da NFS-e ausente' }], body);
|
|
28
|
+
}
|
|
29
|
+
const nfseXml = gunzipBase64(b64);
|
|
30
|
+
const resumo = lerNfse(nfseXml);
|
|
31
|
+
return { chaveAcesso: resumo.chaveAcesso, nfseXml, resumo, status, body };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* GET /nfse/{chave} returning the decompressed XML and a typed summary.
|
|
35
|
+
* Throws {@link ConsultaNfseError} on non-2xx (`error.notFound` for 404).
|
|
36
|
+
*/
|
|
37
|
+
export async function obterNfse(chaveAcesso, certificate, ambiente, options) {
|
|
38
|
+
const { status, body } = await consultarNfse(chaveAcesso, certificate, ambiente, options);
|
|
39
|
+
const result = decodificarRespostaNfse(status, body);
|
|
40
|
+
if (result.chaveAcesso !== chaveAcesso) {
|
|
41
|
+
throw new ConsultaNfseError('Chave de acesso da resposta difere da consultada', status, [{ Codigo: 'INVALID_QUERY_RESPONSE', Descricao: 'Chave divergente' }], body);
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Recovers an emission whose POST /nfse outcome is unknown (timeout, dropped
|
|
47
|
+
* connection) without resending the DPS: GET /dps/{id} for the access key, then
|
|
48
|
+
* GET /nfse/{chave}. Resolves to `null` when SEFIN has no NFS-e for that DPS,
|
|
49
|
+
* in which case it is safe to transmit the same signed DPS again.
|
|
50
|
+
*/
|
|
51
|
+
export async function recuperarNfsePorDps(dpsId, certificate, ambiente, options) {
|
|
52
|
+
const { status, body } = await consultarDps(dpsId, certificate, ambiente, options);
|
|
53
|
+
if (status === 404)
|
|
54
|
+
return null;
|
|
55
|
+
const chave = body?.chaveAcesso ?? body?.ChaveAcesso;
|
|
56
|
+
if (status < 200 || status >= 300 || typeof chave !== 'string' || !/^\d{50}$/.test(chave)) {
|
|
57
|
+
throw new ConsultaNfseError(`Consulta da DPS falhou (HTTP ${status})`, status, extrairErros(body), body);
|
|
58
|
+
}
|
|
59
|
+
return obterNfse(chave, certificate, ambiente, options);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=consultas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consultas.js","sourceRoot":"","sources":["../consultas.ts"],"names":[],"mappings":"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"}
|
package/dist/dpsJson.js
CHANGED
|
@@ -2,53 +2,13 @@ import { DEFAULT_AMBIENTE, TP_AMB } from './config.js';
|
|
|
2
2
|
import { DpsFiscalValidationError, validateDpsJsonRequest } from './fiscalValidation.js';
|
|
3
3
|
import { fixedDecimal, mulDecimal } from './decimal.js';
|
|
4
4
|
import { resolveValores } from './dpsNormalization.js';
|
|
5
|
+
import { el, nowSaoPauloOffset, pad, requiredTextEl, textEl } from './xmlBuild.js';
|
|
5
6
|
const NS = 'http://www.sped.fazenda.gov.br/nfse';
|
|
6
7
|
const VERSAO = '1.01';
|
|
7
8
|
const VER_APLIC = 'UseInvio';
|
|
8
|
-
function escapeXml(value) {
|
|
9
|
-
return String(value)
|
|
10
|
-
.replace(/&/g, '&')
|
|
11
|
-
.replace(/</g, '<')
|
|
12
|
-
.replace(/>/g, '>');
|
|
13
|
-
}
|
|
14
|
-
function escapeAttr(value) {
|
|
15
|
-
return escapeXml(value).replace(/"/g, '"').replace(/'/g, ''');
|
|
16
|
-
}
|
|
17
|
-
function attrs(values) {
|
|
18
|
-
return Object.entries(values)
|
|
19
|
-
.map(([key, value]) => ` ${key}="${escapeAttr(value)}"`)
|
|
20
|
-
.join('');
|
|
21
|
-
}
|
|
22
|
-
function el(name, content, attrValues = {}) {
|
|
23
|
-
return `<${name}${attrs(attrValues)}>${content}</${name}>`;
|
|
24
|
-
}
|
|
25
|
-
function textEl(name, value) {
|
|
26
|
-
if (value === undefined || value === null || value === '')
|
|
27
|
-
return '';
|
|
28
|
-
return el(name, escapeXml(value));
|
|
29
|
-
}
|
|
30
|
-
function requiredTextEl(name, value) {
|
|
31
|
-
if (value === undefined || value === null || value === '') {
|
|
32
|
-
throw new Error(`Campo obrigatorio ausente: ${name}`);
|
|
33
|
-
}
|
|
34
|
-
return el(name, escapeXml(value));
|
|
35
|
-
}
|
|
36
|
-
function onlyDigits(value) {
|
|
37
|
-
return value.replace(/\D/g, '');
|
|
38
|
-
}
|
|
39
|
-
function pad(value, length) {
|
|
40
|
-
return onlyDigits(value).padStart(length, '0');
|
|
41
|
-
}
|
|
42
9
|
const roundMoney = fixedDecimal;
|
|
43
10
|
const roundRate = fixedDecimal;
|
|
44
11
|
const roundTaxBurdenRate = fixedDecimal;
|
|
45
|
-
function nowSaoPauloOffset(date = new Date()) {
|
|
46
|
-
const parts = new Intl.DateTimeFormat('en-CA', {
|
|
47
|
-
timeZone: 'America/Sao_Paulo', year: 'numeric', month: '2-digit', day: '2-digit',
|
|
48
|
-
hour: '2-digit', minute: '2-digit', second: '2-digit', hourCycle: 'h23',
|
|
49
|
-
}).formatToParts(date).reduce((result, part) => ({ ...result, [part.type]: part.value }), {});
|
|
50
|
-
return `${parts.year}-${parts.month}-${parts.day}T${parts.hour}:${parts.minute}:${parts.second}-03:00`;
|
|
51
|
-
}
|
|
52
12
|
function resolveVServ(input) {
|
|
53
13
|
const { vServ, vServMoeda, cotacao } = resolveValores(input);
|
|
54
14
|
if (vServ)
|
package/dist/dpsJson.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dpsJson.js","sourceRoot":"","sources":["../dpsJson.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dpsJson.js","sourceRoot":"","sources":["../dpsJson.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Schema (draft 2020-12) for the canonical `DpsJsonRequest` shape.
|
|
3
|
+
*
|
|
4
|
+
* It describes structure, field formats and code domains so tools and LLMs can
|
|
5
|
+
* generate requests. Cross-field rules (regime x totTrib, national x export,
|
|
6
|
+
* exactly one identifier) are described in the text but enforced only by
|
|
7
|
+
* `validateDpsJsonRequest`, which remains the authority.
|
|
8
|
+
*
|
|
9
|
+
* Only a portable keyword subset is used (type, properties, required,
|
|
10
|
+
* additionalProperties, enum, pattern, minLength, maxLength, exclusiveMinimum,
|
|
11
|
+
* description, title) so the schema works across function-calling providers.
|
|
12
|
+
* Legacy aliases and fields the validator rejects are deliberately omitted.
|
|
13
|
+
*/
|
|
14
|
+
export type JsonSchema = {
|
|
15
|
+
readonly [keyword: string]: unknown;
|
|
16
|
+
};
|
|
17
|
+
export declare const DPS_JSON_REQUEST_SCHEMA: JsonSchema;
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import * as domains from './fiscalDomains.js';
|
|
2
|
+
import { domainValues } from './fiscalDomains.js';
|
|
3
|
+
const DIGITS = (count, description) => ({
|
|
4
|
+
type: 'string',
|
|
5
|
+
pattern: `^\\d{${count}}$`,
|
|
6
|
+
description,
|
|
7
|
+
});
|
|
8
|
+
const IBGE = (description) => DIGITS(7, `${description} Codigo IBGE do municipio, 7 digitos.`);
|
|
9
|
+
const COUNTRY = (description) => ({
|
|
10
|
+
type: 'string',
|
|
11
|
+
pattern: '^[A-Z]{2}$',
|
|
12
|
+
description: `${description} ISO 3166-1 alpha-2, ex.: US.`,
|
|
13
|
+
});
|
|
14
|
+
const TEXT = (description, maxLength) => ({
|
|
15
|
+
type: 'string',
|
|
16
|
+
minLength: 1,
|
|
17
|
+
...(maxLength ? { maxLength } : {}),
|
|
18
|
+
description,
|
|
19
|
+
});
|
|
20
|
+
const DECIMAL = (description) => ({
|
|
21
|
+
type: 'string',
|
|
22
|
+
pattern: '^\\d+(\\.\\d+)?$',
|
|
23
|
+
description: `${description} Decimal como string, ponto como separador, sem sinal nem notacao exponencial; serializado com 2 casas.`,
|
|
24
|
+
});
|
|
25
|
+
function code(domain, description) {
|
|
26
|
+
const values = domainValues(domain);
|
|
27
|
+
const labels = Array.isArray(domain)
|
|
28
|
+
? ''
|
|
29
|
+
: ` Valores: ${Object.entries(domain).map(([value, label]) => `${value}=${label}`).join('; ')}.`;
|
|
30
|
+
return { type: 'string', enum: values, description: `${description}${labels}` };
|
|
31
|
+
}
|
|
32
|
+
function object(properties, required, description) {
|
|
33
|
+
return { type: 'object', description, properties, required: [...required], additionalProperties: false };
|
|
34
|
+
}
|
|
35
|
+
const X_DESC_SERV = TEXT('Descricao completa do servico prestado.', 2000);
|
|
36
|
+
const C_LOC_PRESTACAO = IBGE('Municipio onde o servico foi prestado.');
|
|
37
|
+
const C_NBS = DIGITS(9, 'Codigo NBS do servico, 9 digitos.');
|
|
38
|
+
const prestador = object({
|
|
39
|
+
cnpj: DIGITS(14, 'CNPJ do prestador, somente digitos. Informe exatamente um de cnpj ou cpf.'),
|
|
40
|
+
cpf: DIGITS(11, 'CPF do prestador, somente digitos. Informe exatamente um de cnpj ou cpf.'),
|
|
41
|
+
cLocEmi: IBGE('Municipio emissor.'),
|
|
42
|
+
serie: { type: 'string', pattern: '^\\d{1,5}$', description: 'Serie da DPS, 1 a 5 digitos.' },
|
|
43
|
+
opSimpNac: code(domains.OP_SIMP_NAC, 'Situacao perante o Simples Nacional; determina a forma de totTrib.'),
|
|
44
|
+
regApTribSN: code(domains.REG_AP_TRIB_SN, 'Regime de apuracao do Simples Nacional. Somente quando opSimpNac=3.'),
|
|
45
|
+
regEspTrib: code(domains.REG_ESP_TRIB, 'Regime especial de tributacao.'),
|
|
46
|
+
}, ['cLocEmi', 'serie', 'opSimpNac', 'regEspTrib'], 'Perfil fiscal do prestador (emitente).');
|
|
47
|
+
const servico = object({
|
|
48
|
+
cTribNac: DIGITS(6, 'Codigo de tributacao nacional do ISSQN (LC 116/2003): item, subitem e desdobro, 6 digitos.'),
|
|
49
|
+
xDescServ: X_DESC_SERV,
|
|
50
|
+
cLocPrestacao: C_LOC_PRESTACAO,
|
|
51
|
+
cNBS: C_NBS,
|
|
52
|
+
}, ['cTribNac', 'xDescServ', 'cLocPrestacao'], 'Servico padrao do prestador; emissao.servico pode sobrescrever campos por nota.');
|
|
53
|
+
const endNac = object({
|
|
54
|
+
cMun: IBGE('Municipio do endereco.'),
|
|
55
|
+
CEP: DIGITS(8, 'CEP, 8 digitos.'),
|
|
56
|
+
}, ['cMun', 'CEP'], 'Endereco nacional.');
|
|
57
|
+
const endExt = object({
|
|
58
|
+
cPais: COUNTRY('Pais do endereco.'),
|
|
59
|
+
cEndPost: TEXT('Codigo de enderecamento postal.'),
|
|
60
|
+
xCidade: TEXT('Cidade.'),
|
|
61
|
+
xEstProvReg: TEXT('Estado, provincia ou regiao.'),
|
|
62
|
+
}, ['cPais', 'cEndPost', 'xCidade', 'xEstProvReg'], 'Endereco no exterior.');
|
|
63
|
+
const endereco = object({
|
|
64
|
+
endNac,
|
|
65
|
+
endExt,
|
|
66
|
+
xLgr: TEXT('Logradouro.'),
|
|
67
|
+
nro: TEXT('Numero.'),
|
|
68
|
+
xCpl: TEXT('Complemento.'),
|
|
69
|
+
xBairro: TEXT('Bairro.'),
|
|
70
|
+
}, ['xLgr', 'nro', 'xBairro'], 'Endereco. Informe exatamente um de endNac (tomador nacional) ou endExt (tomador exterior).');
|
|
71
|
+
const tomador = object({
|
|
72
|
+
CNPJ: DIGITS(14, 'CNPJ do tomador nacional.'),
|
|
73
|
+
CPF: DIGITS(11, 'CPF do tomador nacional.'),
|
|
74
|
+
NIF: TEXT('Numero de identificacao fiscal do tomador exterior.'),
|
|
75
|
+
cNaoNIF: code(domains.C_NAO_NIF, 'Motivo de ausencia do NIF do tomador exterior.'),
|
|
76
|
+
xNome: TEXT('Nome ou razao social.'),
|
|
77
|
+
end: endereco,
|
|
78
|
+
fone: TEXT('Telefone.'),
|
|
79
|
+
email: TEXT('E-mail.'),
|
|
80
|
+
}, ['xNome'], 'Tomador do servico. Informe exatamente um identificador: CNPJ ou CPF (nacional, com end.endNac) ou NIF ou cNaoNIF (exportacao, com end.endExt).');
|
|
81
|
+
const intermediario = object({
|
|
82
|
+
CNPJ: DIGITS(14, 'CNPJ do intermediario.'),
|
|
83
|
+
CPF: DIGITS(11, 'CPF do intermediario.'),
|
|
84
|
+
xNome: TEXT('Nome ou razao social.'),
|
|
85
|
+
}, ['xNome'], 'Intermediario nacional. Informe exatamente um de CNPJ ou CPF.');
|
|
86
|
+
const valores = object({
|
|
87
|
+
vServ: DECIMAL('Valor do servico em reais; maior que zero apos arredondamento.'),
|
|
88
|
+
vServMoeda: DECIMAL('Valor do servico em moeda estrangeira (exportacao).'),
|
|
89
|
+
cotacao: { type: 'number', exclusiveMinimum: 0, description: 'Cotacao da moeda estrangeira em reais (exportacao).' },
|
|
90
|
+
}, [], 'Valores. Nacional: informe vServ. Exportacao: informe vServMoeda e cotacao (vServ opcional; se ausente, vServMoeda x cotacao).');
|
|
91
|
+
const tributacaoMunicipal = object({
|
|
92
|
+
tribISSQN: code(domains.TRIB_ISSQN, 'Tributacao do ISSQN.'),
|
|
93
|
+
tpRetISSQN: code(domains.TP_RET_ISSQN, 'Retencao do ISSQN.'),
|
|
94
|
+
pAliq: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
pattern: '^\\d(\\.\\d+)?$',
|
|
97
|
+
description: 'Aliquota do ISSQN em %, ate 9.99. Nao informe quando opSimpNac=1.',
|
|
98
|
+
},
|
|
99
|
+
tpImunidade: code(domains.TP_IMUNIDADE, 'Tipo de imunidade. Obrigatorio somente quando tribISSQN=2.'),
|
|
100
|
+
cPaisResult: COUNTRY('Pais onde se verifica o resultado do servico. Obrigatorio somente quando tribISSQN=3.'),
|
|
101
|
+
}, ['tribISSQN', 'tpRetISSQN'], 'Tributacao municipal (ISSQN). Obrigatoria: o SDK nao assume tratamento padrao.');
|
|
102
|
+
const piscofins = object({
|
|
103
|
+
CST: code(domains.PIS_COFINS_CST, 'Codigo de situacao tributaria do PIS/COFINS, ex.: 07 = operacao isenta.'),
|
|
104
|
+
vBCPisCofins: DECIMAL('Base de calculo do PIS/COFINS.'),
|
|
105
|
+
pAliqPis: DECIMAL('Aliquota do PIS em %.'),
|
|
106
|
+
pAliqCofins: DECIMAL('Aliquota da COFINS em %.'),
|
|
107
|
+
vPis: DECIMAL('Valor do PIS.'),
|
|
108
|
+
vCofins: DECIMAL('Valor da COFINS.'),
|
|
109
|
+
tpRetPisCofins: code(domains.TP_RET_PIS_COFINS, 'Retencao do PIS/COFINS/CSLL.'),
|
|
110
|
+
}, ['CST'], 'PIS/COFINS.');
|
|
111
|
+
const tributacaoFederal = object({
|
|
112
|
+
piscofins,
|
|
113
|
+
vRetCP: DECIMAL('Contribuicao previdenciaria retida.'),
|
|
114
|
+
vRetIRRF: DECIMAL('IRRF retido.'),
|
|
115
|
+
vRetCSLL: DECIMAL('CSLL retida.'),
|
|
116
|
+
}, [], 'Tributacao federal.');
|
|
117
|
+
const totTrib = object({
|
|
118
|
+
vTotTribFed: DECIMAL('Valor aproximado dos tributos federais.'),
|
|
119
|
+
vTotTribEst: DECIMAL('Valor aproximado dos tributos estaduais.'),
|
|
120
|
+
vTotTribMun: DECIMAL('Valor aproximado dos tributos municipais.'),
|
|
121
|
+
pTotTribFed: DECIMAL('Percentual aproximado dos tributos federais.'),
|
|
122
|
+
pTotTribEst: DECIMAL('Percentual aproximado dos tributos estaduais.'),
|
|
123
|
+
pTotTribMun: DECIMAL('Percentual aproximado dos tributos municipais.'),
|
|
124
|
+
pTotTribSN: DECIMAL('Percentual aproximado dos tributos do Simples Nacional.'),
|
|
125
|
+
indTotTrib: { type: 'string', enum: ['0'], description: 'Indicador de nao informacao da carga tributaria (MEI).' },
|
|
126
|
+
}, [], 'Carga tributaria aproximada. Informe uma unica forma conforme prestador.opSimpNac: ' +
|
|
127
|
+
'1 (nao optante) = pTotTribFed, pTotTribEst e pTotTribMun; 2 (MEI) = somente indTotTrib="0"; 3 (ME/EPP) = somente pTotTribSN. ' +
|
|
128
|
+
'Os campos vTotTrib* existem no layout, mas a matriz atual os rejeita.');
|
|
129
|
+
const comercioExterior = object({
|
|
130
|
+
mdPrestacao: code(domains.MD_PRESTACAO, 'Modo de prestacao.'),
|
|
131
|
+
vincPrest: code(domains.VINC_PREST, 'Vinculo entre as partes.'),
|
|
132
|
+
tpMoeda: DIGITS(3, 'Codigo da moeda da transacao (tabela de moedas do BACEN), ex.: 220 = dolar americano.'),
|
|
133
|
+
vServMoeda: DECIMAL('Valor em moeda estrangeira; padrao: emissao.valores.vServMoeda.'),
|
|
134
|
+
mecAFComexP: code(domains.MEC_AF_COMEX_P, 'Mecanismo de apoio ao comercio exterior do prestador; 01 = nenhum.'),
|
|
135
|
+
mecAFComexT: code(domains.MEC_AF_COMEX_T, 'Mecanismo de apoio ao comercio exterior do tomador; 01 = nenhum.'),
|
|
136
|
+
movTempBens: code(domains.MOV_TEMP_BENS, 'Vinculo com movimentacao temporaria de bens.'),
|
|
137
|
+
mdic: code(domains.MDIC, 'Compartilhar a NFS-e com a Secretaria de Comercio Exterior.'),
|
|
138
|
+
}, ['mdPrestacao', 'vincPrest', 'tpMoeda', 'mecAFComexP', 'mecAFComexT', 'movTempBens', 'mdic'], 'Comercio exterior. Presenca deste bloco classifica a nota como exportacao.');
|
|
139
|
+
const obra = object({
|
|
140
|
+
inscImobFisc: TEXT('Inscricao imobiliaria fiscal.', 30),
|
|
141
|
+
cObra: TEXT('Codigo da obra (CNO/CEI).', 30),
|
|
142
|
+
}, ['cObra'], 'Obra de construcao civil.');
|
|
143
|
+
const servicoOverride = object({
|
|
144
|
+
xDescServ: X_DESC_SERV,
|
|
145
|
+
cLocPrestacao: C_LOC_PRESTACAO,
|
|
146
|
+
cNBS: C_NBS,
|
|
147
|
+
}, [], 'Sobrescreve campos do servico padrao nesta nota.');
|
|
148
|
+
const emissao = object({
|
|
149
|
+
nDPS: { type: 'string', pattern: '^[1-9]\\d{0,14}$', description: 'Numero da DPS, 1 a 15 digitos sem zero a esquerda. Unico por prestador e serie; nunca reutilize.' },
|
|
150
|
+
serie: { type: 'string', pattern: '^\\d{1,5}$', description: 'Sobrescreve prestador.serie nesta nota.' },
|
|
151
|
+
dhEmi: {
|
|
152
|
+
type: 'string',
|
|
153
|
+
pattern: '^20\\d{2}-\\d{2}-\\d{2}T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:[+-](?:0\\d|1[01]):00|\\+12:00)$',
|
|
154
|
+
description: 'Data/hora de emissao com offset, ex.: 2026-06-15T10:30:00-03:00. Padrao: agora.',
|
|
155
|
+
},
|
|
156
|
+
dCompet: { type: 'string', pattern: '^20\\d{2}-\\d{2}-\\d{2}$', description: 'Data de competencia YYYY-MM-DD. Padrao: data de emissao.' },
|
|
157
|
+
valores,
|
|
158
|
+
servico: servicoOverride,
|
|
159
|
+
tomador,
|
|
160
|
+
intermediario,
|
|
161
|
+
tributacaoMunicipal,
|
|
162
|
+
tributacaoFederal,
|
|
163
|
+
comercioExterior,
|
|
164
|
+
obra,
|
|
165
|
+
totTrib,
|
|
166
|
+
}, ['nDPS', 'valores', 'tributacaoMunicipal', 'totTrib'], 'Dados especificos desta nota.');
|
|
167
|
+
export const DPS_JSON_REQUEST_SCHEMA = {
|
|
168
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
169
|
+
title: 'DpsJsonRequest',
|
|
170
|
+
...object({
|
|
171
|
+
ambiente: {
|
|
172
|
+
type: 'string',
|
|
173
|
+
enum: ['restrita', 'producao'],
|
|
174
|
+
description: 'Ambiente SEFIN. restrita = homologacao (padrao); producao gera nota fiscal valida.',
|
|
175
|
+
},
|
|
176
|
+
prestador,
|
|
177
|
+
servico,
|
|
178
|
+
emissao,
|
|
179
|
+
}, ['prestador', 'servico', 'emissao'], 'Requisicao declarativa de DPS (NFS-e Nacional, layout 1.01). Valores numericos fiscais sao strings para preservar zeros a esquerda. ' +
|
|
180
|
+
'Nota nacional: sem comercioExterior; tomador com CPF/CNPJ e endNac. Exportacao: comercioExterior, valores.vServMoeda/cotacao, ' +
|
|
181
|
+
'tributacaoMunicipal.tribISSQN=3 com cPaisResult, tomador com NIF/cNaoNIF e endExt. ' +
|
|
182
|
+
'O schema nao verifica regras entre campos; valide com validateDpsJsonRequest antes de emitir.'),
|
|
183
|
+
};
|
|
184
|
+
//# sourceMappingURL=dpsJsonSchema.js.map
|