---
title: "Transaction status changed"
method: POST
path: "core.transaction.status-changed"
tags: ["Transactions"]
---

# Transaction status changed

`POST core.transaction.status-changed` (webhook)

The transaction status has been changed.

## Headers

- `webhook-id` string, required
- `webhook-timestamp` integer, required
- `webhook-signature` string, required

## Payload

- TransactionWebhookEvent: The webhook event information.
  - `id` string, uuid, required: The id of the event.
  - `type` string, required: The type of event.
  - `createdAt` string, date-time, required: The date and time when the event was created.
  - `data` object, required: The event payload.
    - `transaction` Transaction, required
      - `id` string, uuid, required: The id of the transaction.
      - `origin` TransactionOriginEndpoint, required
        - `asset` string, required: The asset of the endpoint.
        - `amount` string, required: The amount of the endpoint.
        - `rate` string, required: The rate of the endpoint against its counter-part (origin to destination and vice-versa).
        - `node` union, required
          - object
            - `type` 'account', required: The type of the node.
            - `id` string, uuid, required: The account id.
            - `ownerId` string, uuid, required: The id of the user that owns the account.
          - TransactionNodeExternalAccountBank
            - `type` 'external-account', required: The type of the node.
            - `id` string, uuid, required: The external account id.
            - `ownerId` string, uuid, required: The id of the user that owns the external account.
            - `via` 'bank', required: The rail type through which the transaction is made.
            - `network` string, required: The network used for the transaction with the external account.
          - TransactionNodeExternalAccountCard
            - `type` 'external-account', required: The type of the node.
            - `id` string, uuid, required: The external account id.
            - `ownerId` string, uuid, required: The id of the user that owns the external account.
            - `via` 'card', required: The rail type through which the transaction is made.
            - `network` string, required: The network used for the transaction with the external account.
            - `confirmationUrl` string, uri: The URL to confirm the authorization using the external account (e.g., 3DS).
          - TransactionNodeExternalAccountApm
            - `type` 'external-account', required: The type of the node.
            - `id` string, uuid, required: The external account id.
            - `ownerId` string, uuid, required: The id of the user that owns the external account.
            - `via` 'apm', required: The rail type through which the transaction is made.
            - `confirmationUrl` string, uri: The URL to confirm the authorization using the external account (e.g., 3DS).
          - TransactionNodeExternalAccountCrypto
            - `type` 'external-account', required: The type of the node.
            - `id` string, uuid, required: The external account id.
            - `ownerId` string, uuid, required: The id of the user that owns the external account.
            - `via` 'crypto', required: The rail type through which the transaction is made.
            - `network` string, required: The network used for the transaction with the external account.
            - `execution` union
              - …
          - object
            - `type` 'apm', required: The type of the node.
            - `method` 'apple-pay' | 'google-pay' | 'paypal' | 'venmo', required: The alternative payment method to be used in the operation.
            - `confirmationUrl` string, uri: The URL to confirm the authorization using the APM (e.g., 3DS).
          - object
            - `type` 'bank-address', required: The type of the node.
            - `network` string, required: The network of the bank transfer.
          - object
            - `type` 'crypto-address', required: The type of the node.
            - `network` string, required
            - `address` string
            - `reference` string: The additional identifier (e.g., destination tag, memo, or message) for the crypto address.
            - `execution` union
              - …
      - `destination` TransactionDestinationEndpoint, required
        - `asset` string, required: The asset of the endpoint.
        - `amount` string, required: The amount of the endpoint.
        - `rate` string, required: The rate of the endpoint against its counter-part (origin to destination and vice-versa).
        - `node` union, required
          - object
            - `type` 'account', required: The type of the node.
            - `id` string, uuid, required: The account id.
            - `ownerId` string, uuid, required: The id of the user that owns the account.
          - TransactionNodeExternalAccountBank
            - `type` 'external-account', required: The type of the node.
            - `id` string, uuid, required: The external account id.
            - `ownerId` string, uuid, required: The id of the user that owns the external account.
            - `via` 'bank', required: The rail type through which the transaction is made.
            - `network` string, required: The network used for the transaction with the external account.
          - TransactionNodeExternalAccountCard
            - `type` 'external-account', required: The type of the node.
            - `id` string, uuid, required: The external account id.
            - `ownerId` string, uuid, required: The id of the user that owns the external account.
            - `via` 'card', required: The rail type through which the transaction is made.
            - `network` string, required: The network used for the transaction with the external account.
            - `confirmationUrl` string, uri: The URL to confirm the authorization using the external account (e.g., 3DS).
          - TransactionNodeExternalAccountApm
            - `type` 'external-account', required: The type of the node.
            - `id` string, uuid, required: The external account id.
            - `ownerId` string, uuid, required: The id of the user that owns the external account.
            - `via` 'apm', required: The rail type through which the transaction is made.
            - `confirmationUrl` string, uri: The URL to confirm the authorization using the external account (e.g., 3DS).
          - TransactionNodeExternalAccountCrypto
            - `type` 'external-account', required: The type of the node.
            - `id` string, uuid, required: The external account id.
            - `ownerId` string, uuid, required: The id of the user that owns the external account.
            - `via` 'crypto', required: The rail type through which the transaction is made.
            - `network` string, required: The network used for the transaction with the external account.
            - `execution` union
              - …
          - object
            - `type` 'apm', required: The type of the node.
            - `method` 'apple-pay' | 'google-pay' | 'paypal' | 'venmo', required: The alternative payment method to be used in the operation.
            - `confirmationUrl` string, uri: The URL to confirm the authorization using the APM (e.g., 3DS).
          - object
            - `type` 'bank-address', required: The type of the node.
            - `network` string, required: The network of the bank transfer.
          - object
            - `type` 'crypto-address', required: The type of the node.
            - `network` string, required
            - `address` string
            - `reference` string: The additional identifier (e.g., destination tag, memo, or message) for the crypto address.
            - `execution` union
              - …
      - `denomination` TransactionDenomination
        - `asset` string, required: The asset in which the transaction is denominated.
        - `amount` string, required: The amount of the transaction.
        - `rate` string, required: The rate against the specified target (origin or destination).
        - `target` 'origin' | 'destination', required: Whether this exact amount should be paid by the origin or received by the destination.
      - `fees` object[], required
        - `type` 'deposit' | 'exchange' | 'network' | 'withdrawal', required: The type of the fee.
        - `code` string, required: The code of the fee.
        - `asset` string, required: The asset in which the fee is denominated.
        - `amount` string, required: The amount of the fee.
        - `percentage` string: The percentage of the fee, if the amount was calculated from a percentage.
        - `beneficiary` 'uphold' | 'partner': The entity that receives the fee.
      - `status` 'processing' | 'on-hold' | 'completed' | 'failed', required: Status of the transaction.
      - `statusDetails` object: The details of the status of the transaction.
        - `reason` 'apm-account-holder-data-mismatch' | 'apm-authorization-failed' | 'apm-missing-account-holder-data' | 'apm-payment-method-declined' | 'bank-account-holder-name-mismatch' | 'beneficiary-country-restricted' | 'card-declined' | 'card-declined-by-bank' | 'card-expired' | 'card-permanently-declined-by-bank' | 'card-unauthorized' | 'card-unsupported' | 'card-withdrawals-unsupported' | 'insufficient-funds' | 'pending-requests-for-information' | 'provider-maximum-limit-exceeded' | 'screening-verification-failed' | 'travel-rule-verification-failed' | 'unspecified-error' | 'velocity': The reason why the transaction failed or is on hold.
      - `quotedAt` string, date-time, required: The time at which the quote was created.
      - `createdAt` string, date-time, required: The time at which the transaction was created.
      - `updatedAt` string, date-time, required: The last time at which the transaction was updated.
      - `completedAt` string, date-time: The date and time the transaction was completed.

## Acknowledgement `200`

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

---

[API](https://skmtc.dev/uphold/apis/core-api.md) - [All operations](https://skmtc.dev/uphold/apis/core-api/llms.txt) - [OpenAPI document](https://skmtc.dev/uphold/apis/core-api/revisions/6c663575c57a?raw)
