Atomic logo
Webhooks

Webhook Reference

Webhooks are a useful way to receive automated updates and send timely notifications to your user as a transaction progresses.

You can configure webhook endpoints and the event types for which you'd like to receive events on the Webhooks page on the Atomic Console. We will issue POST requests to the designated endpoint(s).

Webhooks can be tested in a few ways without requiring your application development to be complete:

  1. Using the "Test webhooks" functionality on the Webhooks page on the Atomic Console. This will send a test payload to your configured endpoint(s).
  2. Running live tasks via the Emulator page on the Atomic Console.

If you don't want to stand up a server for webhooks, we recommend using Hook Bin as a way to inspect the payload of events during development.

Requests to your webhooks endpoints include a X-HMAC-Signature-Sha-256 header. This header is an SHA256 HMAC hash of the request body with your API secret used as the key. To validate a webhook request came from Atomic, we suggest verifying the request body with this header.

For example, if you use NodeJS and Express for your webhook endpoint, you can validate the header with middleware.

server.js
const express = require('express');
const app = express();
const port = 3000;

const { verifyAtomicWebhook } = require('./middleware');

app.post('/atomic-webhook', verifyAtomicWebhook, (req, res) => {
  // process webhook data
  // send us a 200 to let us know you received the data
  res.send(200, 'Received webhook data');
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
});
middleware.js
const crypto = require('crypto')

exports.verifyAtomicWebhook = (req, res, next) => {
  const hash = crypto
    .createHmac('sha256', 'YOUR_ATOMIC_API_SECRET')
    .update(JSON.stringify(req.body))
    .digest('hex');

  if (hash === req.header('X-HMAC-Signature-Sha-256')) {
    next();
  } else {
    res.send(401, 'You are not authorized.');
  }
};

All Atomic webhook events conform to the CloudEvents.io protocol using the binary content mode. This table shows the CloudEvents headers along with sample values to illustrate what is sent with each event.

HeaderValue
ce-specversion1.0
ce-sourcecom.atomicfi
ce-typecom.atomicfi.[event-type]
ce-time2022-04-13T21:36:42.985Z
ce-id257426ab237ac6786a23d52

Webhook events will include a set of standard properties in the request body, as described below.

eventTypestring
The event type.
eventTimestring
The date and time of the event creation in ISO 8601 format.
userobject
Object containing _id, identifier, where identifier is your internal GUID.
dataobject
The payload of the event.
Sample Request Body
{
  "eventType": "sample-event-type",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "hello": "world"
  }
}

In addition to the standard event properties, task events will also include the following:

publicTokenstring
Public Access Token used when initializing the Transact SDK.
productstring
The product relevant to the executed task.
user.connectedboolean
Indicates whether or not the user was present to view a confirmation of the task's final outcome.
companyobject
Object containing _id, name, and branding.
metadataobject
The metadata provided when the task was initialized.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.
dataobject
Payload object containing a reason attribute (see Task failures below), previousStatus, status, distributionType (if applicable), distributionAmount (if applicable), and outputs.
Sample
{
  "eventType": "task-status-updated",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "publicToken": "PUBLIC_TOKEN",
  "product": "deposit",
  "user": {
    "_id": "5d8d3fecbf637ef3b11a877a",
    "identifier": "YOUR_INTERNAL_GUID",
    "connected": true
  },
  "company": {
    "_id": "5d9a3fecbf637ef3b11ab442",
    "name": "Home Depot",
    "branding": {
      "logo": {
        "url": "https://atomicfi-public-production.s3.amazonaws.com/979115f4-34a0-44f5-901e-753a33337444_atomic-logo-dark.png"
      }
    }
  },
  "metadata": {
    "orderId": "123"
  },
  "task": "5e30afde097146a8fc3d5cec",
  "taskWorkflow": "5e30afde097146a8fc3d5ceb",
  "data": {
    "previousStatus": "processing",
    "status": "completed",
    "distributionType": "fixed",
    "distributionAmount": 25
  }
}
JSON Schema
{
  "type": "object",
  "title": "Atomic Webhook Event",
  "description": "Structure of a webhook event sent by Atomic Financial",
  "properties": {
    "eventType": {
      "type": "string",
      "description": "Webhook event type for a task status change or authentication status change."
    },
    "eventTime": {
      "type": "string",
      "description": "The date and time of the event creation in ISO 8601 format."
    },
    "publicToken": {
      "type": "string",
      "description": "Public Access Token used when initializing the Transact SDK."
    },
    "product": {
      "type": "string",
      "description": "The product relevant to the executed task."
    },
    "user": {
      "type": "object",
      "description": "Object containing _id, identifier, and connected where identifier is your internal GUID and connected indicates whether or not the user was present to view a confirmation of the task's final outcome.",
      "properties": {
        "_id": {
          "type": "string",
          "description": "Identifier for the user"
        },
        "identifier": {
          "type": "string",
          "description": "Your internal GUID"
        },
        "connected": {
          "type": "boolean",
          "description": "Indicates whether or not the user was present to view a confirmation of the task's final outcome."
        }
      }
    },
    "company": {
      "type": "object",
      "description": "Object containing _id, name, and branding.",
      "properties": {
        "_id": {
          "type": "string",
          "description": "Identifier for the company"
        },
        "name": {
          "type": "string",
          "description": "Company name"
        },
        "branding": {
          "type": "object",
          "description": "Metadata for the company's styling and branding.",
          "properties": {
            "logo": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "metadata": {
      "type": "object",
      "description": "The metadata provided when the task was initialized."
    },
    "task": {
      "type": "string",
      "description": "The ID of the task."
    },
    "taskWorkflow": {
      "type": "string",
      "description": "The ID of the task workflow."
    },
    "data": {
      "type": "object",
      "description": "Payload object containing reason, previousStatus, status, distributionType (if applicable), distributionAmount (if applicable), and outputs.",
      "properties": {
        "reason": {
          "type": "string",
          "description": "For tasks that failed, the reason why the task failed."
        },
        "previousStatus": {
          "type": "string",
          "description": "Previous status of the task"
        },
        "status": {
          "type": "string",
          "description": "Current status of the task"
        },
        "distributionType": {
          "type": "string",
          "description": "For deposit tasks, the type of the distribution."
        },
        "distributionAmount": {
          "type": "number",
          "description": "For deposit tasks, the amount of the distribution."
        },
        "outputs": {
          "type": "object",
          "description": "For verify tasks, the data retrieved from the payroll system."
        }
      }
    }
  }
}

When eventType is task-status-updated, the status of a Task was changed from previousStatus to status. If the status is a final status, no further updates will occur, though a task status patched event may be emitted. Possible statuses include:

queued

The task is in the queue to start processing.

NOTE: this status is only used for previousStatus and not for status.

processing
The task has started processing.
failed
The task failed to process. This is a final status.
completed
The task completed successfully. This is a final status.
Sample task-status-updated event
{
  "eventType": "task-status-updated",
  "eventTime": "2021-01-13T19:43:26.097Z",
  "product": "deposit",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID",
    "connected": true
  },
  "company": {
    "name": "Home Depot",
    "branding": {
      "logo": {
        "url": "https://atomicfi-public-production.s3.amazonaws.com/979115f4-34a0-44f5-901e-753a33337444_atomic-logo-dark.png"
      }
    }
  },
  "task": "5d97e4abc90a0a0007993e9c",
  "taskWorkflow": "5d97e4abc90a0a0007993e9b",
  "data": {
    "previousStatus": "processing",
    "status": "completed",
    "distributionType": "fixed",
    "distributionAmount": 25
  }
}

When eventType is task-authentication-status-updated, the authentication status of a Task was changed. Possible authenticated statuses include:

true
The task authenticated successfully.
false
The task failed to authenticate.
Sample task authentication status updated event
{
  "eventType": "task-authentication-status-updated",
  "eventTime": "2021-01-13T19:43:26.097Z",
  "product": "deposit",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID",
    "connected": true
  },
  "company": {
    "name": "Home Depot",
    "branding": {
      "logo": {
        "url": "https://atomicfi-public-production.s3.amazonaws.com/979115f4-34a0-44f5-901e-753a33337444_atomic-logo-dark.png"
      }
    }
  },
  "task": "5d97e4abc90a0a0007993e9c",
  "taskWorkflow": "5d97e4abc90a0a0007993e9b",
  "data": {
    "authenticated": true
  }
}

When eventType is task-status-patched, the final status of a Task was updated. Cases where this may occur are rare and are generally associated with an audit or bug fix within our system. Possible statuses include:

failed
The task failed to process.
completed
The task completed successfully.
Sample task status patched event
{
  "eventType": "task-status-patched",
  "eventTime": "2021-01-13T19:43:26.097Z",
  "product": "deposit",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID",
    "connected": true
  },
  "company": {
    "name": "Home Depot",
    "branding": {
      "logo": {
        "url": "https://atomicfi-public-production.s3.amazonaws.com/979115f4-34a0-44f5-901e-753a33337444_atomic-logo-dark.png"
      }
    }
  },
  "task": "5d97e4abc90a0a0007993e9c",
  "taskWorkflow": "5d97e4abc90a0a0007993e9b",
  "data": {
    "previousStatus": "failed",
    "status": "completed",
    "distributionType": "fixed",
    "distributionAmount": 25
  }
}

Employment data is contained within an outputs object, which is a child of the data object of the event. The data delivered to you will depend on the task's product, the payroll system, and the specific user's configuration. For your convenience, this data may include both raw and derived fields.

If you are using our verify product, you'll receive data as described in our Employment Data Reference.. The data retrieved will depend on your data scoping configuration and what we are able to access within the payroll system.

Sample response for verify
{
  "task": "60abefde8a4445000956e30a",
  "taskWorkflow": "60abefde8a4445000956e309",
  "company": {
    "branding": {
      "logo": {
        "url": "https://cdn-public.atomicfi.com/979115f4-34a0-44f5-901e-753a33337444_atomic-logo-dark.png"
      }
    },
    "name": "Mocky"
  },
  "product": "verify",
  "publicToken": "0cbb06d9-1610-4fa6-ae04-230e9ac3a60d",
  "user": {
    "_id": "5ebc3977cb64830007f48ca4",
    "identifier": "YOUR_INTERNAL_GUID",
    "connected": true
  },
  "data": {
    "previousStatus": "processing",
    "status": "completed",
    "authenticated": true,
    "outputs": {
      "income": 45000,
      "incomeType": "yearly",
      "annualIncome": 45000,
      "hourlyIncome": 21.63,
      "netHourlyRate": 18.44,
      "employeeType": "fulltime",
      "employmentStatus": "active",
      "jobTitle": "Product Manager",
      "startDate": "2017-04-19T12:00:00.000Z",
      "minimumMonthsOfEmployment": 58,
      "weeklyHours": 40,
      "payCycle": "semimontly",
      "nextExpectedPayDate": "2020-06-30T12:00:00.000Z",
      "currentPayPeriodStart": "2020-06-13T12:00:00.000Z",
      "currentPayPeriodEnd": "2020-06-27T12:00:00.000Z",
      "unpaidHoursInPayPeriod": 24,
      "firstName": "Jane",
      "lastName": "Appleseed",
      "dateOfBirth": "1984-04-12T19:00:00.000Z",
      "email": "jappleseed@example.org",
      "phone": "8015551111",
      "ssn": "111223333",
      "address": "123 Street St.",
      "city": "Provo",
      "state": "UT",
      "postalCode": "84606",
      "statements": [
        {
          "date": "2020-06-15T12:00:00.000Z",
          "payPeriodStartDate": "2020-05-27T12:00:00.000Z",
          "payPeriodEndDate": "2020-06-12T12:00:00.000Z",
          "grossAmount": 1875,
          "ytdGrossAmount": 10000,
          "netAmount": 1620,
          "ytdNetAmount": 8000,
          "hours": 96,
          "deductions": [
            {
              "category": "taxes",
              "label": "Federal Income Tax",
              "rawLabel": "Federal Income Tax",
              "amount": 200,
              "ytdAmount": 2000
            },
            {
              "category": "taxes",
              "label": "State Income Tax",
              "rawLabel": "Utah State Tax",
              "amount": 50,
              "ytdAmount": 500
            },
            {
              "category": "other",
              "label": "Abc corp dd",
              "rawLabel": "Abc corp dd",
              "amount": 5,
              "ytdAmount": 50
            }
          ],
          "earnings": [
            {
              "category": "bonus",
              "rawLabel": "Quarterly Bonus",
              "amount": 2000,
              "ytdAmount": 6000
            },
            {
              "category": "overtime",
              "rawLabel": "Overtime Pay",
              "amount": 100,
              "ytdAmount": 1000,
              "hours": 10,
              "rate": 15
            },
            {
              "category": "reimbursement",
              "rawLabel": "Gas Card",
              "amount": 25.47,
              "ytdAmount": 85.74
            }
          ],
          "paystub": {
            "_id": "60abeff50836730008616fad",
            "url": "[ATOMIC-GENERATED-PRESIGNED-S3-URL]"
          }
        },
        {
          "date": "2020-05-31T12:00:00.000Z",
          "payPeriodStartDate": "2020-05-11T12:00:00.000Z",
          "payPeriodEndDate": "2020-05-26T12:00:00.000Z",
          "grossAmount": 1875,
          "hours": 88,
          "deductions": [
            {
              "category": "taxes",
              "label": "Federal Income Tax",
              "rawLabel": "Federal Income Tax",
              "amount": 200
            },
            {
              "category": "taxes",
              "label": "State Income Tax",
              "rawLabel": "Utah State Tax",
              "amount": 50
            },
            {
              "category": "other",
              "label": "Abc corp dd",
              "rawLabel": "Abc corp dd",
              "amount": 5
            }
          ],
          "paystub": {
            "_id": "60abeff50836730008616fae",
            "url": "[ATOMIC-GENERATED-PRESIGNED-S3-URL]"
          }
        }
      ],
      "accounts": [
        {
          "routingNumber": "123123123",
          "accountNumber": "1122330000",
          "type": "checking",
          "bankName": "Molecular Bank",
          "distributionType": "percent",
          "distributionAmount": 80
        },
        {
          "routingNumber": "456456456",
          "accountNumber": "XXXX1111",
          "type": "savings",
          "bankName": "Molecular Bank",
          "distributionType": "percent",
          "distributionAmount": 20
        }
      ],
      "w2s": [
        {
          "year": "2020-01-01T00:00:00.000Z",
          "totalWages": 50000,
          "form": {
            "_id": "60abeff60836730008616faf",
            "url": "[ATOMIC-GENERATED-PRESIGNED-S3-URL]"
          }
        }
      ],
      "timesheets": [
        {
          "type": "unpaid",
          "duration": 420,
          "date": "2020-05-31T12:00:00.000Z"
        }
      ]
    }
  },
  "eventType": "task-status-updated",
  "eventTime": "2021-05-24T18:27:09.610Z"
}

Tasks may fail for many different reasons. If a task fails, we will include a reason property with the event's data object. Possible values include:

account-lockout
The account is locked out, most likely you have too many failed attempts.
account-setup-incomplete
The user's account setup is not complete and will require additional information from the user.
account-unusable
The user's bank account is unusable for the selected product.
bad-credentials
Either the username or password was incorrect.
connection-error
A network error occurred.
distribution-not-supported
The account did not support the distribution, e.g. they requested to add an account for a percentage of their paycheck, but can only do fixed amounts and remainder/net balance.
enrolled-in-paycard
The user is enrolled in a paycard program instead of direct deposit via their bank.
expired
The user's password has expired and they must create a new one.
no-data-found
No verify data was found for the user.
product-not-supported
The account did not support the product.
routing-number-not-supported
The account did not support the routing number entered.
session-timeout
The session timed out.
system-unavailable
The system was unavailable, e.g. the site is undergoing maintenance or it is outside the window of scheduled availability for the site.
transaction-pending
There is a transaction in progress. Only one transaction may be run at a time.
unknown-failure
We encountered an unexpected error.
user-abandon
The user was asked an MFA question, but did not answer the question.
work-status-terminated
The task could not be completed because the user's employment has been terminated.

When eventType is deposit-switch-removed, a deposit switch that was previously completed is no longer present on the user's account.

In addition to the standard event properties, the data property includes the following:

removedDepositAccountobject
A snapshot of the deposit account that was previously added.
depositAccounts[]
An array of deposit accounts that represent the current state of the user's deposit accounts.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample deposit-switch-removed event
{
  "eventType": "deposit-switch-removed",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "removedDepositAccount": {
      "routingNumber": "456456456",
      "accountNumber": "XXXX1111",
      "type": "savings",
      "bankName": "Molecular Bank",
      "distributionType": "percent",
      "distributionAmount": 20
    },
    "depositAccounts": [
      {
        "routingNumber": "123123123",
        "accountNumber": "1122330000",
        "type": "checking",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 100
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is statements-synced, a user's statements have finished their initial sync.

In addition to the standard event properties, the data property includes the following:

statements[]
An array of statement objects.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample statements-synced event
{
  "eventType": "statements-synced",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "statements": [
      {
        "date": "2020-06-15T12:00:00.000Z",
        "payPeriodStartDate": "2020-05-27T12:00:00.000Z",
        "payPeriodEndDate": "2020-06-12T12:00:00.000Z",
        "grossAmount": 1000,
        "ytdGrossAmount": 10000,
        "netAmount": 800,
        "ytdNetAmount": 8000,
        "deductions": [
          {
            "category": "taxes",
            "label": "Federal Income Tax",
            "rawLabel": "Federal Income Tax",
            "amount": 200,
            "ytdAmount": 2000
          },
          {
            "category": "taxes",
            "label": "State Income Tax",
            "rawLabel": "Utah State Tax",
            "amount": 50,
            "ytdAmount": 500
          },
          {
            "category": "other",
            "label": "Abc corp dd",
            "rawLabel": "Abc corp dd",
            "amount": 5,
            "ytdAmount": 50
          }
        ],
        "earnings": [
          {
            "category": "bonus",
            "rawLabel": "Quarterly Bonus",
            "amount": 2000,
            "ytdAmount": 6000
          },
          {
            "category": "overtime",
            "rawLabel": "Overtime Pay",
            "amount": 100,
            "ytdAmount": 1000,
            "hours": 10,
            "rate": 15
          },
          {
            "category": "reimbursement",
            "rawLabel": "Gas Card",
            "amount": 25.47,
            "ytdAmount": 85.74
          }
        ],
        "paystub": {
          "_id": "60abeff50836730008616fad",
          "url": "[ATOMIC-GENERATED-PRESIGNED-S3-URL]"
        }
      },
      {
        "date": "2020-06-30T12:00:00.000Z",
        "payPeriodStartDate": "2020-05-27T12:00:00.000Z",
        "payPeriodEndDate": "2020-06-12T12:00:00.000Z",
        "grossAmount": 1000,
        "deductions": [
          {
            "category": "taxes",
            "label": "Federal Income Tax",
            "rawLabel": "Federal Income Tax",
            "amount": 200
          },
          {
            "category": "taxes",
            "label": "State Income Tax",
            "rawLabel": "Utah State Tax",
            "amount": 50
          },
          {
            "category": "other",
            "label": "Abc corp dd",
            "rawLabel": "Abc corp dd",
            "amount": 5
          }
        ],
        "paystub": {
          "_id": "60abeff50836730008616fae",
          "url": "[ATOMIC-GENERATED-PRESIGNED-S3-URL]"
        }
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is statements-added, one or more statements have been added to a user's account.

In addition to the standard event properties, the data property includes the following:

statements[]
An array of statement objects.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample statements-added event
{
  "eventType": "statements-added",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "statements": [
      {
        "date": "2020-06-15T12:00:00.000Z",
        "payPeriodStartDate": "2020-05-27T12:00:00.000Z",
        "payPeriodEndDate": "2020-06-12T12:00:00.000Z",
        "grossAmount": 1000,
        "ytdGrossAmount": 10000,
        "netAmount": 800,
        "ytdNetAmount": 8000,
        "deductions": [
          {
            "category": "taxes",
            "label": "Federal Income Tax",
            "rawLabel": "Federal Income Tax",
            "amount": 200,
            "ytdAmount": 2000
          },
          {
            "category": "taxes",
            "label": "State Income Tax",
            "rawLabel": "Utah State Tax",
            "amount": 50,
            "ytdAmount": 500
          },
          {
            "category": "other",
            "label": "Abc corp dd",
            "rawLabel": "Abc corp dd",
            "amount": 5,
            "ytdAmount": 50
          }
        ],
        "earnings": [
          {
            "category": "bonus",
            "rawLabel": "Quarterly Bonus",
            "amount": 2000,
            "ytdAmount": 6000
          },
          {
            "category": "overtime",
            "rawLabel": "Overtime Pay",
            "amount": 100,
            "ytdAmount": 1000,
            "hours": 10,
            "rate": 15
          },
          {
            "category": "reimbursement",
            "rawLabel": "Gas Card",
            "amount": 25.47,
            "ytdAmount": 85.74
          }
        ],
        "paystub": {
          "_id": "60abeff50836730008616fad",
          "url": "[ATOMIC-GENERATED-PRESIGNED-S3-URL]"
        }
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is income-synced, a user's income has finished its initial sync.

In addition to the standard event properties, the data property includes the following:

incomeobject
An income object, representing the most recent state.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample income-synced event
{
  "eventType": "income-synced",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "income": {
      "income": 45000,
      "incomeType": "yearly",
      "annualIncome": 45000,
      "hourlyIncome": 21.56,
      "netHourlyRate": 18.44,
      "payCycle": "weekly",
      "nextExpectedPayDate": "2020-06-30T12:00:00.000Z",
      "currentPayPeriodStart": "2020-06-13T12:00:00.000Z",
      "currentPayPeriodEnd": "2020-06-27T12:00:00.000Z",
      "unpaidHoursInPayPeriod": 24
    },
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is income-updated, a user's income has been updated.

In addition to the standard event properties, the data property includes the following:

incomeobject
An income object, representing the most recent state.
changesobject
The changes that took place within the user's data, previous representing the former value, and current being the latest value. If new data is detected, then the value of previous could be null.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample income-updated event
{
  "eventType": "income-updated",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "income": {
      "income": 45000,
      "incomeType": "yearly",
      "annualIncome": 45000,
      "hourlyIncome": 21.56,
      "netHourlyRate": 18.44,
      "payCycle": "weekly",
      "nextExpectedPayDate": "2020-06-30T12:00:00.000Z",
      "currentPayPeriodStart": "2020-06-13T12:00:00.000Z",
      "currentPayPeriodEnd": "2020-06-27T12:00:00.000Z",
      "unpaidHoursInPayPeriod": 24
    },
    "changes": {
      "annualIncome": {
        "previous": 40000,
        "current": 45000
      }
    },
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is timesheets-synced, a user's timesheets have finished their initial sync.

In addition to the standard event properties, the data property includes the following:

timesheets[]
An array of timesheet objects.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample timesheets-synced event
{
  "eventType": "timesheets-synced",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "timesheets": [
      {
        "duration": 420,
        "date": "2021-10-13",
        "type": "unpaid",
        "calculated": true
      },
      {
        "duration": 480,
        "date": "2021-10-12",
        "type": "paid",
        "calculated": false
      },
      {
        "duration": 340,
        "date": "2021-10-11",
        "type": "paid",
        "calculated": false
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is timesheets-added, one or more timesheets have been added to a user's account.

In addition to the standard event properties, the data property includes the following:

timesheets[]
An array of timesheet objects.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample timesheets-added event
{
  "eventType": "timesheets-added",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "timesheets": [
      {
        "duration": 420,
        "date": "2021-10-13",
        "type": "unpaid",
        "calculated": true
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is employment-synced, a user's employment has finished its initial sync.

In addition to the standard event properties, the data property includes the following:

employmentobject
An employment object, representing the most recent state.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample employment-synced event
{
  "eventType": "employment-synced",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "employment": {
      "employeeType": "fulltime",
      "employmentStatus": "active",
      "jobTitle": "Product Manager",
      "startDate": "2017-04-19T12:00:00.000Z",
      "minimumMonthsOfEmployment": 58,
      "weeklyHours": 40,
      "employer": {
        "name": "Company Inc.",
        "address": {
          "line1": "12345 Enterprise Rd",
          "line2": "Suite 105",
          "city": "Salt Lake City",
          "state": "UT",
          "postalCode": "84111",
          "country": "USA"
        }
      }
    },
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is employment-updated, a user's employment has been updated.

In addition to the standard event properties, the data property includes the following:

employmentobject
An employment object, representing the most recent state.
changesobject
The changes that took place within the user's data, previous representing the former value, and current being the latest value. If new data is detected, then the value of previous could be null.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample employment-updated event
{
  "eventType": "employment-updated",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "employment": {
      "employeeType": "fulltime",
      "employmentStatus": "active",
      "jobTitle": "Product Manager",
      "startDate": "2017-04-19T12:00:00.000Z",
      "minimumMonthsOfEmployment": 58,
      "weeklyHours": 40,
      "employer": {
        "name": "Company Inc.",
        "address": {
          "line1": "12345 Enterprise Rd",
          "line2": "Suite 105",
          "city": "Salt Lake City",
          "state": "UT",
          "postalCode": "84111",
          "country": "USA"
        }
      }
    },
    "changes": {
      "jobTitle": {
        "previous": "Product Intern",
        "current": "Product Manager"
      }
    },
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is identity-synced, a user's identity has finished its initial sync.

In addition to the standard event properties, the data property includes the following:

identityobject
An identity object, representing the most recent state.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample identity-synced event
{
  "eventType": "identity-synced",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "identity": {
      "firstName": "Jane",
      "lastName": "Appleseed",
      "dateOfBirth": "1984-04-12T12:00:00.000Z",
      "email": "janeappleseed@example.com",
      "phone": "5558881111",
      "ssn": "111223333",
      "address": "123 Example St.",
      "city": "Salt Lake City",
      "state": "UT",
      "postalCode": "84111"
    },
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is identity-updated, a user's identity has been updated.

In addition to the standard event properties, the data property includes the following:

identityobject
An identity object, representing the most recent state.
changesobject
The changes that took place within the user's data, previous representing the former value, and current being the latest value. If new data is detected, then the value of previous could be null.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample identity-updated event
{
  "eventType": "identity-updated",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "identity": {
      "firstName": "Jane",
      "lastName": "Appleseed",
      "dateOfBirth": "1984-04-12T12:00:00.000Z",
      "email": "janeappleseed@example.com",
      "phone": "5558881111",
      "ssn": "111223333",
      "address": "123 Example St.",
      "city": "Salt Lake City",
      "state": "UT",
      "postalCode": "84111"
    },
    "changes": {
      "email": {
        "previous": "jillappleseed@example.com",
        "current": "janeappleseed@example.com"
      }
    },
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is taxes-synced, a user's tax data has finished its initial sync.

In addition to the standard event properties, the data property includes the following:

taxesobject
A combined array of tax data objects, representing the most recent state.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample taxes-synced event
{
  "eventType": "taxes-synced",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "taxes": [
      {
        "type": "w2",
        "year": "2020-01-01T00:00:00.000Z",
        "totalWages": 50000,
        "form": {
          "_id": "60abeff60836730008616faf",
          "url": "[ATOMIC-GENERATED-PRESIGNED-S3-URL]"
        }
      },
      {
        "type": "1099",
        "year": "2020-01-01T00:00:00.000Z",
        "form": {
          "_id": "60abeff60836730008616faf",
          "url": "[ATOMIC-GENERATED-PRESIGNED-S3-URL]"
        }
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is taxes-added, one or more tax data objects have been added to a user's account.

In addition to the standard event properties, the data property includes the following:

taxesobject
A combined array of tax data objects, representing the most recent state.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample taxes-added event
{
  "eventType": "taxes-added",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "taxes": [
      {
        "type": "w2",
        "year": "2020-01-01T00:00:00.000Z",
        "totalWages": 50000,
        "form": {
          "_id": "60abeff60836730008616faf",
          "url": "[ATOMIC-GENERATED-PRESIGNED-S3-URL]"
        }
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is deposit-accounts-synced, a user's deposit accounts have finished their initial sync.

In addition to the standard event properties, the data property includes the following:

depositAccounts[]
An array of depositAccount objects, representing the most recent state.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample deposit-accounts-synced event
{
  "eventType": "deposit-accounts-synced",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "depositAccounts": [
      {
        "routingNumber": "123123123",
        "accountNumber": "1122330000",
        "type": "checking",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 80
      },
      {
        "routingNumber": "456456456",
        "accountNumber": "XXXX1111",
        "type": "savings",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 20
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is deposit-accounts-added, one or more deposit accounts have been added to a user's account.

In addition to the standard event properties, the data property includes the following:

depositAccounts[]
An array of depositAccount objects, representing the most recent state.
changesobject
A list of deposit accounts that were added.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample deposit-accounts-added event
{
  "eventType": "deposit-accounts-added",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "depositAccounts": [
      {
        "routingNumber": "123123123",
        "accountNumber": "1122330000",
        "type": "checking",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 80
      },
      {
        "routingNumber": "456456456",
        "accountNumber": "XXXX1111",
        "type": "savings",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 20
      }
    ],
    "changes": [
      {
        "routingNumber": "123123123",
        "accountNumber": "1122330000",
        "type": "checking",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 80
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is deposit-accounts-updated, one or more deposit accounts have been updated.

In addition to the standard event properties, the data property includes the following:

depositAccounts[]
An array of depositAccount objects, representing the most recent state.
changesobject
A list of deposit accounts that were updated.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample deposit-accounts-updated event
{
  "eventType": "deposit-accounts-updated",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "depositAccounts": [
      {
        "routingNumber": "123123123",
        "accountNumber": "1122330000",
        "type": "checking",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 80
      },
      {
        "routingNumber": "456456456",
        "accountNumber": "XXXX1111",
        "type": "savings",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 20
      }
    ],
    "changes": [
      {
        "routingNumber": "123123123",
        "accountNumber": "1122330000",
        "type": "checking",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 80
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is deposit-accounts-removed, one or more deposit accounts have been removed.

In addition to the standard event properties, the data property includes the following:

depositAccounts[]
An array of depositAccount objects, representing the most recent state.
changesobject
A list of deposit accounts that were removed.
companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample deposit-accounts-removed event
{
  "eventType": "deposit-accounts-removed",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "depositAccounts": [
      {
        "routingNumber": "123123123",
        "accountNumber": "1122330000",
        "type": "checking",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 80
      },
      {
        "routingNumber": "456456456",
        "accountNumber": "XXXX1111",
        "type": "savings",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 20
      }
    ],
    "changes": [
      {
        "routingNumber": "456456456",
        "accountNumber": "XXXX1111",
        "type": "savings",
        "bankName": "Molecular Bank",
        "distributionType": "percent",
        "distributionAmount": 20
      }
    ],
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}

When eventType is linked-account-connected, a user's linked account been connected.

In addition to the standard event properties, the data property includes the following:

linkedAccountobject
The linkedAccount associated with the data.
Sample linked-account-connected event
{
  "eventType": "linked-account-connected",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "linkedAccount": {
      "_id": "5f7212103a40e91f95ba376d",
      "connector": {
        "_id": "5d77f95207085632a58945c3",
        "name": "ADP",
        "branding": {
          "logo": {
            "_id": "5eb62781b4b83f0008f6343c",
            "url": "https://cdn.atomicfi.com/adp-logo.svg"
          }
        }
      },
      "company": {
        "_id": "5d77f9e1070856f3828945c6",
        "name": "DoTerra",
        "branding": {
          "logo": {
            "_id": "5eb62781b4b83f0008f638cc",
            "url": "https://cdn.atomicfi.com/doterra-logo.svg"
          }
        }
      }
    }
  }
}

When eventType is linked-account-disconnected, a user's linked account has been disconnected.

In addition to the standard event properties, the data property includes the following:

linkedAccountobject
The linkedAccount associated with the data.
Sample linked-account-disconnected event
{
  "eventType": "linked-account-disconnected",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "linkedAccount": {
      "_id": "5f7212103a40e91f95ba376d",
      "connector": {
        "_id": "5d77f95207085632a58945c3",
        "name": "ADP",
        "branding": {
          "logo": {
            "_id": "5eb62781b4b83f0008f6343c",
            "url": "https://cdn.atomicfi.com/adp-logo.svg"
          }
        }
      },
      "company": {
        "_id": "5d77f9e1070856f3828945c6",
        "name": "DoTerra",
        "branding": {
          "logo": {
            "_id": "5eb62781b4b83f0008f638cc",
            "url": "https://cdn.atomicfi.com/doterra-logo.svg"
          }
        }
      }
    }
  }
}

When eventType is deposit-not-received, it means there are insufficient funds in the account or a deposit did not take place.

In addition to the standard event properties, the data property includes the following:

expectedDatestring
The date the deposit was expected to have occurred.
expectedAmountnumber
The expected amount of the deposit that did not occur.
Sample deposit-not-received event
{
  "eventType": "deposit-not-received",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "expectedDate": "2020-01-28T22:04:18.778Z",
    "expectedAmount": 500
  }
}

When eventType is account-closed, it means all payments have been made and the deposit account is ready to be removed from the payroll provider. For security, in order to safely remove a deposit account the customer will be prompted to log-in to their payroll provider to complete the account removal process.

When eventType is task-retry, the user should be notified to re-initiate the flow. This event is triggered when the payroll provider's system or user's account was temporarily unavailable and is now available.

In addition to the standard event properties, the data property includes the following:

companyobject
The Company to which the data is linked.
connectorobject
The Connector to which the data is linked.
taskstring
The ID of the task.
taskWorkflowstring
The ID of the task workflow.

More attributes

linkedAccountstring
If enabled, the unique identifier for the linked account.
Sample task-retry event
{
  "eventType": "task-retry",
  "eventTime": "2020-01-28T22:04:18.778Z",
  "user": {
    "_id": "5c17c632e1d8ca3b08b2586f",
    "identifier": "YOUR_UNIQUE_GUID"
  },
  "data": {
    "company": {
      "_id": "5d77f9e1070856f3828945c6",
      "name": "DoTerra",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f638cc",
          "url": "https://cdn.atomicfi.com/doterra-logo.svg"
        }
      }
    },
    "connector": {
      "_id": "5d77f95207085632a58945c3",
      "name": "ADP",
      "branding": {
        "logo": {
          "_id": "5eb62781b4b83f0008f6343c",
          "url": "https://cdn.atomicfi.com/adp-logo.svg"
        }
      }
    },
    "linkedAccount": "5f7212103a40e91f95ba376d",
    "task": "602414d84f9a1980cf5eafcc",
    "taskWorkflow": "5d97e4abc90a0a0007993e9b"
  }
}