> ## Documentation Index
> Fetch the complete documentation index at: https://devzone.nayax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# updateExternalTransaction

> Record a transaction whose card was never read by the device.

The `updateExternalTransaction` method records an external transaction. In an external transaction, the device never reads the card, so it has no indication that a transaction took place. The card reading and other device modules aren't used.

Use this method to report the transaction freely, without a card read. If the device reads the card, use [`updatePinpadTransactionStatus`](/docs/integrate-pos-device/tweezercomm/device-methods/updatepinpadtransactionstatus) instead.

> [!NOTE]
>
> **Report every external transaction**
>
> Send this method for every external transaction, so Nayax has a record of it. Log the update in your integration's log file, so you can investigate it if needed.

## Request

> [!NOTE]
>
> **JSON-RPC 2.0**
>
> All methods in TweezerComm follow a JSON-RPC 2.0 structure. See [Get Started](/docs/integrate-pos-device/tweezercomm/tweezercomm-get-started.md) for more details on how to structure and send requests.

In the request, ensure to configure the following:

* Set the `method` field to `updateExternalTransaction`.
* Set the service to `engine` in the `params`.

```json theme={null}
{
    "jsonrpc": "2.0",
    "method": "updateExternalTransaction",
    "id": "123454352",
    "params": [
        "engine",
        {
            "vuid": "{{$guid}}",
            "amount": 5000,
            "currency": "840",
            "pan": "123456******7890",
            "cardExpirationMonth": "1",
            "cardExpirationYear": "111",
            "processorTerminalId": "12345",
            "paymentMethodId": "1",
            "entryMode": 1
        }
    ]
}
```

### Request parameters

The table below describes the parameters of the request:

| Name | Type | Description |
| - | - | - |
| `vuid` | string | Vendor (client) unique transaction identifier. Use a random value. It must be unique. |
| `amount` | integer | Amount of the transaction. |
| `currency` | string | Currency of the transaction, as an ISO 4217 numeric code. For example, `840` for USD. |
| `pan` | string | The external transaction ID. For example, `123456******7890`. |
| `cardExpirationMonth` | string | Mandatory. Always set to `1`. |
| `cardExpirationYear` | string | Mandatory. Always set to `111`. |
| `processorTerminalId` | string | Merchant ID for the processor terminal. |
| `paymentMethodId` | string | Payment method identifier. Always `1`. |
| `entryMode` | integer | Entry mode of the transaction. Set to `1` for now. See the note below. |

> [!NOTE]
>
> **Entry mode**
>
> For now, always send `entryMode` as `1`. Nayax is making a server-side change. Nayax plans a later software update that recognizes these transactions as external transactions.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.