1. Do the licenseuuid and sessionuuid tokens expire, or are they unlimited?
Tokens expire after 60 days of non-use.
2. Is modifiedTimestamp set the same as createdTimestamp when a record is created (rather than null)?
They are both set when the record is created and the versionNumber is set to 0. Subsequent changes update the modifiedTimestamp and the versionNumber.
3. Are there any API restrictions such as calls per minute/download or size/IP whitelisting?
The Rate Limiting is 10 requests per second. We don’t place limits on download size and we don’t whitelist IP addresses.
4. Does every entity in the data model have a UUID (as in, all records can be uniquely identified)?
Every entity has a UUID.
5. Should I use Search or Synchronisation?
Both the Search endpoints and Data Synchronisation can provide the same information. When using Search you make a request each time you need information which can put load on the servers, however it does have the advantage of built-in search criteria and text-matching. Data Synchronisation on the other hand, allows you to keep an up-to-date local copy of the data.
We strongly recommend using Data Synchronisation where possible, especially if you need to constantly request data, for example when providing a product search for an e-commerce website.
6. What happens if I generate a new session ID?
If a new session ID is generated, it renders the previous session ID invalid and will cease to work. You will enter in the new session ID to reestablish the connections.
7. What validation rules exist when text fields are being loaded?
When text fields are being loaded through the API, such as an address field, the following validation occurs on the text field:
- May not contain double spaces.
- May not contain tab characters.
- May not contain new line characters.
- May not contain form feed characters.
- May not contain carriage return characters.
- May not contain control characters.
- May not contain Unicode space characters.
- May not start with a space.
- May not end with a space.
8. What triggers a data sync requirement?
When an addition of a new entry, update to, or deletion of an existing entry in any of the following data types:
- Products
- Customers
- Customer Invoices
- Customer Contract Rates
- Product Promotional Prices
- Discount Matrix Entries
A new timestamp is added to the entry, which also marks the item to be resynchronised on the next sync. This sync needs to be performed before the item can be used in the API.
There are currently six Data Synchronisation endpoints available: Products, Customers, Customer Invoices, Customer Contract Rates, Product Promotional Prices and Discount Matrix Entries. When there is an addition, change or deletion for any of these, they will be provided in the next request to the Data Synchronisation.
9. How to differentiate a deleted record from a normal one?
Check the deletedTimestamp on a record. if the record has been deleted, this record will show a timestamp of when the deletion occurred.
10. Where can I find documentation about the API?
Additional documentation for the API can be found on our Infusion Public API info page as well as the Infusion external integration API definition on our OpenAPI Definition page
11. Why is my request returning “User not authorised”?
Like any user, the External API has roles that give permissions to specific areas of the software. Ensure that the external API user has roles assigned to allow it to process as if it was a user within the software.
12. How can I stop an already discounted price from receiving additional discount?
If you are passing through an already discounted price on an invoice line, there is a line of code that sets the line discount to the customers default discount if the one supplied is null. To avoid having additional discounts applied to the already discounted invoice line, this line of code needs to be populated with zero, rather than null.