/** * Parser do XML da NFS-e * Migrado de nfse-php/src/Xml/NfseXmlParser.php * e direction-nfse-danfe/src/Danfe/Schemas/NFSeSchema.cs * * Diferenças importantes entre emit e toma: * - emit.enderNac → todos os campos (xLgr, nro, xBairro, cMun, UF, CEP) direto no * - toma/interm.end → xLgr/nro/xCpl/xBairro direto em ; cMun/CEP aninhados em */ export declare function parseNfseXml(xml: string): NfseSchema; export interface NfseSchema { versao?: string; infNFSe?: InfNFSeSchema; } export interface InfNFSeSchema { id?: string; cStat: string; xMotivo: string; /** Chave de acesso (44 dígitos) */ chNFSe: string; /** Número sequencial da NFS-e no município */ nNFSe: string; /** Número do DFSe no sistema nacional */ nDFSe: string; dhProc: string; xLocEmi: string; xLocPrestacao: string; cLocIncid: string; xLocIncid: string; xTribNac: string; xTribMun: string; xNBS: string; verAplic: string; ambGer: number; tpEmis: number; procEmi: number; /** Uso da Administração Tributária Municipal */ xOutInf: string; emit?: EmitSchema; DPS?: DpsSchema; /** Valores calculados pela SEFIN (alíquota aplicada, ISSQN, base de cálculo) */ valores?: ValoresNfseSchema; /** Bloco IBS/CBS calculado pela SEFIN (reforma tributária) */ IBSCBS?: IBSCBSSchema; } export interface EmitSchema { CNPJ: string; CPF: string; IM: string; xNome: string; xFant: string; /** Endereço plano (todos os campos dentro de ) */ enderNac?: EnderNacSchema; fone: string; email: string; regTrib?: { opSimpNac: number; regApurSN: number; regEspTrib: number; }; } export interface TomadorSchema { CNPJ: string; CPF: string; /** NIF — Número de Identificação Fiscal de tomador estrangeiro */ NIF: string; /** Motivo para não informação do NIF () — tomador estrangeiro sem NIF */ cNaoNIF: string; IM: string; xNome: string; /** Endereço extraído de / (ou / para estrangeiro) */ enderNac?: EnderNacSchema; fone: string; email: string; } export interface EnderNacSchema { xLgr: string; nro: string; xCpl: string; xBairro: string; cMun: string; UF: string; CEP: string; cPais: string; /** Código postal estrangeiro () — vazio para endereço nacional */ cEndPost?: string; /** Cidade estrangeira () — vazio para endereço nacional */ xCidade?: string; /** Estado/província/região estrangeira () */ xEstProvReg?: string; } export interface DpsSchema { infDPS: { tpAmb: number; verAplic: string; serie: string; nDPS: string; dhEmi: string; dCompet: string; tpEmit: number; cLocEmi: string; subst?: { chSubstda: string; cMotivo: string; xMotivo: string; }; prest?: EmitSchema; toma?: TomadorSchema; interm?: TomadorSchema; serv?: { xDescServ: string; cTribNac: string; cServMun: string; cNBS: string; cIntContrib: string; cLocPrestacao: string; xInfComp: string; idDocTec: string; docRef: string; xPed: string; }; valores?: ValoresDpsSchema; }; } export interface ValoresNfseSchema { /** Valor do serviço (presente em algumas versões de resposta; usar DPS como fallback) */ vServico: number; vBC: number; pAliqAplic: number; vISSQN: number; vLiq: number; vCalcBM: number; vCalcDR: number; vTotalRet: number; vDescCondicionado: number; vDescIncondicionado: number; IRRF: number; CP: number; CSLL: number; PIS: number; COFINS: number; } export interface ValoresDpsSchema { vReceb: number; vServ: number; vDescIncond: number; vDescCond: number; /** Percentual de dedução/redução */ pDR: number; /** Valor monetário de dedução/redução */ vDR: number; tribISSQN: string; cPaisResult: string; tpImunidade: string; tpSusp: string; nProcesso: string; nBM: string; vRedBCBM: number; pRedBCBM: number; tpRetISSQN: string; pAliq: string; vRetCP: number; vRetIRRF: number; vRetCSLL: number; cstPisCofins: string; vBCPisCofins: number; pAliqPis: number; pAliqCofins: number; vPis: number; vCofins: number; tpRetPisCofins: string; pTotTribFed: number; pTotTribEst: number; pTotTribMun: number; } export interface IBSCBSSchema { cLocalidadeIncid: string; xLocalidadeIncid: string; pRedutor: number; vBC: number; pIBSUF: number; pAliqEfetUF: number; pIBSMun: number; pAliqEfetMun: number; pCBS: number; pAliqEfetCBS: number; vIBSTot: number; vIBSUF: number; vIBSMun: number; vCBS: number; vTotNF: number; } //# sourceMappingURL=nfse-parser.d.ts.map