GET
/
links
/
{id}
/
transactions
/
sync
curl --request GET \
  --url http://localhost:8080/links/{id}/transactions/sync \
  --header 'Authorization: Bearer <token>'
{
  "transactions": {
    "created": [
      {
        "transaction_id": "c7318ff7-257c-490e-8242-03a815b223b7",
        "account_id": "acc_6Tef269B6ZArSVpYrxtjBV",
        "amount": 384.05,
        "type": "debit",
        "currency": "USD",
        "date": "2023-02-16T00:00:00",
        "datetime": "2023-02-16T09:14:11",
        "description": "Regina's Mulberry",
        "raw_description": "Regina's Mulberry #1402 T48999-84",
        "pending": true,
        "category": "food_and_drinks.restaurants"
      }
    ],
    "updated": [
      {
        "transaction_id": "c7318ff7-257c-490e-8242-03a815b223b7",
        "account_id": "acc_6Tef269B6ZArSVpYrxtjBV",
        "amount": 384.05,
        "type": "debit",
        "currency": "USD",
        "date": "2023-02-16T00:00:00",
        "datetime": "2023-02-16T09:14:11",
        "description": "Regina's Mulberry",
        "raw_description": "Regina's Mulberry #1402 T48999-84",
        "pending": true,
        "category": "food_and_drinks.restaurants"
      }
    ],
    "removed": [
      "<string>"
    ]
  },
  "cursor": {
    "next": "c2FtcGxlIGN1cnNvcg=="
  },
  "has_more": true,
  "link": {
    "link_id": "mk_eqkWN34UEoa2NxyALG8pcV",
    "institution_id": "chase",
    "institution_name": "Chase",
    "provider": "mx",
    "state": "connected",
    "last_synced_at": "2023-02-16T09:14:11",
    "tags": [
      "user_type:admin"
    ],
    "products": {
      "accounts": {
        "refreshed_at": "2023-02-16T09:14:11",
        "last_attempted_at": "2023-02-16T09:14:11"
      },
      "identity": {
        "refreshed_at": "2023-02-16T09:14:11",
        "last_attempted_at": "2023-02-16T09:14:11",
        "settings": {
          "required": true,
          "prefetch": false
        }
      }
    }
  }
}

Each call will also return a next_cursor value. In subsequent calls, include that value to receive only changes that have occurred since the previous call.

Large numbers of transactions will be paginated, and the has_more field will be true. You should continue calling this endpoint with each new next_cursor value until has_more is false.

Note that this endpoint does not trigger a fetch of transactions from the institution; it merely returns transactions that have already been fetched, either because prefetch was requested when the link was created, or because of scheduled or on-demand updates. MoneyKit checks for updated account data, including transactions, periodically throughout the day, but the update frequency can vary, depending on the downstream data provider, the institution, and whether one or both provide webhook-based updates.

To force a check for updated transactions, you can use the /products endpoint.

Note also that the transactions.updates_available webhook will alert you when new data is available.
curl -i -X GET \
  'http://localhost:8080/links/{id}/transactions/sync?cursor=string&size=50' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'moneykit-version: 2023-02-18'
{
  "transactions": {
    "created": [
      {
        "transaction_id": "c7318ff7-257c-490e-8242-03a815b223b7",
        "account_id": "a3ba443a-257c-490e-8242-03a84789d39f",
        "amount": 384.05,
        "type": "debit",
        "currency": "USD",
        "date": "2023-02-16T00:00:00",
        "datetime": "2023-02-16T09:14:11",
        "description": "Regina's Mulberry",
        "raw_description": "Regina's Mulberry #1402 T48999-84",
        "pending": true,
        "category": "food_and_drinks.restaurants"
      }
    ],
    "updated": [
      {
        "transaction_id": "c7318ff7-257c-490e-8242-03a815b223b7",
        "account_id": "a3ba443a-257c-490e-8242-03a84789d39f",
        "amount": 384.05,
        "type": "debit",
        "currency": "USD",
        "date": "2023-02-16T00:00:00",
        "datetime": "2023-02-16T09:14:11",
        "description": "Regina's Mulberry",
        "raw_description": "Regina's Mulberry #1402 T48999-84",
        "pending": true,
        "category": "food_and_drinks.restaurants"
      }
    ],
    "removed": [
      "string"
    ]
  },
  "cursor": {
    "next": "c2FtcGxlIGN1cnNvcg=="
  },
  "has_more": true,
  "link": {
    "link_id": "mk_eqkWN34UEoa2NxyALG8pcV",
    "institution_id": "chase",
    "institution_name": "Chase",
    "provider": "mx",
    "state": "connected",
    "last_synced_at": "2023-02-16T09:14:11",
    "tags": [
      "user_type:admin"
    ],
    "products": {
      "accounts": {
        "refreshed_at": "2023-02-16T09:14:11",
        "last_attempted_at": "2023-02-16T09:14:11"
      },
      "identity": {
        "refreshed_at": "2023-02-16T09:14:11",
        "last_attempted_at": "2023-02-16T09:14:11",
        "settings": {
          "required": true,
          "prefetch": false
        }
      }
    }
  }
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Headers

moneykit-version
string
default:2023-02-18

Path Parameters

id
string
required

The unique ID for this link.

Query Parameters

cursor
string

A cursor value representing the last update requested. If included, the response will only return changes after this update. If omitted, a complete history of updates will be returned. This value must be stored by the client as we do not keep track of customer cursors.

size
integer
default:50

The number of items to return.

Required range: 1 <= x <= 500

Response

200
application/json

Successful Response

The response is of type object.