Skip to main content

Development hardware

All Handpoint integrations require a physical device — there is no simulated or virtual payment terminal. We recommend the development team keeps the device with them after live deployment for ongoing troubleshooting and future feature development.


Android SDK — PAX devices (REST API or native on-terminal)​

For card-present integrations using a PAX terminal (via REST API or Android SDK native), you can use either a production PAX device or a PAX debug device.

PAX production firmware rejects unsigned APKs. A debug device accepts unsigned builds and connects to the Handpoint staging environment for testing.

  1. Request a PAX debug device from your referring partner. Your referring partner is the entity that onboarded you to Handpoint — contact them to arrange hardware.
  2. Build your APK using RC candidates provided by the Handpoint Integration Support team. Do not build against the production SDK release; use the release candidate builds supplied by your integration contact.
  3. Install via ADB: adb install app-debug.apk
  4. The debug device connects to the Handpoint staging environment automatically.
PAX debug vs production devices

See the full guide on debug terminal injection and behaviour differences: Manual Injection — PAX Debug Terminals

caution

Do not install unsigned APKs on production PAX terminals — this will fail and may trigger security alerts on the device.

Production PAX device​

A production PAX device can also be used for development. It processes real transactions against the configured acquirer. Use test card numbers and low amounts during development, and ensure the merchant account is set up for testing with your acquirer.


Android SDK / iOS SDK — HiLite (DATECS) devices​

HiLite devices connect via Bluetooth. Request a HiLite device from your referring partner.

HiLite vs PAX capabilities

HiLite supports a subset of PAX terminal operations. See HiLite vs PAX — Capability Comparison for the full matrix of what's available per SDK path and how Back Office operations can fill the gaps.

HiLite devices connect via Bluetooth to the native Android or iOS SDK — they do not use the REST API. There is no staging path for HiLite; testing is done against a TEST/DEMO merchant configured in production, which uses a test acquirer that mocks real acquirer responses.

When the merchant goes live, new unique credentials are issued for the live merchant account. The HiLite device continues to connect to the same production environment — the merchant type changes from DEMO to live.

iOS: Requires a provisioning profile that includes the com.datecs.pinpad external accessory protocol.


Cordova​

Cordova wraps the native Android SDK (PAX + HiLite) and iOS SDK (HiLite). Hardware requirements are the same as the respective native platforms above.


DEMO merchants and the mock acquirer​

A DEMO merchant is a Handpoint merchant account provisioned against ViscusDummy — a mock payment server that simulates acquirer responses without moving funds. DEMO merchants are available in both the staging (cloud.handpoint.io) and production (cloud.handpoint.com) environments.

DEMO merchant
Card requirementsAny physical card — chip, contactless, or magstripe. Interac cards are not supported (ViscusDummy has no Interac routing)
Test card numbersNone needed — response is determined by the amount alone
Funds movementNone — approvals are simulated and do not settle
EnvironmentBoth staging and production support DEMO merchants
AcquirerViscusDummy (not a real acquirer)

Contact your Handpoint Integration Engineer to provision a DEMO merchant for your development account.

Interac requires a separate test merchant

ViscusDummy does not support Interac. Interac testing uses TNSDummy, a separately provisioned mock server — see the Interac test card numbers section below.


Testing with trigger amounts​

When testing against the TEST/DEMO merchant (HiLite devices) or a PAX device on the staging environment, use the following amounts (in minor units — cents/pence) to simulate specific gateway responses. These are powered by Viscus-Dummy, the Handpoint mock server used in staging.

All other amounts process as approved transactions. ViscusDummy does not validate card numbers — any physical card or test card that can present chip, contactless, or magstripe to the terminal will be approved. The outcome is determined by the amount only.

General transaction behaviour​

AmountBehaviourfinStatusstatusMessage
3779Issuer response code 01 — Refer to issuerDECLINED"Refer to card issuer"
3784Issuer response code 05 — Not authorizedDECLINED"Transaction failed"
3793Issuer response code 04 — Pick up cardDECLINED"Pick-up card"
3757Partially approved — totalAmount < requestedAmountPARTIAL_APPROVAL"Approved or completed successfully"
3768Request timeoutFAILED"Error connecting to authorization provider"
3741Processing error / unauthorizedFAILED"Processing error"

Tip Adjustment​

AmountBehaviour
3784Issuer response code 05 — Not authorized
3768Request timeout

SCA / Strong Customer Authentication​

These amounts simulate issuer SCA challenges and withdrawal-limit responses. The test case code column maps to specific Viscus-Dummy test scenarios.

SCA triggers do not necessarily decline the transaction

These amounts cause the mock issuer to return a challenge response code (61, 65, or 70) to the terminal. The terminal then either:

  • Presents a cardholder verification prompt (PIN, contactless limit prompt, etc.) and, if completed, reports back AUTHORISED to your integration.
  • Or declines if the SCA step cannot be completed.

Monitor the terminal screen during SCA tests — the interesting behaviour is what the device shows the cardholder, not just the final finStatus.

AmountTest caseResponse codeDescriptionSCA requiredactionCode
6165—61Exceeds withdrawal amount limitNo0065
155MCD_55_01_0165Exceeds withdrawal frequency limitYes0065
165MCD_65_01_0165Exceeds withdrawal frequency limitNo0065
1102T6_11_0265Exceeds withdrawal frequency limitNo0065
1104T6_11_0465Exceeds withdrawal frequency limitNo0065
1110T6_11_1065Exceeds withdrawal frequency limitNo0065
1112T6_11_1265Exceeds withdrawal frequency limitNo0065
1114T6_11_1465Exceeds withdrawal frequency limitNo0065
1115T6_11_1565Exceeds withdrawal frequency limitYes0065
1116T6_11_1665Exceeds withdrawal frequency limitYes0065
1117T6_11_1765Exceeds withdrawal frequency limitYes0065
1118T6_11_1865Exceeds withdrawal frequency limitYes0065
1119T6_11_1965Exceeds withdrawal frequency limitYes0065
1101T6_11_0170Cardholder to contact issuerYes0070
1103T6_11_0370Cardholder to contact issuerYes0070
1109T6_11_0970Cardholder to contact issuerYes0070
1111T6_11_1170Cardholder to contact issuerYes0070
EMV data for SCA test cases

Some SCA test cases include specific EMV data injected by the mock server into the response. These are for low-level EMV testing only — most SDK integrations do not need to inspect this data.

AmountTest caseemvData
1102T6_11_029F36020002910A5722F90461A4F0763141
1104T6_11_049F36020002910A960352251058DF033141
1110T6_11_109F36020002910A555EDC4A21F1F0723141
1112T6_11_129F36020002910A809B40BB8D6FCCFA3141
1114T6_11_149F36020002910A8D61FDF0BF292A3C3141
1115T6_11_159F36020002910A9895847308201C433730
1116T6_11_169F36020002910AA07A3E62227A64C93730
1117T6_11_179F36020002910A660923D5C65E19133730
1118T6_11_189F36020002910A8CEDCA1DF65591393730
1119T6_11_199F36020002910A3BD9FAC2CC9AB6B23730
1101T6_11_01910AF820D48D879DA1DA37308A023730
1103T6_11_03910ACE6DB89DB783C7DD37308A023730
1109T6_11_09910A0427E4CB8DB1DB4A37308A023730
1111T6_11_11910A0427E4CB8DB1DB4A37308A023730

Interac test card numbers​

Use these PANs when testing against a TNSDummy staging merchant configured for Interac debit processing. They are separate from the ViscusDummy trigger amounts — the two dummy servers are provisioned independently and are not interchangeable.

PANTypeExpected result
001202000071200Interac debitApproved
001202000071135Interac debitApproved

Constraints — read carefully before testing​

ConstraintValueReason
Required acquirerTNS + Interac (TNSDummy)ViscusDummy has no Interac support
Card interfaceEMV chip insert onlyInterac does not support contactless (NFC/tap), magnetic stripe, or MOTO/keyed-entry on these test PANs
Trigger amountsNone — TNSDummy always approvesThere are no decline-trigger amounts for Interac test cards
CurrencyCADInterac is a Canadian debit network

Provisioning​

A TNSDummy Interac staging merchant is separate from the default DEMO/ViscusDummy merchant. Contact Handpoint Integration Support to provision one. Provide:

  • Your acquirer account: TNS
  • Network: Interac debit
  • Environment: staging

AI agent usage note​

To test Interac with the Cloud REST API or Android/iOS SDK:

  1. Use a staging cloudApiKey and sharedSecret issued against a TNSDummy Interac merchant — not the standard ViscusDummy DEMO merchant.
  2. Set currency to "CAD".
  3. Present the test PAN via chip insert (EMV). Do not attempt tap or swipe — those entry modes will fail or fall back to a non-Interac path.
  4. Do not include a transactionReference on reversal, refund, or capture operations — only on the originating sale or pre-auth. See Transaction recovery for the correct field scoping.