---
updatedAt: 2025-12-02T00:14:09.000Z
agentTools:
  siteIndex: https://docs.gusto.com/llms.txt
  projectIndex: https://docs.gusto.com/embedded-payroll/llms.txt
---

# Payroll Statuses

<Table align={["left","left","left","left","left"]}>
  <thead>
    <tr>
      <th style={{ textAlign: "left" }}>
        Status:
      </th>

      <th style={{ textAlign: "left" }}>
        Unprocessed
      </th>

      <th style={{ textAlign: "left" }}>
        Submitted
      </th>

      <th style={{ textAlign: "left" }}>
        Pending
      </th>

      <th style={{ textAlign: "left" }}>
        Paid
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td style={{ textAlign: "left" }}>
        **Description**
      </td>

      <td style={{ textAlign: "left" }}>
        A payroll's default state when it is first created.
      </td>

      <td style={{ textAlign: "left" }}>
        Payroll has been submitted to Gusto for processing but bank debits have not been initiated yet.
      </td>

      <td style={{ textAlign: "left" }}>
        Payroll has been submitted to Gusto and company bank debits have been initiated.
      </td>

      <td style={{ textAlign: "left" }}>
        A payroll was submitted, processed, and employee direct deposit payments have been initiated (employees paid / payroll complete).
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Business Logic**
      </td>

      <td style={{ textAlign: "left" }}>
        `"processed": false`
      </td>

      <td style={{ textAlign: "left" }}>
        `"processed": true`  

        Current time is `<` 4:00pm PT on the `payroll_deadline`
      </td>

      <td style={{ textAlign: "left" }}>
        `"processed": true`  

        Current time is `>=` 4:00pm on the `payroll_deadline`
      </td>

      <td style={{ textAlign: "left" }}>
        `"processed": true`  

        Current time is `>=` **`check_date`**
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Transitions**
      </td>

      <td style={{ textAlign: "left" }}>
        An **unprocessed** payroll transitions to the next status - \*\*submitted - when payroll is [submitted](https://docs.gusto.com/embedded-payroll/reference/put-v1-companies-company_id-payrolls-payroll_id-submit).
      </td>

      <td style={{ textAlign: "left" }}>
        A **submitted payroll** transitions to **pending** at 4:00pm PT on the `payroll_deadline`.  

        When a **submitted** payroll is [canceled](https://docs.gusto.com/embedded-payroll/reference/put-api-v1-companies-company_id-payrolls-payroll_id-cancel),  a payroll transitions back to `"processed": false` (unprocessed).
      </td>

      <td style={{ textAlign: "left" }}>
        A **pending** payroll transitions to **paid** on the `check_date`.
      </td>

      <td style={{ textAlign: "left" }}>
        This is the final state of a payroll and it does not transition to another status from here.
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Can Update?**\
        (includes skip)
      </td>

      <td style={{ textAlign: "left" }}>
        Yes
      </td>

      <td style={{ textAlign: "left" }}>
        No
      </td>

      <td style={{ textAlign: "left" }}>
        No
      </td>

      <td style={{ textAlign: "left" }}>
        No
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **Can Cancel?**
      </td>

      <td style={{ textAlign: "left" }}>
        No
      </td>

      <td style={{ textAlign: "left" }}>
        Yes
      </td>

      <td style={{ textAlign: "left" }}>
        No
      </td>

      <td style={{ textAlign: "left" }}>
        No
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        *Additional Details*
      </td>

      <td style={{ textAlign: "left" }}>

      </td>

      <td style={{ textAlign: "left" }}>
        * Bank debits will initiate a little after 4:00pm PT on the `payroll_deadline`.  

        If payroll is submitted after 4:00pm PT on the `payroll_deadline`, the payroll will be delayed by 1 business day and the `payroll_deadline` will update accordingly.\_ 
      </td>

      <td style={{ textAlign: "left" }}>

      </td>

      <td style={{ textAlign: "left" }}>
        *Direct deposits are typically paid early on the morning of the`check_date` but sometimes it takes a little longer for banks to update. Please up to 24 hrs for the deposits to be reflected on employee bank statements.* 
      </td>
    </tr>
  </tbody>
</Table>