---
title: "Read what the bank has reported since last time"
method: POST
path: "/api/v1/banking/plaid/sync"
tags: ["Money"]
---

# Read what the bank has reported since last time

`POST /api/v1/banking/plaid/sync`

## Request

- Base URL: `http://localhost:5180`
- URL: `http://localhost:5180/api/v1/banking/plaid/sync`
- Auth: API key in cookie `better-auth.session_token`

Reads every account a Plaid connection feeds, in one call for the whole connection, and writes the movements the bank has reported since the last read. Nothing here asks the bank to go and look: Plaid refreshes an item on its own and says so by webhook, so this reads what it already holds and never sends the owner’s address anywhere. A movement already held is recognised and counted rather than written twice. With no `connectionId` every Plaid connection on the team is read.

## Request body

- object
  - `connectionId` string: Stable record id, e.g. `lse_012`.

## Response `200`

What the read brought.

- object
  - `ok` unknown, required
  - `data` object, required
    - `imported` number, required
    - `duplicates` number, required
    - `placed` number, required
    - `note` string
  - `meta` object, required
    - `requestId` string, required: Echoed in the x-request-id header. Quote it in a bug report.

## Other responses

- `404`: No such connection on this team.
- `409`: Plaid is switched off here, or this deployment holds no Plaid credentials.

---

[API](https://skmtc.dev/dardaris/apis/dardaris-api.md) · [All operations](https://skmtc.dev/dardaris/apis/dardaris-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dardaris/apis/dardaris-api/revisions/4aff33835c73?raw)
