These are the urls where we query Zoho API:
TARGETURL: https://crm.zoho.com/crm/private/json/Invoices/getSearchRecords
ACCOUNTS_URL: https://crm.zoho.com/crm/private/json/Accounts/getSearchRecords
CONTACTS_URL: https://crm.zoho.com/crm/private/json/Contacts/getRelatedRecords
UPDATE_INVOICES_URL: https://crm.zoho.com/crm/private/xml/Invoices/updateRecords
the "TARGETURL" is the one where in the connector gets or search the invoices records as stated on the bold characters: https://crm.zoho.com/crm/private/json/Invoices/getSearchRecords
the parameters on the query are as follows below:
$parameter = "";
$parameter = $utilObj->setParameter("scope", SCOPE, $parameter);
$parameter = $utilObj->setParameter("authtoken", AUTHTOKEN, $parameter);
$parameter = $utilObj->setParameter("selectColumns", "All", $parameter);
$parameter = $utilObj->setParameter("searchCondition", "(Completed|is|false)", $parameter);
please see the searchCondition the one in bold above.... which needs to be satisfied "Completed" the custom field you have created in Zoho must be "false" which means unchecked. that is the only basis on the search we're using and whatever records it would return that will be further checked like verification of accounts,contacts and updating invoice records which are represented by the other urls above.
i hope they will resolve the issue on their end... i'm not sure if they are limiting the searched results records on their end as to reduce server load or can't really tell. that's why it's easier to trace if they have a developer API execution sandbox. that way it's easy to test within their scope. because if the sandbox return the correct records and the connector output is not then it's easy to counter-check."
This issue is still occurring and is still causing major problems with our syncing between our accounting package and CRM via API.