NominexDocs
Referencia de la APICatálogos de plataforma

Editar

Autoadministra un catálogo con un override de la organización.

Descripcion general

Este endpoint escribe un override sobre un catálogo de plataforma, a nivel de toda la organización o acotado a una razón social. El override toma efecto de inmediato para cualquier catálogo, incluidas las tablas federales (UMA, ISR, IMSS). El identificador en la URL es el catalog_key del catálogo. Una solicitud exitosa devuelve 200 con la clave, el origen resultante y el effective_payload ya en vigor.

Endpoint

PATCHhttps://app.integranom.com/api/v1/platform-catalogs/{catalog_key}

Path param: catalog_key — string, la clave del catálogo a autoadministrar (por ejemplo uma, isr_tariff, imss_worker_ramos).

Override a nivel organización


Omite legal_entity_number (o envíalo como null) para que el override aplique a toda la organización. El payload es el nuevo valor y se valida contra el shape del catálogo. Su estructura varía por catálogo: el ejemplo de abajo (scalar) es ilustrativo; la forma real depende del shape (scalar / range_table / keyed_table).

Para conocer la estructura exacta del payload, consulta primero effective_payload / platform_payload en el endpoint de detalle.

{
  "payload": { "daily": "113.14", "monthly": "3439.46" }
}

Override frequency-scoped y por razón social


Para un catálogo frequency_scoped (como isr_tariff) el campo frequency es requerido; en el resto de los catálogos se ignora. Con legal_entity_number limitas el override a esa razón social (el source regresa como "rs"); si lo omites, aplica a toda la organización.

El campo reason es opcional e informativo. Recuerda que el payload de este ejemplo es ilustrativo: su forma real depende del shape del catálogo.

Payload de isn_by_state


Para isn_by_state el payload es un objeto que va de la clave del estado a su valor, y cada valor es una cadena decimal (tasa plana) o un objeto con exactamente uno de rate o brackets, más los opcionales taxSurchargeRate, baseSurchargeRate y exemptMonthlyAmount, todos cadenas decimales. Los brackets llevan lowerLimit, upperLimit (null en el último), fixedFee y marginalRate. En la respuesta, effective_payload trae cada estado como una cadena decimal con su tasa base, y las definiciones con objeto vienen aparte en isn_definitions.

{
  "payload": {
    "SIN": {
      "brackets": [
        { "lowerLimit": "0.01", "upperLimit": "500000.00", "fixedFee": "0.00", "marginalRate": "0.024" },
        { "lowerLimit": "500000.01", "upperLimit": null, "fixedFee": "12000.00", "marginalRate": "0.026" }
      ]
    },
    "CAM": { "rate": "0.03", "taxSurchargeRate": "0.33" },
    "QUE": { "rate": "0.03", "exemptMonthlyAmount": "76617.76" },
    "JAL": "0.03"
  }
}

El payload se rechaza con 400 cuando un estado trae rate y brackets a la vez o ninguno de los dos, cuando un valor no es una cadena decimal válida, cuando trae un campo que no existe, o cuando los rangos no son contiguos y ascendentes, se traslapan o dejan abierto un rango que no es el último. El cuerpo de la respuesta es { "message": "Invalid catalog payload for this catalog's shape.", "errors": { ... } }, con errors indexado por la clave del estado que falló.

Campos del cuerpo

CampoTipoNotas
frequencystringRequerido solo para catálogos frequency_scoped (por ejemplo isr_tariff). Se ignora en el resto.
legal_entity_numberinteger | nullOmitir o null = override a nivel de toda la organización. Un número lo limita a esa razón social.
reasonstringOpcional e informativo.
payloadobjectEl nuevo valor. Se valida contra el shape del catálogo; su estructura varía por catálogo. Consulta effective_payload / platform_payload en el detalle para conocer la forma exacta.

Forma de la respuesta

200 OK — la clave del catálogo, el origen resultante y el valor efectivo ya en vigor:

{
  "key": "uma",
  "source": "org",
  "frequency": null,
  "legal_entity_number": null,
  "effective_payload": { "daily": "113.14", "monthly": "3439.46" }
}

Errores

StatusCódigoCausa
400FREQUENCY_REQUIREDCatálogo frequency-scoped sin frequency.
400INVALID_PAYLOADEl payload no cumple el shape del catálogo. El cuerpo de la respuesta trae errors con el detalle.
400LEGAL_ENTITY_NOT_FOUNDLa razón social indicada no existe en tu organización.
400BELOW_MINIMUMUn valor queda por debajo del mínimo del catálogo. En factor_dias_mes: 5 para semana, 12 para quincena, 28 para mes y 336 para anio.
400ABOVE_MAXIMUMUn valor queda por encima del máximo del catálogo. En factor_dias_mes, mes no puede pasar de 31.
401-API key ausente o inválida.
404-El catálogo con ese catalog_key no existe.

Vocabulario de códigos de error

CódigoSignificado
FREQUENCY_REQUIREDEl catálogo es frequency-scoped y no incluiste frequency en el cuerpo.
INVALID_PAYLOADEl payload no cumple el shape del catálogo. Revisa errors en la respuesta para ver qué falló.
LEGAL_ENTITY_NOT_FOUNDEl legal_entity_number no corresponde a ninguna razón social de tu organización.
BELOW_MINIMUMUn valor del payload es menor al mínimo que permite el catálogo.
ABOVE_MAXIMUMUn valor del payload es mayor al máximo que permite el catálogo.
Abrir Nominex