Tap2ID - Verifone

Edited

Core SDK Workflow

1. Initialize → Connect to Terminal

_transactionManager.Initialize(DeviceAddress, ConnectionType.TCPIP)
  • Establishes connection between POS and P630 terminal via TCP/IP

  • Must be called first before any other operations

  • Creates the communication channel

2. Login → Authenticate Operator

_transactionManager.Login(OperatorId, Password)
  • Logs in the cashier/operator to the terminal

  • In NULL mode, password is optional

  • Required before starting payment sessions

3. StartSession → Begin Transaction Context

_transactionManager.StartSession(InvoiceId)
  • Creates a payment session with unique invoice ID

  • Groups all operations (card capture, payment) under one session

  • Must be open before capturing cards or processing payments

4. RequestCardData2 → Early Card Capture ⭐ (Key Feature)

_transactionManager.RequestCardData2(
    amount: 10000,  // Maximum expected amount
    tokenRequest: true  // Request ANALYTICS + REUSE tokens
)

Purpose: Capture card BEFORE knowing final price

  • Customer taps card once

  • Returns card data (brand, last4, BIN, expiry)

  • Returns ANALYTICS token → Used to search Diller for member

  • Returns REUSE token → Used for future transactions

  • Stores card data in terminal memory for later payment

5. StartPayment → Process Payment

_transactionManager.StartPayment(
    amount: 9000,  // Final discounted amount
    currency: "SEK",
    paymentType: PaymentType.SALE
)

With Early Capture (our implementation):

  • Uses card data from step 4 (no re-tap needed)

  • Amount can differ from capture amount (discount applied)

  • Terminal processes payment with stored card

6. EndSession → Close Transaction Context

_transactionManager.EndSession()
  • Closes the payment session

  • Clears captured card data

  • Finalizes the transaction

7. Logout → Disconnect Operator

_transactionManager.Logout()
  • Logs out the operator

  • Terminal returns to idle state

1. Initialize → Connect to terminal at 192.168.68.123
2. Login → Operator "TEST" logs in
3. StartSession → Session "INV-123" opens
4. RequestCardData2 → Customer taps card (max $100)
   ↓ Returns: { brand: "Visa", last4: "1234", analyticsToken: "ABC..." }
5. [POS searches Diller with token → finds discount]
6. StartPayment → Charge $90 (uses captured card, no re-tap)
   ↓ Returns: { transactionId: "...", authCode: "057652" }
7. EndSession → Close session
8. Logout → Terminal idle

Critical SDK Configuration

Terminal must have:

Terminal.CardAcquisitionBehaviour = 1

  • 0 = Card capture works, but follow-on payment NOT allowed

  • 1 = Card capture works, AND payment can use captured card ✅

Was this article helpful?

Sorry about that! Care to tell us more?

Thanks for the feedback!

There was an issue submitting your feedback
Please check your connection and try again.