User acceptance testing (UAT) verifies the business functionality of software. In other words UAT verifies whether the software works for the user (i.e. whether the user accepts how the software solves a problem).
System integration testing (SIT) verifies whether the subsystems constituting the software product work as expected and work together in a streamlined manner. SIT checks whether the system (i.e. software product) and its subsystems meet the requirements, as well as operate and interoperate without technical failures (nothing crashes).
UAT has a somewhat broader scope that focuses the user-facing aspects of the software product.
SIT zooms in on the interoperation of the subsystems (software and hardware) constituting the product. SIT is more detailed, and it strives for a complete functional coverage of the system.
When is testing carried out?
UAT is carried out in the final stages of the software development cycle (before the client accepts the software).
SIT starts when the system is assembled for the first time, after all subsystems have been tested. System testing typically precedes user acceptance testing.