Skip to content

Testing payments in the sandbox

How to run a test payment end-to-end in the sandbox environment without a real card or real money. You play both sides of the tap:

  • a virtual Visa card on an Android phone, and
  • the adunopay terminal app (in sandbox mode) on a second device.

Tap the phone against the terminal and a sandbox authorisation flows through the stack — same path as a live tap-to-pay payment, but against test rails.

What you need

# Side What Runs on
1 Card Visa Mobile CDET — a virtual contactless Visa card An Android phone with NFC
2 Terminal adunopay terminal app in sandbox mode An Android SoftPOS device

Both devices need NFC. Two separate phones — one is the card, one is the terminal.

1. The test card — Visa Mobile CDET

Visa Mobile CDET icon

Visa Mobile CDET turns an Android phone into a virtual Visa card over NFC, so you can present a "card" to a contactless terminal without any physical plastic. It's Visa's own test tool, intended for sandbox / certification testing — not real funds.

:material-google-play: Get it on Google Play

Android only

CDET emulates the card via Android NFC (HCE). There is no iOS equivalent — the card side of the test must be an Android phone.

2. The terminal — adunopay sandbox app

Install the adunopay terminal app on a second Android device and point it at the sandbox environment. This is the same app a merchant runs in production (MPOS / SoftPOS), just configured against test rails.

To confirm

  • Where the sandbox build / sandbox config of the terminal app comes from (separate APK, build flavour, or an in-app environment switch).
  • Which sandbox credentials / merchant to log in with, and where they live (they belong in 1Password, not here).

3. Run the payment

  1. Open adunopay on the terminal device and start a sale for a test amount.
  2. Open Visa Mobile CDET on the card phone and select a test card.
  3. Tap the card phone to the terminal device.
  4. The terminal shows an approval; check the transaction lands in the sandbox reporting / backend.
sequenceDiagram
    participant C as Visa CDET<br/>(card phone)
    participant T as adunopay app<br/>(terminal phone)
    participant B as adunopay sandbox<br/>backend
    T->>T: Start sale (test amount)
    C-->>T: Tap (NFC / contactless)
    T->>B: Authorisation request (sandbox)
    B-->>T: Approved
    T-->>C: Receipt / approval

Sandbox only — no real money

Both the CDET card and the sandbox terminal config are test-only. Never run CDET against a production terminal, and never log into the production environment from the terminal app while testing.