EdfaPay Logo

Frequently Asked Questions

Comprehensive answers for integration developers building with our SDK and merchants using the payment interface.

1

Integration Developer FAQ

Setup & Installation

  • Android Version: Minimum API 23 (Android 6.0), Target API 36.
  • Hardware: NFC-capable device with a hardware-backed NFC controller.
  • Kotlin: 1.9.22 (required for full compatibility).
  • Connectivity: Internet, Network State, and Location permissions are mandatory.

Yes, you can use any package name for your application. However, please note that EdfaPay may apply specific restrictions based on business rules and your merchant agreement.

The SDK requires NFC, Location (Fine & Coarse), Internet, and Network State access. Add these to your AndroidManifest.xml:

<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />

SDK Initialization

Token Login (Recommended) allows for background initialization without showing a UI, using a pre-obtained auth token.Credential Login presents a built-in login screen for email/password and handles the OTP verification flow automatically.

Yes. The SDK supports multiple sessions. You can retrieve a list of all stored terminal sessions using EdfaPayPlugin.getSessionList() and switch between them or logout specific sessions independently.

TRSM (Terminal Reference Security Module) is an EdfaPay server-handled terminal ID mapped with a TMS (Terminal Management System) terminal ID if one exists. It serves as a secure link between your physical device and the logical terminal configuration, ensuring that the correct keys, limits, and features are provisioned specifically for your hardware.

Transaction Processing

  • DETAIL: Full transaction summary with scheme-specific animations (Default).
  • STATUS: Brief status screen requiring user confirmation to dismiss.
  • IMMEDIATE: Minimalist UI that closes instantly after a successful server response.

Reverse should be triggered for technical failures (crash/timeout) to undo a transaction immediately.Void is used for business cancellations (customer request) for transactions that have been approved but not yet settled in the daily batch.

The CVM (Cardholder Verification Method) Limit is the transaction amount above which a PIN is required. This limit is retrieved directly from the terminal configuration on the EdfaPay server or the TMS (Terminal Management System).

NFC & Security

To comply with PCI-DSS CPOC and regional regulations, we must verify the geographic location where a transaction occurs to prevent terminal relocation fraud.

Yes. The SDK performs periodic safety checks (SafetyNet or Play Integrity) which require an active connection. If offline too long, transactions will be blocked until the device re-attests online.

We do not store card data anywhere on the device or the server, in strict accordance with PCI policies. The card data is encrypted immediately upon being read and is transmitted securely to the switch for further processing using a specialized encryption mechanism that adheres to the highest PCI security standards.

You can customize various aspects of the transaction UI and SDK behavior through the centralized configuration system. For detailed instructions, please follow theConfiguration Guide.

If cardConnectFail is triggered, it usually means the card was removed too quickly. Guide the user to hold the card flat against the device for at least 2 seconds and call the scan method again.

2

End User FAQ

Getting Started

Go to Settings > Connected devices > NFC and toggle it ON.

Customers should tap their card on the back of the device, usually near the top half (around the camera) where the NFC antenna is located. Keep the card still for 2 seconds.

Yes. The app uses a Secure PIN Entry system. The keypad is encrypted, and for added security, the numbers may be shuffled each time. Your PIN is never stored on the phone.

Making Payments

You can accept Visa, Mastercard, American Express, mada, Discover, and mobile wallets likeApple Pay, Google Pay, and Samsung Pay.

A successful transaction will show a Green Success screen with the message Approvedand a unique Authorization Code. You will also hear a success chime.

After approval, you can tap View Receipt to show a QR code that the customer can scan to download their receipt, or share it via their preferred messaging app.

Common Issues & Troubleshooting

Go to your phone Settings > Apps > EdfaPay Merchant > Permissionsand ensure Location is set to "Allow while using the app".

Common reasons include insufficient funds, an expired card, an incorrect PIN, or the card being blocked by the customer's bank. Ask the customer to contact their bank or try a different card.

Reconciliation settles your terminal's transactions for the day. You should do this at the end of your business dayto ensure your funds are processed for payout.

Technical Support

Can't find what you're looking for? Our documentation also coversadvanced troubleshootingand detailed error codes.