Rules that work the same way across all API methods.
Number precision
Quantities are stored with up to 3 decimal places, amounts and prices to the cent. The API rounds incoming values the same way the Controlata interface does: 0.3333 is saved as 0.333, 10.125 as 10.13. A quantity in operation lines must stay above zero after rounding: 0.0004 is rejected.
Editing
edit methods change only the fields you pass. Only the record ID is required, the other fields keep their current values.
- Arrays (operation lines, categories, suppliers, product components) are replaced as a whole when passed. To clear an array, pass an empty array.
- If at least one of the materials and products arrays is passed, the operation lines are replaced as a whole, and the array that is not passed is treated as empty. If neither is passed, the lines stay unchanged.
For example, to change only a purchase's notes, pass purchase_id and notes: the lines, dates, storage locations and supplier stay as they were.
Pagination
get_list methods accept optional pagination parameters. Exception: small reference lists (units of measure, categories and storage locations) are always returned in full and do not accept these parameters.
| Field | Type | Description |
|---|---|---|
| limit | int | Page size, from 1 to 1000 |
| offset | int | How many records to skip. Passed together with limit |
Without limit the whole list is returned. The response has a total field with the total number of records matching the filters.
| Error | Reason |
|---|---|
| Invalid limit value. Must be between 1 and 1000 | Invalid limit |
| Invalid offset value. Must be 0 or greater | Invalid offset |
| Offset requires limit | offset passed without limit |