Module Navigation

Sage Intacct Troubleshooting: Time and Expense Records

Sage Intacct organizes time as a three level structure. A Timesheet covers one employee for one pay period. Under it sit one or more Time Cards, each representing a day or shift. Under each Time Card sit one or more Timesheet Entries, each a block of hours tied to a Project, Cost Code, Location, and time type. Before Arcoro writes anything, it checks every level of this structure at once. If any single check fails anywhere in the Timesheet, whether it is a missing pay period date, an unrecognized Project, or a missing Cost Code on one Time Card, the whole Timesheet for that employee and pay period is skipped for the run. Only the entry-merge conflict works differently: it skips just the one conflicting Timesheet Entry and lets the rest of the Timesheet through.

Several of these messages are short, generic sentences such as "Project is required." or "Person is required." The same wording can appear from other Arcoro connectors and other record families. Always confirm you are looking at the Sage Intacct time and expense sync step before treating a match on wording alone as confirmation.

Error Messages

Message textLevelDirectionOccurs whenOutcomeFix
Duplicate timesheets detected with the same Arcoro Identifier. Please delete the invalid timesheets and try again.TimesheetWrite (Arcoro to Sage Intacct)Sage Intacct already contains more than one Timesheet for this employee carrying the same Arcoro identifier custom field value. Logged once per duplicate Timesheet found, so two duplicates produce two log lines.Whole Timesheet skipped this run.In Sage Intacct, delete the extra duplicate Timesheet(s) for this employee and pay period, keeping only one.
Pay period start date is required.TimesheetWrite (Arcoro to Sage Intacct)The incoming Arcoro time record has no pay period start date. Checked independently of the end date check, so both can fire together.Whole Timesheet skipped this run.In Arcoro, set a pay period start date on the time record before it syncs.
Pay period end date is required.TimesheetWrite (Arcoro to Sage Intacct)The incoming Arcoro time record has no pay period end date. Checked independently of the start date check, so both can fire together.Whole Timesheet skipped this run.In Arcoro, set a pay period end date on the time record before it syncs.
Person is required.TimesheetWrite (Arcoro to Sage Intacct)The incoming Arcoro time record has no employee identifier at all. Checked before the "not found" check below, so if this fires, the "not found" message does not also fire.Whole Timesheet skipped this run.In Arcoro, confirm the time record is assigned to an employee.
Person not found.TimesheetWrite (Arcoro to Sage Intacct)An employee identifier is present, but it does not match any employee in the Sage Intacct employee list Arcoro preloaded. Only checked when the identifier is present (the "required" message above did not fire). The employee preload for this write is not filtered to active-only, so this is a true "does not exist in Sage Intacct" mismatch, not an active/inactive distinction.Whole Timesheet skipped this run.In Sage Intacct, confirm the employee record exists and that the employee ID matches what Arcoro is sending. Update the mapping in Arcoro if the IDs differ.
Updates are only allowed for timesheets that are in Draft state.TimesheetWrite (Arcoro to Sage Intacct)An existing Sage Intacct Timesheet was matched for this employee and pay period by Arcoro identifier, an update is being attempted, and that existing Timesheet's state in Sage Intacct is no longer Draft (for example it was submitted or approved). This check is independent of the other Timesheet-level checks and only applies to updates, not new Timesheets.Whole Timesheet skipped this run.In Sage Intacct, return the Timesheet to Draft state, or make the needed change directly in Sage Intacct since Arcoro cannot update a submitted or approved Timesheet.
Logged time is required.Timesheet EntryWrite (Arcoro to Sage Intacct)A Timesheet Entry has no logged time value. Only checked for entries whose rate type is one Arcoro supports for this integration; entries with an unsupported rate type are silently left out of the sync entirely and never reach this check.Whole Timesheet skipped this run.In Arcoro, confirm the time entry has hours logged against it.
Business Unit (Location) is required.Time CardWrite (Arcoro to Sage Intacct)The Time Card's Business Unit has no ID or no name set. Checked before the "not found" check below, so if this fires, that message does not also fire for the same Time Card.Whole Timesheet skipped this run.In Arcoro, assign a Business Unit (Location) to the time card.
Business Unit (Location) not found.Time CardWrite (Arcoro to Sage Intacct)The Time Card has a Business Unit ID and name, but no Sage Intacct Location matches both the ID and the name (case-insensitive) at the same time. Only checked when the "required" message above did not fire.Whole Timesheet skipped this run.In Sage Intacct, confirm a Location exists with an ID and name that both match the Business Unit sent by Arcoro. A recent rename on either side is a common cause of a mismatch.
Project is required.Time CardWrite (Arcoro to Sage Intacct)The Time Card's Job has no code or no name set. Checked first in the Project and Cost Code chain; if this fires, none of the later Project or Cost Code checks below run for that Time Card.Whole Timesheet skipped this run.In Arcoro, assign a Job to the time card.
Project not found or inactive. Time entry creation or modification is not allowed.Time CardWrite (Arcoro to Sage Intacct)The Job code is present, but it does not match any active Project in Sage Intacct. Arcoro's preload only loads Projects with an active status, so this fires the same way whether the Project does not exist at all or exists but is marked inactive. Only checked when "Project is required" did not fire.Whole Timesheet skipped this run.In Sage Intacct, confirm the Project exists and is set to Active status. If it exists but is inactive, reactivate it or redirect the time to an active Project.
Cost code is required.Time CardWrite (Arcoro to Sage Intacct)The Time Card has no Cost Code value. Only checked once the Project has been confirmed present and active (the two checks above did not fire).Whole Timesheet skipped this run.In Arcoro, assign a Cost Code to the time card.
Cost code not found or belongs to an inactive project.Time CardWrite (Arcoro to Sage Intacct)The Cost Code value is present, but it does not appear in Arcoro's preloaded Cost Code list, which only includes Cost Codes tied to active Projects in Sage Intacct. A Cost Code that only belongs to an inactive Project will not appear here either, so this message covers both "does not exist" and "only tied to an inactive project" without distinguishing between them. Only checked when the Project and Cost Code presence checks above did not fire.Whole Timesheet skipped this run.In Sage Intacct, confirm the Cost Code exists and is linked to at least one active Project.
Cost Code is not assigned to the selected project.Time CardWrite (Arcoro to Sage Intacct)The Cost Code exists and is tied to at least one active Project in Sage Intacct, but not to the specific Project on this Time Card. This is the last check in the Project and Cost Code chain, so all earlier checks in that chain already passed.Whole Timesheet skipped this run.In Sage Intacct, link the Cost Code to the Project used on this Time Card, or correct the Project or Cost Code assignment in Arcoro so they match a valid pairing.
An existing timesheet entry with the same Employee, Date, Project, Cost Code, Location, and Type was found in Sage Intacct, but it was not created by Arcoro Integrations. Since it does not belong to Arcoro, the entry will be retained and not be merged with the new time record.Timesheet EntryWrite (Arcoro to Sage Intacct)All Timesheet and Time Card level validation already passed. While writing entries, Arcoro finds an existing Sage Intacct Timesheet Entry with the identical Employee, Date, Project, Cost Code, Location, and time type as the incoming entry, but that existing entry has no Arcoro identifier, meaning it was created manually or by something other than Arcoro. This condition always logs the same message twice: once tagged "Timesheet Entry Not Merged" against the new entry Arcoro tried to write, and once tagged "Timesheet Entry Retained" against the pre-existing entry it collided with. Treat both lines as one incident, not two separate problems.Collection item skipped: only this one Timesheet Entry is dropped. The rest of the Timesheet, including other Time Cards and entries, still syncs. The conflicting existing entry in Sage Intacct is left unchanged.In Sage Intacct, either delete the non-Arcoro entry so Arcoro can create its own, or manually update that existing entry's hours to include the new time, since Arcoro will not overwrite it.

Confirming the Error

  1. Open Sync History and locate the sync execution for the run in question.
  2. Find the step for the Sage Intacct connector.
  3. Locate the entity row for the time and expense entity. Check the Errors column; a non-zero count means at least one Timesheet or Timesheet Entry in that run hit one of the messages above.
  4. Open the entity row's errors list and match on the fixed part of the sentence (for example, "is required." or "not found."), not on any quoted or bracketed values, since those vary per record.
  5. If you see the entry-merge message twice for what looks like the same Employee, Date, Project, Cost Code, and Location, treat it as one incident. Confirm by checking that one line is tagged "Timesheet Entry Not Merged" and the other "Timesheet Entry Retained."
  6. A non-zero Failures count on this entity row indicates a different problem: the write request itself was rejected by Sage Intacct after passing Arcoro's validation. That is not covered by this article; see the target-system-rejected-write article instead.

Resolving the Error

Missing Required Field on the Arcoro Time Record (Pay Period Dates, Employee, Business Unit, Project, Cost Code, Logged Time)

  1. Open the sync log entry for the affected Timesheet or Time Card and note which field the message names.
  2. In Arcoro, locate the time record for that employee and pay period and confirm the named field is populated.
  3. Save the correction and re-run the sync for this connector.
  4. Confirm the fix by checking that the entity row's Errors count for this run is lower than the prior run and that the record now appears under Added or Updated.

Employee, Project, Cost Code, or Location Not Found or Inactive in Sage Intacct

  1. In Sage Intacct, search for the named record (Employee, Project, Cost Code, or Location) using the identifier shown in the sync log.
  2. If it does not exist, create it, or correct the identifier in Arcoro so it matches an existing record.
  3. If it exists but is inactive (Projects and Cost Codes tied only to inactive Projects), reactivate it or move the time to an active Project.
  4. For a Business Unit (Location) mismatch, confirm both the ID and the name match exactly between Arcoro and Sage Intacct; a mismatch on either one alone will still fail.
  5. Re-run the sync and confirm the Errors count drops and the record now appears under Added or Updated.

Duplicate Timesheets in Sage Intacct

  1. In Sage Intacct, find all Timesheets for the affected employee and pay period.
  2. Confirm more than one carries the same Arcoro identifier custom field value.
  3. Delete all but one of the duplicate Timesheets in Sage Intacct.
  4. Re-run the sync and confirm the Timesheet now writes without the duplicate error.

Timesheet Not in Draft State

  1. In Sage Intacct, open the Timesheet named in the sync log and check its state.
  2. If it has been submitted or approved, return it to Draft state in Sage Intacct if their workflow allows, since Arcoro cannot update a Timesheet in any other state.
  3. If you do not want to reopen the Timesheet, the update from Arcoro for that pay period will continue to be skipped until it is back in Draft state or the sync data no longer changes for that Timesheet.
  4. Re-run the sync and confirm the update now succeeds.

Timesheet Entry Merge Conflict With a Non-Arcoro Entry

  1. In Sage Intacct, open the Timesheet named in the sync log and locate the existing entry matching the Employee, Date, Project, Cost Code, and Location shown in the "Timesheet Entry Retained" log line.
  2. Confirm it has no Arcoro identifier custom field value, meaning it was created manually or by another integration.
  3. Either delete that entry (so Arcoro can create its own on the next run) or manually add the new hours to it (since Arcoro will not touch it).
  4. Re-run the sync and confirm this entry no longer appears in the merge-error log.

When to Escalate

If any of the following occur, you may need to reach out to Arcoro support for additional assistance.

  • A Project, Cost Code, Location, or Employee is inactive or missing in Sage Intacct, and you cannot resolve it from their own screens.
  • A Timesheet Entry merge conflict repeats across multiple pay periods for the same combination of Employee, Project, Cost Code, and Location, suggesting a systemic data setup issue rather than a one-time manual entry.
  • Duplicate Timesheets keep reappearing in Sage Intacct after being deleted, which points to a problem upstream of this write step.
  • The Failures count is non-zero for this entity, since that indicates Sage Intacct rejected the write itself and needs the target-system-rejected-write troubleshooting path instead of this one.
Was this article helpful?
0 out of 0 found this helpful