---
title: "Update sync eligibility"
method: POST
path: "/v1/web/expense/{id}/sync-eligibility"
tags: ["Expense"]
---

# Update sync eligibility

`POST /v1/web/expense/{id}/sync-eligibility`

Sets the sync eligibility for an expense. Marking `ready` requires `accountingDate` and `spendCategoryId` to be populated.

## Path parameters

- `id` string, required

## Request body

- object
  - `syncEligibility` union, required
    - 'pending'
    - 'ready'
    - 'skipped'

## Response `200`

Default Response

- object
  - `id` string, required
  - `status` union, required
    - 'draft'
    - 'submitted'
    - 'approved'
    - 'returned'
    - 'deleted'
  - `creatorUserId` string, required
  - `accountingDate` string, date-time, nullable, required
  - `memo` string, nullable, required
  - `description` string, nullable, required
  - `referenceNumber` string, nullable, required
  - `rutterCustomerId` string, nullable, required
  - `rutterVendorId` string, nullable, required
  - `rutterDepartmentId` string, nullable, required
  - `rutterLocationId` string, nullable, required
  - `billable` boolean, nullable, required
  - `spendCategoryId` string, nullable, required
  - `policyViolations` union[], nullable, required — Fields that were still missing at the most-recent submit. Empty if submitted clean (or never submitted).
    - union
      - 'memo'
      - 'receipt'
      - 'spendCategoryId'
  - `syncEligibility` union, required
    - 'pending'
    - 'ready'
    - 'skipped'
  - `latestSync` object, nullable, required
    - `status` union, required
      - 'inProgress'
      - 'successful'
      - 'failed'
    - `createdAt` string, date-time, required
    - `completedAt` string, date-time
    - `error` object
      - `type` string, required
      - `code` string, required
      - `message` string, required
      - `source` string
  - `readyAt` string, date-time, nullable, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `deletedAt` string, date-time, nullable, required

## Other responses

- `400` — Default Response
- `401` — The access to this resource has been denied
- `403` — The access to this resource is forbidden
- `404` — The resource was not found
- `422` — Default Response
- `default` — Catch-all error response for any unexpected internal errors

---

[API](https://skmtc.net/funneldash/apis/surface-web-api.md) · [All operations](https://skmtc.net/funneldash/apis/surface-web-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/funneldash/surface-web-api/revisions/ac700d65f443/schema)
