Skip to content

feat: add federal taxation fields to DpsData and XmlBuilder#13

Merged
vitormattos merged 3 commits intomainfrom
feat/federal-taxation-dps-fields
Mar 31, 2026
Merged

feat: add federal taxation fields to DpsData and XmlBuilder#13
vitormattos merged 3 commits intomainfrom
feat/federal-taxation-dps-fields

Conversation

@vitormattos
Copy link
Copy Markdown
Member

Summary

Add NFS-e federal taxation (tribFed) support to the core package:

  • DpsData: add 10 federal PIS/COFINS, IRRF, CSLL and CP properties
  • XmlBuilder: serialize tribFed XML block when federal taxation data is present
  • XmlBuilderTest: cover tribFed serialization

Fields added to DpsData

  • federalPiscofinsSituacaoTributaria
  • federalPiscofinsTipoRetencao
  • federalPiscofinsBaseCalculo
  • federalPiscofinsAliquotaPis / federalPiscofinsValorPis
  • federalPiscofinsAliquotaCofins / federalPiscofinsValorCofins
  • federalValorIrrf
  • federalValorCsll
  • federalValorCp

XML output

When any federal field is non-empty the DPS XML now includes:

<tribFed>
  <piscofins>
    <CST>...</CST>
    <tipoRetIR>...</tipoRetIR>
    <vBCPISCOFINS>...</vBCPISCOFINS>
    <pAliqPIS>...</pAliqPIS>
    <vPIS>...</vPIS>
    <pAliqCOFINS>...</pAliqCOFINS>
    <vCOFINS>...</vCOFINS>
  </piscofins>
  <vRetIRRF>...</vRetIRRF>
  <vRetCSLL>...</vRetCSLL>
  <vRetCP>...</vRetCP>
</tribFed>

Add 10 optional string properties for federal taxation:
- federalPiscofinsSituacaoTributaria (CST)
- federalPiscofinsTipoRetencao
- federalPiscofinsBaseCalculo
- federalPiscofinsAliquotaPis / federalPiscofinsValorPis
- federalPiscofinsAliquotaCofins / federalPiscofinsValorCofins
- federalValorIrrf, federalValorCsll, federalValorCp

All default to empty string to preserve backward compatibility.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Add buildTribFederal() and hasFederalTaxationData() private methods to
XmlBuilder. The tribFed XML element is appended to totTrib when any of
the federal properties on DpsData are non-empty, following the NFS-e
Nacional schema (tiDPS v1.00).

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Add testBuildDpsIncludesFederalTaxationBlockWhenConfigured verifying
that tribFed XML element with all expected child nodes is emitted when
federal DpsData fields are populated.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
@vitormattos vitormattos merged commit c3562b5 into main Mar 31, 2026
10 checks passed
@vitormattos vitormattos deleted the feat/federal-taxation-dps-fields branch March 31, 2026 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant