The API sends a response after every call. The response is in XML format. If you think about integration it is very important to care about the response. It contains useful information which indicates the result of the call.
In case of “get” methodes the positive result always contains the response to the call in XML format.
“set” methode’s response contains acknowledgement of the call and the result which can be OK, or error.
Negative result, error
The structure of the error messages is always the same. It helps you to process the errors automatically. If error occured the API operation was not do anything. Let’s be clear. If you like to set a new customer in the CRM via API and an error occured the request will be droped. No data will be saved. In this case you have to correct the error[s] and the API call need to be repeated again.
<?xml version="1.0" encoding="utf-8"?>
<code>Error code number</code>
API error codes
Authentication and general errors
- 1 => Missing XML
- 2 => XML syntax error
- 3 => Invalid command
- 4 => Missing parameter
- 5 => Invalid API key
- 6 => Invalid session key
- 7 => Authentication error
- 8 => Too many requests in the same time. Please try later!
- 9 => Banned IP address
- 10 => Your session key is expired. Please authenticate again!
- 11 => Your protocol of request is not HTTPS
- 12 => Date format error in field
- 13 => Integer format error in field
- 14 => Numeric format error in field
- 15 => The following field must not be 0:
- 16 => The following field must be 0 or bigger:
- 17 => The following field must be minimum 0 and maximum 100:
- 18 => Standard permission error
- 19 => The following field must contain only numbers
- 20 => Invalid VAT
- 21 => Invalid currency! The valid currencies are:
- 22 => Invalid e-mail address
- 23 => The following field must be 0 or 1
- 24 => Your account is under trial period.
- 201 => Permission problem or non-existing contact with the given id
- 202 => Database query error
- 203 => Bad “contact_owner” field! The following user not exists
- 204 => Invalid “contact_categories”! The correct categories are:
- 205 => You have reached the maximum number of contacts in your plan. Please change to a bigger plan.
- 206 => contact_lastname, contact_firstname or contact_firm nodes could not be empty in case of a new contact.
- 301 => Non-existing invoice with the given id
- 302 => Error in “crdr” field. The valid values are the following: received, outgoing, advance in, advance out
- 303 => Error in “method” field. The valid values are the following: transfer, cash, bankcard, cheque, other, c.o.d., direct debit
- 304 => Non-existing bank account with the given value
- 305 => The issue date of invoice must bigger or equal than the issue date of the last invoice.
- 306 => The payment date of invoice must bigger or equal than the issue date.
- 307 => Invalid “storno_id”! Non-existing invoice or corrective invoice with the following ID:
- 308 => Invalid “language”:
- 309 => The following invoice has already paid:
- 310 => The sum of the balance and amount is bigger than the total amount of the invoice. Invoice ID:
- 311 => Invalid currency:
- 312 => Customer VAT type can be DOMESTIC, PIVATE_PERSON OR OTHER. Invalid customer VAT type:
- 313 => Unknown file ID
- 401 => Non-existing product with the given id
- 402 => Non-existing warehouse
- 403 => There isn’t enough quantity in the selected warehouse to remove stock with the given product id
- 404 => The type of product must be 1 (normal) or 3 (voucher)
- 405 => Non-existing product in field “collective_product” with the given id
- 406 => The product id is equal to one of it’s part product id in field ‘collective_product’
- 407 => Invalid shipping type:
- 408 => Non-existing delivery with the given id
- 409 => Invalid product price currency:
- 410 => Invalid takein currency:
- 411 => Too many products in the query:
- 412 => No purchase order extension.
- 413 => No PO connected to the given project code:
- 414 => Not existing PO with this ID or the status of the PO is not waiting for take in
- 415 => All fields must be filled in if you give address to the warehouse.
- 416 => This warehouse name is already exists.