# FAQ (/global/en/docs/Terminal/References/FAQ)

## Frequently Asked Questions

### ❓ Why can't the target device be discovered?

Answer:

Please check the following:

1. Physical Connection\
   Ensure cables are intact and properly connected.

2. Network
   Make sure the EPOS and the terminal are in the same subnet.\
   Verify that no firewall is blocking required ports.

3. Bluetooth Status
   Ensure Bluetooth is enabled.\
   Confirm the terminal is in discoverable mode.

4. Permissions\
   Ensure the application has all required runtime permissions.

### ❓ Why does serial communication fail?

Answer:

1. Device Node Permission\
   Ensure the application has read/write access to the target serial device node (e.g., /dev/ttyS\*).

2. Parameter Mismatch\
   Verify baud rate, data bits, stop bits, and parity match the terminal configuration.

3. Port Occupied\
   Check whether the serial port is being used by another process (e.g., terminal emulator).

### ❓ How to troubleshoot connection failures?

Answer:

1. Connectivity Check\
   Use system tools (e.g., adb shell ping, Bluetooth settings) to verify physical connectivity.

2. Log Analysis\
   Enable SDK debug logs to identify detailed error codes.

3. Terminal Verification\
   Use our testing tools (e.g., Demo APK) to verify terminal functionality.

### ❓ How to update configuration after replacing a device?

Answer:

When replacing a payment terminal, update the configuration according to how the target is specified:

- Address or port: update the IP address and network port, COM port, or Bluetooth MAC address in use.
- SN or service ID: ensure the SDK has discovered the new terminal or service before updating the target.

Update the identity or connection parameters saved by the application as well; if SDK remember options are obsolete, clear only the relevant scope.

Reference: [Terminal Configuration and Selection](doc-id:358d4159)

### ❓ Why is there no response after initiating a transaction?

Answer:

1. Terminal Reachability\
   Check whether the terminal is reachable through the selected communication method.

2. Target Configuration\
   Verify the selected terminal and connection parameters in [Terminal Configuration and Selection](doc-id:358d4159).

3. Request Verification\
   Verify via SDK logs whether the request was actually sent.

### ❓ Why do I get "Invalid Parameter" or "Invalid Transaction"?

Answer:

1. Amount Format\
   Check the amount format required by the relevant API. The [payment example](doc-id:d047ba5c) uses a decimal string such as `"99.99"`.

2. Order Number\
   Ensure the order number is unique.

3. Transaction Type\
   Verify that the transaction type (e.g., REFUND) is supported by the terminal.

### ❓ How to distinguish between network errors and business errors?

Answer:

1. Network Errors\
   Typically trigger SDK callback onError().\
   Indicate the request was not successfully delivered.

2. Business Errors\
   Returned within the response object (e.g., PaymentResult).\
   Must be evaluated using response codes.

> **WARN**
>
> A successful callback does NOT guarantee a successful transaction.
> Always check the response code in the result object.