Getnet DocsGetnet Docs

HAL Integration Setup

This guide covers the three things your Manufacturer Service App needs before the Middleware App can bind to it. You need the correct package name, the required interfaces, and a service declaration that matches the binding Intent.

Before you begin

Get libhalservice.aar from Getnet. It contains the AIDL interfaces you implement — see the service interfaces reference for the full list before you start.

Step 1: Name your service package

The Middleware App only binds to a service named com.pagonxt.hal.platform.service. Use this exact name for your Manufacturer Service App.

Step 2: Implement the required interfaces

libhalservice.aar defines one interface per hardware area. Implement the ones your device supports:

InterfaceCovers
IMainServiceThe entry point. Exposes every other interface below.
ICardServiceChip, magnetic stripe, and NFC card reads.
IMifareServiceMifare card reads and sector/block operations.
IPrinterServiceReceipt printing.
IBeeperServiceAudible feedback.
ILedServiceStatus LEDs.
ICameraServiceDevice camera.
IStatServiceUsage statistics, per app and device-wide.
IInfoServiceDevice identification (serial number, IMEI, model).

libhalservice.aar also declares an IInitService import, alongside the interfaces above. Getnet’s manufacturer kit does not document its methods yet — treat it as reserved until Getnet publishes its contract.

See the service interfaces reference for every method signature, including the maintenance and encryption interfaces. It also documents the EMV interface used by the EMV state machine.

Step 3: Match the binding Intent

The Middleware App binds to your service with this Intent:

intent.action = "com.pagonxt.hal.platform.service"
intent.setPackage("com.pagonxt.hal.platform")

Declare your service’s intent filter to match this action and package so the bind succeeds. Once bound, the Middleware App gets your IMainService implementation as:

mainService = com.pagonxt.hal.platform.service.IMainService.Stub.asInterface(binder)

Every call your service receives afterward — mainService.getCard(), mainService.getPrinter(), and so on — goes through this same connection.

Verify the integration

Confirm your service is bindable and every implemented interface responds correctly before moving to the Devkit.

CheckWhat to expect
Package nameYour service’s manifest declares com.pagonxt.hal.platform.service.
BindThe Middleware App’s bind succeeds and returns a valid IMainService stub.
Interface coverageEvery interface your device supports (see Step 2) returns a working implementation, not null.

Next steps