> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# QuickBooks Desktop (Web Connector)

> Resources, examples, configuration and evidence for QuickBooks Desktop (Web Connector).

Use the `@bijection/connectors/quickbooks-desktop` entrypoint to declare QuickBooks Desktop (Web Connector) resources.

## Availability

This page describes the pinned source package. Published availability is unestablished for this artifact. [Source build and package availability](https://docs.bijection.com/client/sdk-distribution.md).

## Resources and modes

| Resource | Mode | Description |
| - | - | - |
| Company file | `sync` | QBWC sessions read records modified since each confirmed position, then deleted objects; EditSequence versions, read-only |

Declare a resource in application code, then bind deployment-specific settings and credentials. See [typed resources](https://docs.bijection.com/integrations/resources.md), [connections](https://docs.bijection.com/integrations/connections.md) and [source inspection](https://docs.bijection.com/integrations/cli.md).

## Company file

### sync: QBWC sessions read records modified since each confirmed position, then deleted objects; EditSequence versions, read-only

The following example matches configuration `standard`.

```ts theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
import { quickbooksDesktop } from "@bijection/connectors/quickbooks-desktop";

export const company = quickbooksDesktop.company.sync();
```

> **Inferred record types**
>
> ```ts theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> payments: {
>
> }
>
> items: {
>
> }
>
> customers: {
>
> }
>
> accounts: {
>
> }
>
> invoices: {
>
> }
>
> vendors: {
>
> }
>
> bills: {
>
> }
>
> billPayments: {
>
> }
>
> salesReceipts: {
>
> }
>
> creditMemos: {
>
> }
>
> journalEntries: {
>
> }
>
> checks: {
>
> }
>
> purchaseOrders: {
>
> }
>
> estimates: {
>
> }
> ```

#### Configuration: standard

Case: `quickbooks-desktop/company/sync/standard`.

Connection and resource configuration are declared by this exact case.

Credential kind: `qbwc`. Keep credential material in the private credential inventory.

| Setting | Type | Required | Owner |
| - | - | - | - |
| `username` | string | Yes | Shared connection |
| `companyFile` | string or null | No | Shared connection |
| `runEveryMinutes` | number or null | No | Shared connection |

> **Complete configuration contract**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "setup": [],
>   "resource": {
>     "access": {},
>     "defaults": {},
>     "connector": "qbwc",
>     "output": {
>       "kind": "group",
>       "collections": [
>         "accounts",
>         "billPayments",
>         "bills",
>         "checks",
>         "creditMemos",
>         "customers",
>         "estimates",
>         "invoices",
>         "items",
>         "journalEntries",
>         "payments",
>         "purchaseOrders",
>         "salesReceipts",
>         "vendors"
>       ]
>     },
>     "credential_kind": "qbwc",
>     "connection_fields": [
>       "username",
>       "companyFile",
>       "runEveryMinutes"
>     ]
>   },
>   "connection_setup": {
>     "type": "object",
>     "value": {
>       "username": {
>         "fieldType": {
>           "type": "string"
>         },
>         "optional": false
>       },
>       "companyFile": {
>         "fieldType": {
>           "type": "union",
>           "value": [
>             {
>               "type": "string"
>             },
>             {
>               "type": "null"
>             }
>           ]
>         },
>         "optional": true
>       },
>       "runEveryMinutes": {
>         "fieldType": {
>           "type": "union",
>           "value": [
>             {
>               "type": "number"
>             },
>             {
>               "type": "null"
>             }
>           ]
>         },
>         "optional": true
>       }
>     }
>   },
>   "execution": null
> }
> ```

Native admission analysis is available for this exact declaration.

**Collection: accounts**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: billPayments**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: bills**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: checks**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: creditMemos**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: customers**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: estimates**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: invoices**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: items**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: journalEntries**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: payments**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: purchaseOrders**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: salesReceipts**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: vendors**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "100",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

> **Commands, occurrences and artifacts**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "records": {
>     "accounts": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "billPayments": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "bills": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "checks": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "creditMemos": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "customers": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "estimates": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "invoices": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "items": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "journalEntries": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "payments": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "purchaseOrders": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "salesReceipts": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "vendors": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "100",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     }
>   },
>   "occurrences": null,
>   "artifacts": {
>     "raw_archive": false,
>     "native_file_transfer_limit_bytes": null,
>     "external_versions": false,
>     "files": {}
>   },
>   "commands": {}
> }
> ```

**Recorded checks**

| Requirement | Scope | Evidence | Result |
| - | - | - | - |
| page-publication-recovery | \{"kind":"collection","name":"accounts"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"accounts"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"billPayments"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"billPayments"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"bills"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"bills"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"checks"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"checks"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"creditMemos"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"creditMemos"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"customers"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"customers"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"estimates"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"estimates"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"invoices"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"invoices"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"items"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"items"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"journalEntries"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"journalEntries"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"payments"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"payments"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"purchaseOrders"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"purchaseOrders"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"salesReceipts"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"salesReceipts"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"vendors"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"vendors"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| group-publication-recovery | \{"kind":"group"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| group-publication-recovery | \{"kind":"group"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |

Hosted qualification: **unestablished for this catalog configuration**. Installed connections report their own identity, authority and current status.

#### Configuration: receivables

Case: `quickbooks-desktop/company/sync/receivables`.

Connection and resource configuration are declared by this exact case.

Credential kind: `qbwc`. Keep credential material in the private credential inventory.

| Setting | Type | Required | Owner |
| - | - | - | - |
| `username` | string | Yes | Shared connection |
| `companyFile` | string or null | No | Shared connection |
| `runEveryMinutes` | number or null | No | Shared connection |

> **Complete configuration contract**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "setup": [],
>   "resource": {
>     "access": {},
>     "defaults": {},
>     "connector": "qbwc",
>     "output": {
>       "kind": "group",
>       "collections": [
>         "creditMemos",
>         "customers",
>         "invoices",
>         "items",
>         "payments"
>       ]
>     },
>     "credential_kind": "qbwc",
>     "connection_fields": [
>       "username",
>       "companyFile",
>       "runEveryMinutes"
>     ]
>   },
>   "connection_setup": {
>     "type": "object",
>     "value": {
>       "username": {
>         "fieldType": {
>           "type": "string"
>         },
>         "optional": false
>       },
>       "companyFile": {
>         "fieldType": {
>           "type": "union",
>           "value": [
>             {
>               "type": "string"
>             },
>             {
>               "type": "null"
>             }
>           ]
>         },
>         "optional": true
>       },
>       "runEveryMinutes": {
>         "fieldType": {
>           "type": "union",
>           "value": [
>             {
>               "type": "number"
>             },
>             {
>               "type": "null"
>             }
>           ]
>         },
>         "optional": true
>       }
>     }
>   },
>   "execution": null
> }
> ```

Native admission analysis is available for this exact declaration.

**Collection: creditMemos**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "200",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: customers**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "200",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: invoices**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "200",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: items**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "200",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

**Collection: payments**

| Contract | Meaning |
| - | - |
| Initial | Enumeration of observed records |
| Changes | Current record read after a change indication |
| Deletions | Explicit deletion evidence |
| Resume | Opaque cursor |
| Gap | Explicit repair required after a gap |
| Retention | Unspecified |

> **Complete native profile**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "movement": {
>     "exchanges": {},
>     "nativeInputLimitBytes": "0",
>     "steps": [
>       {
>         "id": "acquire.1",
>         "inputs": [],
>         "action": {
>           "operation": "acquire",
>           "subject": "native input",
>           "limitBytes": "0"
>         }
>       },
>       {
>         "id": "retain.1",
>         "inputs": [
>           "acquire.1"
>         ],
>         "action": {
>           "operation": "retain",
>           "subject": "acquisition evidence",
>           "reason": "recovery",
>           "release": "acquisition_custody"
>         }
>       },
>       {
>         "id": "interpret.1",
>         "inputs": [
>           "retain.1"
>         ],
>         "action": {
>           "operation": "interpret",
>           "subject": "acquired input",
>           "produces": "records"
>         }
>       },
>       {
>         "id": "materialize.1",
>         "inputs": [
>           "interpret.1"
>         ],
>         "action": {
>           "operation": "materialize",
>           "subject": "source rows",
>           "reason": "serving",
>           "release": "replacement"
>         }
>       },
>       {
>         "id": "publish.1",
>         "inputs": [
>           "materialize.1"
>         ],
>         "action": {
>           "operation": "publish",
>           "subject": "source rows",
>           "visibility": "with_acquisition"
>         }
>       }
>     ]
>   },
>   "initial": "enumeration",
>   "changes": "current_state_after_change",
>   "deletions": "explicit_events",
>   "resume": "opaque_cursor",
>   "retentionMs": null,
>   "gap": "explicit_repair",
>   "limits": {
>     "exchange_evidence_bytes": "4194304",
>     "page_records": "200",
>     "publication_page_records": "128",
>     "record_fields": "32",
>     "response_bytes": "524288"
>   },
>   "restrictions": [
>     "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>   ],
>   "commands": {}
> }
> ```

> **Commands, occurrences and artifacts**
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "records": {
>     "creditMemos": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "200",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "customers": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "200",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "invoices": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "200",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "items": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "200",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     },
>     "payments": {
>       "protocol": "record_observation",
>       "coverage": "records",
>       "consistency": "observations",
>       "atomicity": "record",
>       "history": "observations",
>       "recordRefresh": false,
>       "reconciliation": false,
>       "notifications": false,
>       "snapshotMaxRows": null,
>       "profile": {
>         "movement": {
>           "exchanges": {},
>           "nativeInputLimitBytes": "0",
>           "steps": [
>             {
>               "id": "acquire.1",
>               "inputs": [],
>               "action": {
>                 "operation": "acquire",
>                 "subject": "native input",
>                 "limitBytes": "0"
>               }
>             },
>             {
>               "id": "retain.1",
>               "inputs": [
>                 "acquire.1"
>               ],
>               "action": {
>                 "operation": "retain",
>                 "subject": "acquisition evidence",
>                 "reason": "recovery",
>                 "release": "acquisition_custody"
>               }
>             },
>             {
>               "id": "interpret.1",
>               "inputs": [
>                 "retain.1"
>               ],
>               "action": {
>                 "operation": "interpret",
>                 "subject": "acquired input",
>                 "produces": "records"
>               }
>             },
>             {
>               "id": "materialize.1",
>               "inputs": [
>                 "interpret.1"
>               ],
>               "action": {
>                 "operation": "materialize",
>                 "subject": "source rows",
>                 "reason": "serving",
>                 "release": "replacement"
>               }
>             },
>             {
>               "id": "publish.1",
>               "inputs": [
>                 "materialize.1"
>               ],
>               "action": {
>                 "operation": "publish",
>                 "subject": "source rows",
>                 "visibility": "with_acquisition"
>               }
>             }
>           ]
>         },
>         "initial": "enumeration",
>         "changes": "current_state_after_change",
>         "deletions": "explicit_events",
>         "resume": "opaque_cursor",
>         "retentionMs": null,
>         "gap": "explicit_repair",
>         "limits": {
>           "exchange_evidence_bytes": "4194304",
>           "page_records": "200",
>           "publication_page_records": "128",
>           "record_fields": "32",
>           "response_bytes": "524288"
>         },
>         "restrictions": [
>           "QuickBooks Desktop through the Web Connector, which polls the engine; records are read only while a QBWC session is open, positions advance only when a whole modified-since or deleted-object query finished, and deleted objects are reported only as long as QuickBooks keeps them"
>         ],
>         "commands": {}
>       }
>     }
>   },
>   "occurrences": null,
>   "artifacts": {
>     "raw_archive": false,
>     "native_file_transfer_limit_bytes": null,
>     "external_versions": false,
>     "files": {}
>   },
>   "commands": {}
> }
> ```

**Recorded checks**

| Requirement | Scope | Evidence | Result |
| - | - | - | - |
| page-publication-recovery | \{"kind":"collection","name":"creditMemos"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"creditMemos"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"customers"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"customers"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"invoices"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"invoices"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"items"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"items"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"payments"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| page-publication-recovery | \{"kind":"collection","name":"payments"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |
| group-publication-recovery | \{"kind":"group"} | Native test: integrations/native\_records/qbwc\_sessions\_retain\_each\_response\_before\_answering\_then\_publish (shared\_engine) | Execution result unavailable |
| group-publication-recovery | \{"kind":"group"} | Native test: integrations/native\_records/qbwc\_sessions\_are\_fenced\_and\_failures\_are\_typed (shared\_engine) | Execution result unavailable |

Hosted qualification: **unestablished for this catalog configuration**. Installed connections report their own identity, authority and current status.

## Provider guidance

Compiled declaration examples and configuration details are published in the [connector reference](https://docs.bijection.com/integrations/connectors/index).

Reads one QuickBooks Desktop company file through the QuickBooks Web Connector
(QBWC), on the platform's native `qbwc` transport. This is a different product
from QuickBooks Online: use [`quickbooks`](https://github.com/bijectionhq/component-support/blob/b632604330ce9cbcfe17a5a680ef4fbe80f6f672/packages/connectors/src/connectors/quickbooks/README.md) for the
cloud API. Intuit offers no REST API for Desktop; QBWC, installed beside
QuickBooks on the customer's Windows machine, connects out over HTTPS to the
deployment on a schedule and is handed qbXML requests. Nothing is dialled, so
no network relay or private endpoint is involved.

`company.sync` declares one atomic group: one QBWC session reads every
selected collection in turn and publishes each to its own table.

| Collection | qbXML entity | Notes |
| - | - | - |
| `customers` | `Customer` | addresses as objects |
| `vendors` | `Vendor` | |
| `accounts` | `Account` | no iterator: one response per poll |
| `items` | `Item` | every item type; `kind` is the `*Ret` name |
| `invoices` | `Invoice` | `lines`, `lineGroups` |
| `bills` | `Bill` | `expenseLines`, `itemLines`, `itemLineGroups` |
| `payments` | `ReceivePayment` | `appliedTo` |
| `billPayments` | `BillPaymentCheck` | `appliedTo` |
| `salesReceipts` | `SalesReceipt` | `lines`, `lineGroups` |
| `creditMemos` | `CreditMemo` | `lines`, `lineGroups` |
| `journalEntries` | `JournalEntry` | `debitLines`, `creditLines` |
| `checks` | `Check` | `expenseLines`, `itemLines`, `itemLineGroups` |
| `purchaseOrders` | `PurchaseOrder` | `lines`, `lineGroups` |
| `estimates` | `Estimate` | `lines`, `lineGroups` |

`collections` selects a subset (all fourteen by default). qbXML is text: every
scalar publishes as QuickBooks' own string (amounts, quantities, `true`/`false`
and dates are not converted), an aggregate (an address) as an object, a line
list as an array, and an element QuickBooks did not return as null. Every
transaction query asks for its line items. `pageRecords` is a page's
`MaxReturned` (100 by default, at most 500); `maxResponseBytes` bounds one
retained response (512 KiB by default, at most 640 KiB); `every` (15 minutes by
default) only bounds how long acquisition waits if the wake a retained response
sends is lost. QBWC's own poll interval is the `.qwc` file's.

## Setup

1. Bind the connection: typed setup holds the QBWC `username`, optionally a
   pinned `companyFile` (the full `.qbw` path; a session QBWC opens on another
   file is refused) and `runEveryMinutes` (the poll interval the `.qwc` file
   asks for, 15 by default).
2. Install the credential (`quickbooksDesktop.credential`, kind `qbwc`): its
   `password` is a secret of at least sixteen characters that the operator
   generates. The host does not generate it. The operator types the same
   password into QBWC once, and QBWC keeps it on that Windows machine. Rotating
   it means installing a new credential and entering it in QBWC again; until
   then QBWC's `authenticate` is refused (`nvu`) and nothing is read.
3. After the source's first acquisition has minted its route, issue the `.qwc`
   file with `POST /api/integrations/qbwc-setup` (`Deploy` authority, body
   `{source, url}`). It returns the route
   `/api/integrations/qbwc/<endpoint>` and the `.qwc` XML: `AppURL`,
   `AppSupport`, the user name, `OwnerID` and `FileID` derived from the source,
   `IsReadOnly` and the poll interval. QBWC requires HTTPS except to
   localhost. No CLI command issues the file yet.
4. In QuickBooks, open the company file as an administrator, add the `.qwc`
   file in QBWC (File > Update Web Services > Add an application), grant access
   when QuickBooks asks, and enter the password.

US editions only: the session negotiates qbXML 8.0 through 13.0, and other
editions' qbXML (Canada, UK, Australia) is not handled.

## What a session does

Inside each session the host chooses every request; nothing QBWC sends selects
a collection, query or position. Per collection, in name order, it asks for the
records modified at or after its confirmed position (`TimeModified`; every
record on the first read; inactive list elements included) through a qbXML
iterator, then the entity's deleted objects (`ListDeletedQuery` or
`TxnDeletedQuery`) since its deletion position. Each response is retained in
the source's engine inbox before QBWC is answered, then published keyed by
`ListID`/`TxnID` and versioned by `EditSequence`; a deleted object removes its
key. No coverage is claimed: a modified-since read enumerates nothing.

**Interrupted sessions.** A position advances only on the response that
finished its whole query. An iterator never outlives its session, so a session
closed early, a QBWC timeout, a lapsed ten-minute lease or a process restart
leaves the position where it was, and the next session restarts that query
from it. A refused continuation restarts the query once within the session. Rows
an unfinished query already published stay as versioned observations; only the
coverage the query would have confirmed is missing, and the boundary record is
read again by every query. While another session still holds the lease, QBWC is
answered `busy`.

**Failures.** Status 1 (nothing found) and 500 are empty answers. A feature the
company file does not have (3250, 3260: estimates or purchase orders turned off)
or any other error status ends that collection's read for the session.
`connectionError` (QuickBooks not running, the file not open or not the pinned
one) records QuickBooks as unavailable until the next poll. The source status
shows the route, the session and the last failure, which is also what QBWC's
`getLastError` reports.

**Read only.** The transport admits no command: an `Add` or `Mod` lost after
QuickBooks applied it would be an unknown outcome, and writes are not built.
QuickBooks' retention of deleted objects is not checked, so a source left
unpolled past it loses those deletions silently.

Nothing here has reached QuickBooks Desktop or a real QuickBooks Web Connector.
The shared transport's histories run against a controlled QBWC client and
company file; they do not exercise this declaration's field paths.

## Provider references

Provider references and prerequisites are maintained in the connector guidance above. No separate provider-documentation review date is recorded.

## Source and evidence

[Canonical connector source](https://github.com/bijectionhq/component-support/blob/b632604330ce9cbcfe17a5a680ef4fbe80f6f672/packages/connectors/src/connectors/quickbooks-desktop/README.md), [native analysis](https://github.com/bijectionhq/component-support/blob/b632604330ce9cbcfe17a5a680ef4fbe80f6f672/packages/connectors/contract-analysis.json) and [check receipts](https://github.com/bijectionhq/component-support/blob/b632604330ce9cbcfe17a5a680ef4fbe80f6f672/packages/connectors/evidence.json).

Connector artifact: `905888ea276a2a28e36981a79e8142b2547ea451c3e63162cb6915ad4a7d1305`.

The resource declaration examples above are compiled and compared with exact catalog declarations. Recorded checks apply only to their source, declaration and runtime identities. Configure a connection and inspect its status to establish deployment-specific readiness.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.