EdfaPay Logo

Remote Access

Enable external POS systems to trigger payment transactions on the SDK via local network communication.

Overview

EdfaPayPlugin.RemoteChannel enables external systems (e.g., a POS desktop) to send commands to the SDK over a local TCP socket. The SDK listens on a configurable port and responds with JSON.

LocalNetwork

Accepts commands over a local TCP socket. The SDK listens on a configurable port.

Interface

Commands and responses are JSON-formatted strings over the socket.

Use Cases

Remote Access is suitable for a variety of integration scenarios where payment needs to be triggered from an external system.

Hybrid POS Integration

External POS triggers payments on Android device over LAN

Kiosk Mode

Unattended kiosk where remote system controls payment flow

Backend Integration

Server sends commands directly to the payment device

Multi-Device Setup

Coordinate multiple devices from a central hub

Setup

Open a TCP listener on the device that accepts payment commands from external POS systems on the same network.

Loading...

API Reference

The RemoteChannel API is accessed via EdfaPayPlugin.RemoteChannel.

MemberType/ParametersDescription
RemoteChannel.LocalNetwork(port, timeout)port: Int, timeout: Long (ms)Creates a local TCP channel on the given port with a read timeout
channel.open(context)Context (Kotlin/Java)Starts listening on the configured port. Returns the channel instance.
channel.close()UnitStops the TCP listener and closes the socket.

Remote Commands

The following JSON command formats are accepted on the socket:

Commandaction ValueRequired FieldsDescription
Purchasepurchaseamount, orderId?Trigger a purchase transaction
Reverse LastreverseLastTransactionnoneReverse the last transaction processed

Purchase Command

Loading...

Protocol

Communication between the external system and the SDK follows a simple JSON request/response pattern over TCP.

Transport

Raw TCP socket (not HTTP). Connect to device IP on the configured port.

Format

UTF-8 encoded JSON strings. Line-delimited (newline terminated).

Flow

External system sends command -> SDK processes payment -> SDK sends response back.

Response

JSON object with success, transactionId, rrn, amount, status fields.

Network Security

The RemoteChannel TCP socket is unencrypted. Only use on isolated, trusted local networks. Never expose the port to the internet.

Security Considerations

The RemoteChannel is designed for trusted local network use only. Follow these guidelines to keep your integration secure.

Isolated Network Only

Use RemoteChannel exclusively on private, isolated local networks — never on public internet or untrusted Wi-Fi.

No TLS Encryption

The TCP socket is unencrypted. Sensitive command data is sent in plaintext. Ensure the network is physically secured.

Firewall Rules

Use firewall rules to restrict socket access to known IP addresses or MAC addresses of trusted POS terminals.

Port Selection

Choose a non-standard port above 1024. Avoid well-known ports that may be scanned or blocked.

Close When Idle

Call channel.close() when payment is not expected. Don't leave the socket open indefinitely.

PCI DSS Reminder

Exposing RemoteChannel on a network that connects to the internet may violate PCI DSS requirements. Always consult your compliance team before deploying.