← InicioFleetPay / Schema

FiscalTaxRuleCreate

Estructura preservada del contrato versionado de la API.

Las descripciones técnicas se traducen del contrato versionado. Se conservan los identificadores y el JSON originales; se omiten los ejemplos de datos.

cfop e icms_variante siempre son obligatorios. aliquota es obligatoria en ICMS00, ICMS20, ICMS90 e ICMSOutraUF, y está prohibida en las demás variantes; p_red_bc es obligatoria en ICMS20, ICMS90 e ICMSOutraUF, y está prohibida en las demás (enviar un campo fuera de su variante devuelve 422). Los otros campos son opcionales y admiten valores nulos. La vigencia actúa como filtro: una regla fuera del intervalo valid_from/valid_until no se considera durante la emisión.

Los campos de IBS/CBS forman un bloque: informar cualquiera de las tres tasas (ibs_uf_aliquota, ibs_mun_aliquota, cbs_aliquota) hace que la regla determine las tres y que las omitidas se consideren cero; cero también es una decisión tributaria. Las tasas admiten 4 decimales porque las reducciones de la LC 214/2025 producen porcentajes como 0.8825.

origin_statestring | nullOpcional

Estado de origen; null (u omitido) significa cualquier origen.

minLength2
maxLength2
destination_statestring | nullOpcional

Estado de destino; null (u omitido) significa cualquier destino.

minLength2
maxLength2
tp_servinteger | nullOpcional

Tipo de servicio (ide/tpServ) al que se aplica la regla; null (u omitido) = cualquier tipo. 0 normal, 1 subcontratación, 2 redespacho, 3 redespacho intermedio; no se acepta 4 (multimodal). Una regla que coincide con el tipo tiene prioridad sobre cualquier regla basada únicamente en el recorrido.

0 · 1 · 2 · 3 · null
cfopstring | nullObligatorio

Obligatorio. CFOP que el motor registra para el servicio. En los contra-CT-e con una regla sin tp_serv, solo se toma el dígito de operación (5xxx/6xxx); el código final se determina por el recorrido (5360/6360 o 5932/6932). Con una regla específica del tipo, se mantiene su CFOP cuando el servicio comienza en el estado del emisor (se sigue imponiendo 5932/6932 cuando comienza en otro estado).

pattern"^\\d{4}$"
cststring | nullOpcional

Solo para ICMS45, donde es obligatorio (40, 41 o 51). En las demás variantes, se ignora el campo: el servidor deriva el CST de la variante (ICMS00→00, ICMS20→20, ICMS60→60, ICMS90/ICMSOutraUF/ICMSSN→90).

"40" · "41" · "51" · null
aliquotanumber | null · doubleOpcional

Porcentaje de ICMS. Obligatorio en ICMS00, ICMS20, ICMS90 e ICMSOutraUF; prohibido en ICMS45, ICMS60 e ICMSSN.

minimum0
maximum100
p_red_bcnumber | null · doubleOpcional

Reducción porcentual de la base imponible del ICMS. Obligatoria en ICMS20, ICMS90 e ICMSOutraUF; prohibida en las demás variantes.

minimum0
maximum100
ibs_cbs_cststring | nullOpcional

CST de IBS/CBS con 3 dígitos, p. ej. 000 para tributación integral. No debe confundirse con el cst del ICMS de 2 dígitos: son vocabularios distintos.

pattern"^\\d{3}$"
ibs_cbs_class_tribstring | nullOpcional

Clasificación tributaria de IBS/CBS, con 6 dígitos — p. ej. 000001.

pattern"^\\d{6}$"
ibs_uf_aliquotanumber | null · doubleOpcional

Tasa estatal de IBS, en porcentaje, con hasta 4 decimales.

minimum0
maximum100
ibs_mun_aliquotanumber | null · doubleOpcional

Tasa municipal de IBS, en porcentaje, con hasta 4 decimales.

minimum0
maximum100
cbs_aliquotanumber | null · doubleOpcional

Tasa de CBS, en porcentaje, con hasta 4 decimales.

minimum0
maximum100
ibs_cbs_p_red_bcnumber | null · doubleOpcional

Reducción porcentual de la base imponible de IBS/CBS, con hasta 4 decimales. Se aplica antes de las alícuotas.

minimum0
maximum100
valid_fromstring | null · dateOpcional
valid_untilstring | null · dateOpcional

No puede ser anterior a valid_from.

notesstring | nullOpcional
maxLength255
Definición JSON Original (Descripciones en Portugués)
{
  "type": "object",
  "required": [
    "cfop",
    "icms_variante"
  ],
  "description": "`cfop` e `icms_variante` são sempre obrigatórios. `aliquota` é obrigatória em `ICMS00`,\n`ICMS20`, `ICMS90` e `ICMSOutraUF` e proibida nas demais; `p_red_bc` é obrigatória em\n`ICMS20`, `ICMS90` e `ICMSOutraUF` e proibida nas demais (enviar fora da variante\nresponde `422`). Os outros campos são opcionais e anuláveis. A vigência é filtro:\nregra fora da janela `valid_from`/`valid_until` não é considerada na emissão.\n\nOs campos de IBS/CBS formam um bloco: informar qualquer uma das três alíquotas\n(`ibs_uf_aliquota`, `ibs_mun_aliquota`, `cbs_aliquota`) faz a regra responder pelas\ntrês, e as deixadas em branco valem zero — zero também é decisão tributária. As\nalíquotas aceitam 4 casas decimais porque as reduções da LC 214/2025 produzem\npercentuais como `0.8825`.\n",
  "properties": {
    "origin_state": {
      "type": [
        "string",
        "null"
      ],
      "minLength": 2,
      "maxLength": 2,
      "description": "UF de origem; `null` (ou omitido) = qualquer origem."
    },
    "destination_state": {
      "type": [
        "string",
        "null"
      ],
      "minLength": 2,
      "maxLength": 2,
      "description": "UF de destino; `null` (ou omitido) = qualquer destino."
    },
    "tp_serv": {
      "type": [
        "integer",
        "null"
      ],
      "enum": [
        0,
        1,
        2,
        3,
        null
      ],
      "description": "Tipo de serviço (`ide/tpServ`) a que a regra se aplica; `null` (ou omitido) =\nqualquer tipo. `0` normal, `1` subcontratação, `2` redespacho, `3` redespacho\nintermediário; o `4` (multimodal) não é aceito. Regra com tipo casado vence\nqualquer regra só de rota.\n"
    },
    "cfop": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^\\d{4}$",
      "description": "Obrigatório. CFOP que o motor grava na prestação. Nos contra-CT-e com regra sem\n`tp_serv` só empresta o dígito de operação (5xxx/6xxx) e o código final vem da rota\n(`5360`/`6360` ou `5932`/`6932`); com regra do tipo, o CFOP dela é mantido quando a\nprestação começa na UF do emitente (o `5932`/`6932` de prestação iniciada em outra UF\ncontinua imposto).\n"
    },
    "icms_variante": {
      "$ref": "#/components/schemas/FiscalTaxRuleIcmsVariant"
    },
    "cst": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "40",
        "41",
        "51",
        null
      ],
      "description": "Só para `ICMS45`, e nela é obrigatório (`40`, `41` ou `51`). Nas demais variantes o\ncampo é ignorado — o CST é derivado da variante no servidor (`ICMS00`→`00`,\n`ICMS20`→`20`, `ICMS60`→`60`, `ICMS90`/`ICMSOutraUF`/`ICMSSN`→`90`).\n"
    },
    "aliquota": {
      "type": [
        "number",
        "null"
      ],
      "format": "double",
      "minimum": 0,
      "maximum": 100,
      "description": "Percentual do ICMS. Obrigatório em `ICMS00`, `ICMS20`, `ICMS90` e `ICMSOutraUF`;\nproibido em `ICMS45`, `ICMS60` e `ICMSSN`.\n"
    },
    "p_red_bc": {
      "type": [
        "number",
        "null"
      ],
      "format": "double",
      "minimum": 0,
      "maximum": 100,
      "description": "Redução da base de cálculo do ICMS, em percentual. Obrigatória em `ICMS20`,\n`ICMS90` e `ICMSOutraUF`; proibida nas demais variantes.\n"
    },
    "ibs_cbs_cst": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^\\d{3}$",
      "description": "CST de IBS/CBS, com 3 dígitos — ex.: `000`, tributação integral. Não confundir com o\n`cst` do ICMS, de 2 dígitos: são vocabulários diferentes.\n"
    },
    "ibs_cbs_class_trib": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^\\d{6}$",
      "description": "Classificação tributária de IBS/CBS, com 6 dígitos — ex.: `000001`.\n"
    },
    "ibs_uf_aliquota": {
      "type": [
        "number",
        "null"
      ],
      "format": "double",
      "minimum": 0,
      "maximum": 100,
      "description": "Alíquota do IBS estadual, em percentual, com até 4 casas decimais."
    },
    "ibs_mun_aliquota": {
      "type": [
        "number",
        "null"
      ],
      "format": "double",
      "minimum": 0,
      "maximum": 100,
      "description": "Alíquota do IBS municipal, em percentual, com até 4 casas decimais."
    },
    "cbs_aliquota": {
      "type": [
        "number",
        "null"
      ],
      "format": "double",
      "minimum": 0,
      "maximum": 100,
      "description": "Alíquota da CBS, em percentual, com até 4 casas decimais."
    },
    "ibs_cbs_p_red_bc": {
      "type": [
        "number",
        "null"
      ],
      "format": "double",
      "minimum": 0,
      "maximum": 100,
      "description": "Redução da base de cálculo de IBS/CBS, em percentual, com até 4 casas decimais.\nAplicada antes das alíquotas.\n"
    },
    "valid_from": {
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "valid_until": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "Não pode ser anterior a `valid_from`."
    },
    "notes": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255
    }
  }
}