Skip to main content
GET
/
v1
/
transactions
/
sync
Sync Transactions
curl --request GET \
  --url https://api.waycore.com/v1/transactions/sync \
  --header 'Authorization: Bearer <token>'
{
  "events": [
    {
      "eventId": "<string>",
      "eventAt": "2023-11-07T05:31:56Z",
      "type": "added",
      "transaction": {
        "id": "<string>",
        "connectionId": "<string>",
        "accountId": "<string>",
        "status": "pending",
        "postedDate": "2023-12-25",
        "updatedAt": "2023-11-07T05:31:56Z",
        "amount": "<string>",
        "currency": "<string>",
        "entryType": "credit",
        "description": "<string>",
        "rail": "internalTransfer",
        "rawDescription": "<string>",
        "paymentReference": "<string>",
        "bankReference": "<string>",
        "baiCode": "<string>",
        "category": "<string>",
        "subcategory": "<string>",
        "mcc": "<string>",
        "merchantName": "<string>",
        "counterpartyName": "<string>",
        "counterpartyAccountMasked": "<string>"
      }
    }
  ],
  "nextCursor": "<string>",
  "hasMore": true,
  "meta": {
    "requestId": "<string>"
  }
}

Authorizations

Authorization
string
header
required

Opaque API key passed as Authorization: Bearer <key>. Keys are organization-bound, environment-bound (live or test), scope-carrying, and expiring. Create and manage keys via the console.

Query Parameters

cursor
string | null

Opaque cursor returned by a previous /v1/transactions/sync response. Omit on the first call to initialise the stream head for no-gap bootstrap. Cursors are valid only for the same stream-defining filters (accountId, connectionId), expire after 90 days, and act as lower bounds in the ordered sync stream. invalid_cursor means malformed or filter-mismatched. cursor_expired means the client must rebootstrap.

limit
integer
default:100

Maximum number of change events to return.

Required range: 1 <= x <= 500
fields
string | null

Comma-separated sparse fieldset applied to embedded transaction objects. The server always includes required identifiers. This does not change stream membership and is not part of cursor compatibility.

accountId
string | null

Limit the stream to a single account. This is a stream-defining filter and must stay consistent for the lifetime of the cursor stream.

connectionId
string<uuid> | null

Limit the stream to a single connection. This is a stream-defining filter and must stay consistent for the lifetime of the cursor stream.

Response

Successful Response

events
(TransactionUpsertEvent · object | TransactionRemovedEvent · object)[]
required

Mirror-maintenance change events ordered by the server's sync cursor ascending. They are designed to keep a current mirror correct, not to provide an immutable replay log. Reusing the same cursor later returns the then-current ordered suffix after that cursor rather than a byte-for-byte replay of an earlier page.

nextCursor
string
required

Opaque cursor to use on the next sync call. Persist it only after the full page has been durably applied.

hasMore
boolean
required
meta
Meta · object
required