Self/Series

The fastest way to add secure unattended card payments to your machines

For over 20 years, NMI has enabled secure self-service card acceptance across industries like ticketing, parking, vending, and kiosks. By adding unattended card payments, operators boost revenue versus cash-only machines and reduce costs when going card-only. NMI delivers simple, reliable, and EMV contactless-ready unattended payment solutions backed by processor certifications.

Developers can integrate with a wide range of payment devices using the NMI Payment Device SDK for Windows and Linux, which abstracts terminal complexity so you can focus on building great software. For Windows, NMI also provides a downloadable payment device emulatorβ€”complete with sample client code, gateway/API documentation, and server binariesβ€”allowing you to prototype and test integrations without physical hardware.

πŸ› οΈ

Download the SDK now


1.πŸ“Prerequisites

Before you begin, make sure you have:

Payment Gateway Account

  • Log in β†’ go to Settings β†’ Security Keys
  • Generate an API Key (must have β€œAPI” source permissions).
  • Save it securely.

Payment Device SDK Package (.zip)

  • Extract to C:\Payment Device SDK (or another directory).
  • SDK includes:
    • ChipDNA Server (controls PIN pads + gateway connection)
    • Sample Clients (CLI & GUI)
    • API documentation

Operating Environment

  • Windows 10 or 11 with .NET Framework 4.7.2+
  • A supported PIN pad (see Appendix tables).
  • Test chip card (or your own card β€” safe in sandbox).

2.πŸ–₯️Install & Configure the Server

  1. Go to:
    C:\Payment Device SDK\ChipDNA Server

  2. Open chipdna.config.xml in a text editor and update:

    • ApplicationIdentifier β†’ a unique UPPERCASE app name (e.g. MYAPP)
    • Device Id β†’ the 10-digit PIN pad ID (see device screen or Appendix examples)
    • Port β†’ correct COM port (default COM1)
    • (Optional) add FileStore, SSL CertificateHash, or WebProxy settings if needed
  3. Save the config file.


3.▢️Run the Server

Choose one of two modes:

Console (dev/debug)

  • Run ChipDNAServer.exe directly.

Windows Service (recommended for production)

  1. Edit service.install.bat β†’ confirm path to ChipDNAServer.exe
  2. Run service.install.bat
  3. Set service startup mode to Automatic in Windows Services

4.πŸ“±Configure & Run a Client

  1. Go to:
    C:\Payment Device SDK\ChipDNA Client CLI

  2. Open client.config.xml β†’ set:

    • Terminal ID (from gateway registration)
    • Update server IP/port if not default (127.0.0.1:1869)
  3. Run client:

    • Execute ChipDNAClient.exe
    • Choose P = Start Transaction
  4. Enter details:

    • Amount (e.g. 123 = $1.23)
    • Transaction type (default = Sale)
    • Unique reference (or accept auto-generated)
  5. On the PIN pad:

    • Insert/test card and follow prompts
    • Enter PIN
  6. View result in CLI:

    • Approved/Declined + receipt data

5.πŸ’³Confirm or Void Transactions

  • Confirm Transaction β†’ finalize approved transactions (settles funds)
  • Void Transaction β†’ cancel before settlement (if declined, signature fails, or goods not delivered)
πŸ“˜

⚠️ Important: Always call ConfirmTransaction() after authorization, otherwise the merchant will not receive funds.


6.πŸš€Move from Sandbox β†’ Production

  1. Update API Key from production account.
  2. Edit chipdna.config.xml to point to live endpoints:
<Tms>
  <Servers>
    <Server use="tms">
      <Url>https://tms.cardeasexml.com</Url>
      <Timeout>45000</Timeout>
    </Server>
    <Server use="registration">
      <Url>https://live.cardeasexml.com/gw.cex</Url>
      <Timeout>45000</Timeout>
    </Server>
  </Servers>
</Tms>

βœ… You’re now ready to integrate the Payment Device SDK for Windows & Linux and Self series device into your app.

πŸ› οΈ

Download the SDK now

Navigate through the pages in the developer portal for more details, including visual aids, flow diagrams, and code samples.


What’s Next