The Registration of Service Providers of Other Municipalities (CPOM) was an initiative of the prefectures of several Brazilian states in order to guarantee the correct payment of the service tax (ISS) in typical cases in which the provider has an EIN in a municipality other than where the service will be provided. This measure aims to combat tax evasion practiced by some companies that use fictitious addresses to pay less taxes.
How this works:
By the Complementary Statute no. 116/03, ISS must be collected at the service provider’s establishment (rule that includes numerous exceptions). The municipalities have the autonomy to define the ISS rate between 2% and 5%. Some business owners, in face of this fact, register companies in addresses from municipalities where the rate is lower than that of the municipality where the business is actually established.
With CPOM in force, the provision of services is now subject to ISS double taxation. We are talking specifically about the following scenario:
Prefecture of city B requires CPOM
Illustrative flowchart (city A = Barueri, city B = São Paulo)
As from the Supplier Municipality Verification event (yellow circle), due considerations will be made in the Tax module, in the ISS Double Taxation Registration. Both taxes (both the service provider and the service contractor's) will be calculated and withheld in the Financial module when the Accounts Payable bill is issued. For the ISS withholding on the bill post (parameter MV_MRETISS = 2), this functionality has not yet come into effect.
The detailed configuration for ISS calculation and withholding can be found at this link: DOC0020_ISS_Withholding
MV_MRETISS = 1
MV_ALIQISS = 2
Nature Registration
Supplier Registration
ISS Double Taxation Registration (this will include, by type of service, Service Providers - Suppliers that are from other municipalities and that do not have CPOM for the municipality where the Accounts Payable invoice is being issued)
ISS Rate Registration (also enter, in this registration, the Supplier that represents the Municipality responsible for paying ISS double taxation). It is not necessary to bind a product
Addition of Accounts Payable for BRL 10,000.00, in which BRL 200.00 is ISS
When saved, the routine validates the scenario:
By filling the ISS Serv Code field with the type of service previously registered to calculate the ISS double taxation
Generated tax
Data modeling, fields creation in file SX3 - Fields:
Table SE2 Accounts Payable:
• E2_CODSERV
Field | E2_CODSERV |
Type | Character |
Size | 9 |
Decimal | 0 |
Format | @! |
Title | ISS Serv Code |
Description | ISS Service Code |
Level | 1 |
Used | Yes |
Mandatory | No |
Browse | No |
Visual? | Edit |
Context | Real |
Options | <empty> |
When | <empty> |
Relation | <empty> |
Val. System | ExistCpo("SX5","60"+AllTrim(M→E2_CODSERV)) .and. Fa050Nat2() |
Help | E2_CODSERV |
Field | E2_BTRISS |
Type | Numeric |
Size | 14 |
Decimal | 2 |
Format | @E 99,999,999,999.99 |
Title | ISS Double Taxation |
Description | ISS CPOM Double Taxation |
Level | 1 |
Used | Yes |
Mandatory | No |
Browse | No |
Visual? | Edit |
Context | Real |
Options | <Empty> |
When | M->E2_MULTNAT != "1" |
Relationship | <Empty> |
Val. System | Positivo() .and. IIF(M->E2_TIPO="PR" .and. M->E2_ISSBTR > 0,.F.,.T.) |
Help | E2_BTRISS |
Field | E2_VRETBIS |
Type | Numeric |
Size | 14 |
Decimal | 2 |
Format | @E 99,999,999,999.99 |
Title | Vl. ISBWithh. |
Description | Vl. ISS Double Tax Withholding |
Level | 1 |
Used | Yes |
Mandatory | No |
Browse | No |
Visual? | View |
Context | Real |
Options | <Empty> |
When | <Empty> |
Relation | <Empty> |
Val. System | <Empty> |
Help | E2_VRETBIS |
Data modeling, fields creation in file SX3 - Fields:
Table SE1 Accounts Receivable:
Field | E1_CODSERV |
Type | Character |
Size | 9 |
Decimal | 0 |
Format | @! |
Title | ISS Serv Code |
Description | ISS Service Code |
Level | 1 |
Used | Yes |
Mandatory | No |
Browse | No |
Visual? | Edit |
Context | Real |
Options | <empty> |
When | <empty> |
Relation | <empty> |
Val. System | ExistCpo("SX5","60"+AllTrim(M→E1_CODSERV)) .and. Fa040Natur() |
Help | E1_CODSERV |
Field | E1_BTRISS |
Type | Numeric |
Size | 14 |
Decimal | 2 |
Format | @E 99,999,999,999.99 |
Title | ISS Double Taxation |
Description | ISS Double Taxation Amount |
Level | 1 |
Used | Yes |
Mandatory | No |
Browse | No |
Visual? | Edit |
Context | Real |
Options | <Empty> |
When | M->E1_MULTNAT != "1" |
Relation | <Empty> |
Val. System | positivo() .and. m->e1_iss < m->e1_valor .and. IIF(m->e1_tipo="PR" .and. m->e1_iss > 0,.F.,.T.) .and. fa040valor() |
Help | ISS Double Taxation |
Field | E1_VRETBIS |
Type | Numeric |
Size | 14 |
Decimal | 2 |
Format | @E 99,999,999,999.99 |
Title | Value Wt. ISSB |
Description | Amount withheld in ISS double taxation |
Level | 1 |
Used | Yes |
Mandatory | No |
Browse | No |
Visual? | View |
Context | Real |
Options | <Empty> |
When | <Empty> |
Relation | <Empty> |
Val. System | <Empty> |
Help | Value Wt. ISSB |