warnings array. It is the channel through which the
engine says “what you sent me does not line up with what I can see” — without deciding
on your behalf.
That is what separates this channel from validation. A warning reports that an input
contradicts something the engine can check for itself, and leaves the decision to you —
because you may hold information this API never receives.
The field
warnings is always present and never null. It is an empty list when there is
nothing to flag, so you can iterate it without branching.
It appears on the /calculate response and inside every
results[].calculation of a /batch response.
severity exists from the start so that richer severities will not break the contract
later.
Warning codes
The last three came in with fortnightly settlement.
Threshold rules (CO ordinario)
Two Colombian flags are checked against the salary that gates them:
Both are measured on
salario_basico, not on total earnings. That is a debatable
reading, so every message states exactly what it compared: a payroll officer who
disagrees can see the criterion instead of guessing it.
What the silence used to cost, measured in CO 2026:
- Auxilio paid where it was not due, at 5 SMMLV:
249,095per month of overpayment per employee, plus an inflated cesantias base. - Exoneration claimed where it was not due, at 15 SMMLV:
3,545,583per month the employer believes it does not owe. Over twelve months, more than 42 million of exposure with the UGPP and the DIAN.
Why one flag warns in both directions and the other does not
aplica_exoneracion_114_1 does not warn when it is off, and that is deliberate.
The exoneration also requires the employer to be a corporate income tax filer — an
attribute of the company that never arrives in a request. Warning on the off case would
fire on almost every legitimate ordinary request, and that is how you train an integrator
to ignore the entire channel.
The auxilio warns in both directions, because there the engine has all the information it
needs.
The same reasoning applies in Peru: of the two concepts paid alongside the gratificacion,
only one is registered. Two warnings for one problem is the same mistake.