核心接口
NCM 商品编码
2 个接口
/api/ncm/get查询 NCM
按编码返回官方 NCM 名录中的一条,含各级描述组成的层级链、来自 IPI 税率表的税率,以及该编码所属的 CEST。编码可带点也可不带点,可以是 8 位完整编码,也可以是章(2 位)、位置(4 位)或中间层级(5 至 7 位)。本接口免费。
必需请求头
| 请求头 | 类型 | 说明 |
|---|---|---|
| token | string | 开票公司令牌 |
| sign | string | MD5 签名 |
| timestamp | string | 秒级 Unix 时间戳 |
Body
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ncm | string | 是 | 2、4、5、6、7 或 8 位,如 "8517.13.00" 或 "85171300" |
只有 8 位编码能写进发票明细(valido_para_nota 为 true);2 至 7 位是归类层级,用于理解和筛选,不能直接开票。
官方名录只有编码、描述与生效期,不含税率。ipi 来自 IPI 税率表,excecoes 为同一编码下的例外税率;cest 来自税收替代商品清单,列入清单表示该商品属于可能适用税收替代的范围,是否实际适用取决于涉及的两个州之间的协定。
叶子层级的 descricao 往往只是「Outras」这类片段,脱离上级无法理解,请优先使用 descricao_completa,或从 hierarquia 自行拼装。
名录随官方法规更新而换版。建议按 versao 缓存,发现取值变化时再重新同步。
/api/ncm/listNCM 分页列表
分页返回官方 NCM 名录,可按编码前缀限定子树、按关键词检索,或只取能用于开票的 8 位编码。过滤条件通过 JSON 请求体传递,均为可选、可组合;请求体为空({})时按页返回整份名录(一万五千余条)。条目始终按编码升序排列。本接口免费。
必需请求头
| 请求头 | 类型 | 说明 |
|---|---|---|
| token | string | 开票公司令牌 |
| sign | string | MD5 签名 |
| timestamp | string | 秒级 Unix 时间戳 |
Body
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码,从 1 开始;默认 1 |
| page_size | int | 否 | 每页条数;默认 50,最大 200 |
| prefixo | string | 否 | 编码前缀,限定某一子树:2、4、5、6、7 或 8 位。例如 "8517" 返回该位置下的全部编码 |
| termo | string | 否 | 关键词,在完整描述中匹配,至少 2 个字符。匹配的是整条层级链,所以上级标题里出现该词时,其下整棵子树都会命中;要收窄请配合 prefixo 或 somente_folhas |
| somente_folhas | string | 否 | 传 "1" 时只返回 8 位编码,即唯一能用于发票明细的层级 |
| incluir_extintos | string | 否 | 传 "1" 时连已废止的编码一起返回;默认只返回现行编码 |
| incluir_impostos | string | 否 | 传 "0" 时不返回 ipi 与 cest,响应体更小;默认返回 |
| incluir_hierarquia | string | 否 | 传 "0" 时不返回 hierarquia,响应体更小;默认返回 |
只有 8 位编码能写进发票明细(valido_para_nota 为 true);2 至 7 位是归类层级,用于理解和筛选,不能直接开票。
官方名录只有编码、描述与生效期,不含税率。ipi 来自 IPI 税率表,excecoes 为同一编码下的例外税率;cest 来自税收替代商品清单,列入清单表示该商品属于可能适用税收替代的范围,是否实际适用取决于涉及的两个州之间的协定。
叶子层级的 descricao 往往只是「Outras」这类片段,脱离上级无法理解,请优先使用 descricao_completa,或从 hierarquia 自行拼装。
名录随官方法规更新而换版。建议按 versao 缓存,发现取值变化时再重新同步。