Skip to main content
A migration reads your entire accounting history out of one system and writes it into another, which makes it the part of onboarding a security reviewer looks at hardest. This page states where credentials and source data sit at each stage, how long they stay, and what disconnecting removes. For the SOC 2 Type II report, the current subprocessor list, and the security policies behind the controls described here, see the DualEntry Trust Center and the security and compliance overview.

How source credentials are handled

You never type a QuickBooks or Xero password into DualEntry. Connecting a source runs an OAuth authorization against the source system, which returns tokens rather than credentials, and grants access scoped to the organization you authorized. The tokens that result are stored encrypted at rest. Access and refresh tokens for both QuickBooks and Xero are held in encrypted database fields using Fernet symmetric encryption, with the key supplied through application configuration rather than stored alongside the data. A database export on its own does not yield usable tokens. Access tokens are short-lived, which limits the value of one even in the unlikely event it is recovered. A Xero access token expires roughly 30 minutes after it is issued and is refreshed automatically for as long as the connection is live. Where a connection is authorized through the hosted setup flow of the replication provider rather than directly, the credential is held by that provider and DualEntry never receives it at all. Which path a given source uses is a property of the connector, not something you configure.

Where source data goes during the migration

Source data reaches your ledger in two hops rather than one, and it is worth being precise about both because they have different retention. Replication. A managed replication service pulls your source system’s data into a destination schema that DualEntry owns, one schema per migration connection. That service is a subprocessor, and the current subprocessor list is published in the Trust Center, which is where a security reviewer should get it rather than from this page. Import. DualEntry reads from that schema and creates staged records, one per source record, each keyed to its source record ID. Staged records hold the source payload so a mapping can be corrected and retried without pulling from the source again. Nothing reaches your general ledger until a staged record is converted into a DualEntry transaction. That separation is why a migration can be retried, paused, and audited: the staging layer is a durable, per-record account of what the source said and what DualEntry made of it. Attachments follow a different path. Where a source system exposes them, which today means Xero, each document is downloaded and stored in DualEntry’s object storage alongside your other attachments, under the same encryption and access controls as a file you upload yourself.

What DualEntry retains, and for how long

Retention differs by artifact. The table below covers each one. The 180-day retention is enforced by a sweep rather than left to a manual step: once a stored Xero grant passes its deadline, DualEntry revokes it with Xero and clears the stored token, whether or not anyone remembered to disconnect. There is no equivalent sweep for QuickBooks, so a QuickBooks grant persists at Intuit until it is revoked there.

What disconnecting removes

Disconnecting a migration is a single action at Configuration → Company → Migrations, restricted to users with integration permission. It does three things in order:
  1. Deletes the replication connector, which stops any further pull from the source system.
  2. For a Xero connection, revokes the grant with Xero, so DualEntry’s access is withdrawn at the source rather than only forgotten locally.
  3. Deletes the stored credentials.
Records already imported into your ledger are unaffected. At that point they are ordinary DualEntry transactions with no live link to the source system, which is the state you want after a completed migration.
Step 2 applies to Xero only. Disconnecting a QuickBooks migration deletes DualEntry’s stored tokens but does not revoke the grant with Intuit, and no retention sweep revokes it later. To withdraw access at the source, remove DualEntry from the connected apps list in your Intuit account after disconnecting. Confirm that step where your offboarding process depends on access being revoked rather than only discarded.
Sandbox organizations used for trial migrations carry their own expiry. Once the expiry passes, the sandbox is archived automatically, so a dry run does not leave a live copy of your books sitting in a second organization indefinitely.

What a security reviewer will ask

These are the questions that come up in practice, with the short answers. The Trust Center holds the evidence behind each.
  • Is the data encrypted in transit and at rest? Yes on both. Traffic runs over TLS 1.2 or higher, and customer data, backups, and sensitive fields including source tokens are encrypted at rest.
  • Who at DualEntry can see our source data? Employee access to production is role-based, logged, and reviewed on a recurring cadence.
  • Is the migration in SOC 2 scope? The platform is covered by an annual SOC 2 Type II examination across the Security, Availability, and Confidentiality criteria. The report is available under NDA through the Trust Center.
  • Who are the subprocessors? The current list is published in the Trust Center, including the replication service a migration depends on.
  • What is logged? Migration status changes are written to the audit trail, and each staged record keeps the link between the source record and the DualEntry record it produced.
  • How do we terminate access? Disconnect the migration. For Xero that revokes the grant at the source. For QuickBooks it clears DualEntry’s stored tokens, and you remove DualEntry from your Intuit connected apps to revoke the grant itself. See the section above.
Send a security reviewer to trust.dualentry.com rather than answering a questionnaire by hand. Gated documents are released after a clickthrough NDA, which is usually faster than the email thread it replaces.
Last modified on August 26, 2026