---
title: "CounterpartyTransactionUpdated"
method: POST
path: "counterpartyTransactionUpdated"
tags: ["Webhook Topics"]
---

# CounterpartyTransactionUpdated

`POST counterpartyTransactionUpdated` (webhook)

Fired when a movement changes state: `Posted` when it settles on the ledger and its amount becomes available, or `Archived` when it is voided before posting and counts toward no balance. Read **status** rather than assuming which occurred.

The included payload mirrors a row from `GET /api/v1/counterparties/{counterpartyId}/transactions` exactly, so you can act on the event without re-reading the list.

On a `Deposit`, **originatorName** and **description** are the originating bank's own — who paid, and what they called the payment. Both are null when the rail carried neither, and **originatorName** is null on every movement that is not a deposit.

These two topics describe **ledger movements**, while `CounterpartyPayout*`, `CounterpartyTransfer*` and `CounterpartyIncomingPayment` describe the **operations** that cause them. They overlap on purpose: subscribe to whichever view suits you, and expect both events for one movement if you subscribe to both. A transfer between two of your counterparties fires one event per side, each with the **direction** that side experienced.

## Payload

- object
  - `id` string, uuid, required: Unique identifier for the object.
  - `type` 'WebhookEvent', required
  - `attributes` object, required
    - `id` string, uuid, required: The webhook event ID
    - `topic` string, required: The webhook topic/event type
    - `clientId` string, uuid, required: The client ID associated with this webhook event
    - `userId` string, uuid: The user ID associated with this webhook event (if applicable)
    - `walletId` string, uuid: The wallet ID associated with this webhook event (if applicable)
    - `updatedAt` string, date-time, required
    - `createdAt` string, date-time, required
  - `relationships` object, required
    - `event` object
      - `data` object, required: The related event resource (PaymentIntent, Payment, Refund, Capture, or ApplicationEvent)
        - `id` string, uuid, required
        - `type` string, required
  - `included` WebhookCounterpartyTransaction[], required
    - `id` string, uuid, required
    - `type` 'CounterpartyTransactionCreated' | 'CounterpartyTransactionUpdated', required
    - `attributes` object, required
      - `transactionId` string, required: The movement id, identical to the `id` the counterparty transactions API returns for the same movement
      - `counterpartyId` string, uuid, required: The counterparty whose balance moved
      - `merchantId` string, uuid, required: The merchant that owns the counterparty
      - `amount` integer, required: The amount moved, in the smallest currency unit (e.g. cents for USD). Always positive; **direction** carries the sign.
      - `currency` string, required: ISO 4217 currency code of the movement
      - `direction` 'Credit' | 'Debit', required: Relative to the counterparty: `Credit` increased its balance, `Debit` reduced it.
      - `type` 'Deposit' | 'Payout' | 'Transfer' | 'Adjustment' | 'Other', required: What moved the money. `Other` means the movement could not be classified — it is still real money on the balance, so read **description** for what it was.
      - `status` 'Pending' | 'Posted' | 'Archived', required: `Pending` counts toward the pending balance, `Posted` toward the available balance, and `Archived` was voided before posting and counts toward neither.
      - `description` string, nullable, required: Description recorded on the movement. For a deposit this is the description the originating bank stamped on the payment, which on ACH is the company entry description and is often a reference code rather than prose.
      - `originatorName` string, nullable, required: Who sent the money, as the originating bank named them. Only a deposit carries one; every other movement is null, as is a deposit whose rail carried no originator name.
      - `effectiveAt` string, date-time, required: When the movement takes effect on the ledger. The counterparty transactions list is ordered by this field.
      - `postedAt` string, date-time, nullable, required: When the movement posted. Null while the movement is still `Pending`.
      - `createdAt` string, date-time, required: When the movement was recorded
      - `updatedAt` string, date-time, required: When the movement was last changed
      - `reference` string, nullable
      - `email` string, email, nullable
      - `fullName` string, nullable
      - `phoneNumber` string, nullable
      - `error` string, nullable
      - `walletId` string, uuid, nullable
      - `billingAddress` object, nullable

## Acknowledgement `200`

Return a 200 status to indicate that the data was received successfully

---

[API](https://skmtc.dev/byaccrue/apis/accrue-merchant-api.md) - [All operations](https://skmtc.dev/byaccrue/apis/accrue-merchant-api/llms.txt) - [OpenAPI document](https://skmtc.dev/byaccrue/apis/accrue-merchant-api/revisions/3e2d97ef2e6e?raw)
