# Card payments on the virtual device

- Date: 2026-09-18
- Type: New
- Surface: Developer portal and CLI
- What you need to do: Nothing.
- Address: https://developers.rivr.io/changelog/2026-09-18-virtual-device-card-payments

The virtual device used to say, honestly, that it had no card reader. Now it can get one: "Attach a simulated card reader" creates a simulated terminal and attaches it, and the card method runs the same screens as the app — place your card, the wait, then the receipt, the declined screen or the cancelled one. Nothing about the payment is faked: the device calls the same terminal-payments endpoint, and the outcome comes back through the real handlers about two seconds later, so the order completes, the webhook fires and the calls land in the logs like any other payment. Pick what the next card payment should give — Approved, Declined, Aborted or Timeout — beside the screen. It is one-shot: after the payment the reader is back on Approved. Needs the monolith release that carries the simulator to test; until then the portal says exactly that instead of showing you an error.

