## Integrated Pre-Authorisation — Headless Implementation

## Overview

The Headless adapter enables pre-authorisation without displaying an in-progress transaction UI on the terminal.

## ITerminalAdapterHeadless

### Event-Based Method


```c#
bool OpenPreAuth(
  long preAuthLimit,
  string? merchantID = null,
  string? terminalID = null,
  string? transactionId = null
)
```

### Task-Based Method


```c#
Task<ITransactionResult?> OpenPreAuthAsync(
  long preAuthLimit,
  string? merchantID = null,
  string? terminalID = null,
  string? transactionId = null,
  Action<IReceipt>? receiptReturned = null,
  Action<string>? messageReceived = null,
  Action<IQuestion>? questionAsked = null
)
```

### Callbacks

- receiptReturned: Receives transaction receipts
- messageReceived: Displays terminal messages
- questionAsked: Handles terminal prompts/questions