> For the complete documentation index, see [llms.txt](https://docs.hiveauth.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hiveauth.com/has-for-wallets-pksa/transactions/transaction-approval.md).

# Transaction approval

If the user approves the transaction request, the **PKSA** must check if the App requested it to broadcast the transaction to the blockchain.

If so, it must try to do it and inform the **HAS** upon success or failure.

If not, the **PKSA** must inform the **HAS** of the user's approval and return a signed transaction object.

In both cases, it will send the following message:

### sign\_ack

```js
{
    cmd: "sign_ack",
    uuid: string,
    data : object,
    broadcast: boolean,
    pok: string
}
```

{% tabs %}
{% tab title="Properties" %}

* **`uuid`**: the transaction request identifier
* **`data`**: the transactions id (`txid`) if `broadcast` is `true` or a signed transaction object (`signed_tx)` if `broadcast` is `false`.
* **`broadcast`**: `true` if the transaction was broadcasted by the PKSA, otherwise `false`
* **`pok`**: the `uuid` encrypted using the account private key and the HAS server public key (see [Proof of Key](/has-for-wallets-pksa/proof-of-key.md))
  {% endtab %}
  {% endtabs %}
