Autofy Data Definition


The Autofy Data Definition is our abstraction for accounting data. It's meant to simplify your implementation by exposing a single data format for your application to handle.

For example, a Customer object in the Autofy Data Definition would look the same to you across all supported accounting applications. As long as you include Phone Number in a Customer record you're trying to insert or update, Autofy will appropriately map that data into the destination accounting app for you - your mapping into our format remains the same.

And for objects where there is unavoidable nuance or differences in the data, we've exposed a meta API endpoint to help you understand which exact fields you need to accommodate in your requests.

Metadata Endpoint

Our API reference includes access to our metadata endpoint. Requesting information from this endpoint will show you which data fields are represented for one or more accounting apps you wish to integrate with.


After declaring which object you'd like metadata for in the URL, there are two parameters you can pass in, overlap and app.

overlap is a boolean that tells Autofy whether you want to get data fields supported in all apps you've listed as apps.

app should contain an app short code, and you can include multiple of these in your request. The more apps you include, the smaller your supported dataset will be.

QuickBooks Desktop = qbd
QuickBooks Online = qbo

curl --request GET \
  --url ' \
  --header 'cache-control: no-cache' \
  --header 'x-api-key: {YOUR API KEY}' \
  --header 'SchemaVersion: 20.04' \


The API will respond with a JSON string that represents the requested data. Below is an example of a full response for an Account.

    "Self": "",
    "Kind": "collection",
    "Page": 1,
    "RequestId": "XXXXXXXXXX",
    "Contents": [
            "Object": {
                "ID": "",
                "Name": "",
                "FullName": "",
                "Number": "",
                "Description": "",
                "BankNumber": "",
                "Parent": {
                    "ID": "",
                    "FullName": ""
                "Balance": "",
                "IsActive": "",
                "Type": "",
                "CreatedDate": "",
                "LastModifiedDate": ""
            "Errors": null,
            "Self": null,
            "Kind": "account"
    "Errors": null

The contents.object node contains the object data. This is what you'll find in the platform JSON data definition. Only send Object data when making POST or PATCH calls to Autofy.