---
title: "Update transaction"
method: PUT
path: "/connector/users/{externalUserId}/transactions/{externalTransactionId}"
tags: ["ENTERPRISE", "Connector.Transaction", "MULTI_TENANT"]
---

# Update transaction

`PUT /connector/users/{externalUserId}/transactions/{externalTransactionId}`

Updates a single transaction related to an account.

## Path parameters

- `externalUserId` string, required
- `externalTransactionId` string, required

## Request body

- UpdateTransactionAccountContainer — Container of account and transactions.
  - `transactionAccounts` UpdateTransactionAccountEntity[], required — The transaction accounts.
    - `balance` number, double, required — The balance of the account at the time of the last transaction in the list.If a reserved amount is supplied, the account's balance will be set to the balance supplied minus the reserved amount
    - `externalId` string — External identifier for the account the transaction belongs to. Either this or tinkId must be set.
    - `payload` object — The payload property can include arbitrary metadata provided by the financial institution in question that can be used either for deep-linking back to the app of the financial institution, for displaying additional information about the account, or for backend purposes such as automatic categorization improvement, etc. The format is key-value, where key is a String and value any object.
    - `reservedAmount` number, double — The reserved amount of the account at the time of the last transaction in the list.The reserved amount is optional. If a reserved amount is supplied, the account's balance will be set to the balance supplied minus the reserved amount
    - `tinkId` string — Internal identifier for the account the transaction belongs to generated by Tink. Either this or externalId must be set.
    - `transactions` CreateTransactionEntity[], required — The list with the single transaction to update.
      - `amount` number, double, required — The debited/credited amount in the currency of the account.
      - `counterparties` ConnectorCounterparties
        - `payee` ConnectorCounterpartyInformation
          - `identifiers` ConnectorIdentifiers
            - `financialInstitution` FinancialInstitution
              - …
          - `name` string — [BETA] Name of a transaction counterparty.
        - `payer` ConnectorCounterpartyInformation
          - `identifiers` ConnectorIdentifiers
            - `financialInstitution` FinancialInstitution
              - …
          - `name` string — [BETA] Name of a transaction counterparty.
      - `date` string, date-time, required — Date is when the transaction was executed, not when it was settled (except for scheduled transfers/payments, where the settling date is to be interpreted as the execution date). The date cannot be older than 10 years.
      - `description` string, required — A merchant name if possible. If such value is not available, the description that is shown in the transaction list.
      - `externalId` string, required — External identifier for the transaction. Must be unique per user and account.
      - `merchantCategoryCode` string — [BETA] Merchant category code (MCC) specified as ISO-18245 4-digit string.
      - `merchantName` string — Merchant name of the transaction.
      - `payload` object — The payload property is a key-value map. Maximum total size of payload data is 1000 chars. The key must be one the following supported ones:<br/><code>PENDING_IDS</code>: A list of pending transaction external IDs for which this transaction is a booking of. If the user has changed any of the pending transactions, this transaction will get the category of the pending transaction with the largest amount if it constitutes at least half of this transactions amount.<br/><code>PENDING_TRANSACTION_EXPIRATION_DATE</code>: A UNIX timestamp for when this transaction should be automatically removed from the database. The removal will happen when other transactions are sent in. Can only be set on transactions marked as pending.<br/> <code>TAGS</code>: An array of strings that will be set as tags within the notes field of the transaction. Each tag must be alphanumeric without whitespace.
      - `pending` boolean — If the transaction is pending (reserved) or not (booked).
      - `tinkId` string — Ignored for new objects. Used to specify the id as given by Tink on when updating objects without an existing external ID.
      - `type` 'DEFAULT, CREDIT_CARD, TRANSFER, PAYMENT, WITHDRAWAL', required — The type of the transaction.
  - `type` 'REAL_TIME' | 'HISTORICAL' | 'BATCH', required — Defines the priority of the update request. Only `REAL_TIME` is supported for reflecting the most recent updates on a user's account.

## Response `204`

Transaction updated.

## Other responses

- `400` — The payload does not pass validation, or the specified account does not exist.
- `401` — Unauthorized.
- `404` — User with the given external id not found.

---

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