When you create a connection, you establish a link between an end user and an institution on Quovo’s system. Syncing is how you retrieve the user’s data from that financial institution. Every sync is tied to a specific connection. 
You must have a valid connection to begin a sync.
Types of Syncs
At a  high-level, there are two types of syncs on Quovo:
  • Full Sync: Our deepest sync, which pulls account info, balances, holdings, transaction history, and additional account-type specific elements
  • Quick Syncs: These syncs retrieve specific data elements instead of all the data present, such as our instant authentication sync
Full syncs generally take longer than quick syncs, since they’re often retrieving and processing multiple years worth of financial transactions.  (Keep in mind that both full and quick syncs are fast—our average full sync is completed in less than 10 seconds). We recommend full syncs if you want to aggregate accounts to calculate investment performance over time or analyze cash flow. 

Initiating a Full Sync

To initiate a sync, send a POST request to https://api.quovo.com/v3/connections/{connection_id}/sync. The /sync endpoint contains everything you’ll need to initiate a new sync and modify inputs such as username, passcode, or additional multi-factor authentication (MFA questions).
To initiate a sync, your POST request to the /sync endpoint must include the   username   (the user’s online banking login, not the Quovo username), and   passcode   (the user’s online banking password). This request tells Quovo to apply the username and passcode you’ve included to the user and institution defined in the   connection_id  . This starts the sync process.
curl -X POST \
    -H "Authorization: Bearer a724809d37d0a21b7e9257f45cee416f5aec61993ab4b09e" \
    -H "Content-Type: application/json" \
    -d '{"username": "testusername", "passcode": "testpasscode"}' \
Quovo’s syncing workflow uses industry best practices when it comes to passing through and storing sensitive data. You can find more information about Quovo security here.

Checking Progress for a Full Sync

After initiating a sync, we recommend you check the sync’s progress. Make a GET request to https://api.quovo.com/v3/connections/{connection_id}/sync.
curl -X GET \
    -H "Authorization: Bearer a724809d37d0a21b7e9257f45cee416f5aec61993ab4b09e" \
The response to the GET request will include the   connection_id  . It will also include information about the sync itself, including   status  ,   progress  , and   challenges   that need to be resolved. The   status   tells you if the sync is ongoing, if the sync has stopped, or if the sync has completed. A value of “syncing” indicates the sync is still active and ongoing. Any other value indicates the sync has stopped. You will see a final   status  . A full list of statuses can be found here.
If a sync has stopped it could mean user action is required. We encourage you to monitor the status field closely every time you GET /sync.
The   progress   field tells you the stages of a sync as it proceeds. If a sync has successfully completed, the   progress   will be null. Instead, you’ll see a final   status  . This status will determine if you see any   challenges  . For more information on how to handle the different   challenges  , click here.  
Remember that your connection ID, not a sync attempt, designates the user and institution for a connection. Thus if you want to change the institution for a sync you’ll have to make a PUT request to the /connections endpoint and change the institution_id within your connection.
After you’ve resolved any outstanding sync issues by making the necessary POST calls, we recommend you GET /sync to see what the progress of the sync is. If the status field is “good” and both the   progress   and   challenges   are “null,” then you have successfully resolved all syncing issues! If the   challenges   field is not “null” or if the   status   field is not “good” then you need to address additional syncing issues.

Initiating a Quick Sync

To initiate a quick sync, you will need to make a POST request to the /sync endpoint and pass through which sync type you are interested in. For account authentication syncs, make a POST request to https://api.quovo.com/v3/connections/{connection_id}/sync with a valid   connection_id  .
curl -X POST \
    -H "Authorization: Bearer a724809d37d0a21b7e9257f45cee416f5aec61993ab4b09e" \
    -H "Content-Type: application/json" \
    -d '{"type": "auth"}' \

Seeing if a Quick Sync Went Through

Unlike full syncs, the quick sync workflow only involves this single step. Because quick syncs focus on retrieving fewer data points than a full sync, they complete faster, eliminating the need to track the sync progress via GET requests. Instead, your POST request to initiate a quick sync will return all the information you’ll need. The only exception is if a timeout occurs after 45 seconds: in this case, we will return the sync progress instead of the expected data. Note that quick syncs can still have MFA challenges the user needs to answer. These will be returned in the response body of the initial POST request.