Service list (LC 116)
The subitems of the service list annexed to Lei Complementar 116/2003, the services the ISS is levied on.
Validate
Checks whether a value is a subitem in force of the service list annexed to Lei Complementar 116/2003.
- Accepts the form the law prints (
"1.01"), a zero-padded item ("01.01"), the bare digits ("0101","101", the first 4 digits of a cTribNac) or a non-negative integer (101). Whitespace around the value is ignored. - The subitem always has 2 digits (
"1.1"is invalid). Any run of separators (space,.,-or/) is accepted between the item and the subitem, so"1-01","1 01"and"1..01"are valid; any other character ("1_01","1,01") is rejected. A number is read as bare digits, so the fractional number1.01is invalid: write the dotted form as a string. - The vetoed subitems 3.01, 7.14, 7.15, 13.01 and 17.07 are invalid. So are item headings (
"1"), the 6-digit national codes and item 99 of the national list, which is not part of the law. - Subitem 11.05, added by LC 183/2021, is valid.
- cTribNac and cTribMun are out of scope.
| Parameter | Type | Required |
|---|---|---|
value | string | number | yes |
| returns | boolean |
Check if a value is a subitem in force of the service list annexed to the Lei Complementar 116/2003, the list of the services the ISS is levied on.
- The law numbers a subitem as the item, a dot and two digits,
1.01to40.01. - Accepts that form, a zero padded item (
'01.01') or the bare digits ('0101','101'or the integer101), which are the first four digits of thecTribNaccode of the national NFS-e, with optional surrounding whitespace. - Any run of separators (space,
.,-or/) is accepted between the item and the subitem, as in the other codes with a printed grouping mask (isValidCfop,isValidNbs), so'1-01'and'1 01'are valid too. - A number is only read when it is a non-negative safe integer, so the float
1.01is rejected: write the dotted form as a string. - The vetoed subitems (
3.01,7.14,7.15,13.01and17.07), the item headings, the 6 digit national codes a subitem is split into and item 99 of the national list, which is not part of the law, are not valid. Municipal service codes are out of scope.
import { isValidServiceItem } from '@brazilian-utils/brazilian-utils';
isValidServiceItem('1.01'); // true
isValidServiceItem('01.01'); // true
isValidServiceItem('0101'); // true
isValidServiceItem(101); // true
isValidServiceItem('3.01'); // false (vetoed)
isValidServiceItem('99.01'); // false (national list only, not the law)
isValidServiceItem(1.01); // false (not a non-negative safe integer)Try it with JavaScript isValidServiceItem
Shared test cases (28) and the result in each library serviceItem.isValid
Look up
Looks up a subitem of the LC 116/2003 service list and returns its code and description.
- Same input rules as
serviceItem.isValid. Returnsnullexactly when that function returnsfalse. - The separators of
serviceItem.isValidare accepted between the item and the subitem ("1-01"gives code1.01). - The returned code is the form the law prints: the item without a leading zero, a dot and the 2-digit subitem (
"1.01","40.01"). - The description is the text of the national list (ANEXO B of the NFS-e). Subitem 17.14 is "Advocacia", with no final period, as in the official sheet.
| Parameter | Type | Required |
|---|---|---|
value | string | number | yes |
| returns | ServiceItem | null |
Look a subitem of the service list annexed to the Lei Complementar 116/2003 up and get its official description. The result is a ServiceItem record: { code, description }.
- Same rules as
isValidServiceItem.codeis the form the law prints ('1.01'). Returnsnullwhen the subitem is unknown or the value is not in a documented form.
import { getServiceItem } from '@brazilian-utils/brazilian-utils';
getServiceItem('1.01'); // { code: '1.01', description: 'Análise e desenvolvimento de sistemas.' }
getServiceItem('0101'); // { code: '1.01', description: 'Análise e desenvolvimento de sistemas.' }
getServiceItem('40.01'); // { code: '40.01', description: 'Obras de arte sob encomenda.' }
getServiceItem('3.01'); // null (vetoed)Source: Lei Complementar 116/2003, whose list was last amended by Lei Complementar 183/2021, and the sheet LISTA.SERV.NAC. of the ANEXO B of the Sistema Nacional NFS-e, the list in force in machine readable form.
Try it with JavaScript getServiceItem
Shared test cases (33) and the result in each library serviceItem.get
Official sources
See also NBS, NFS-e access key
Last updated on
