POS Payment Scenario
Card-present payment flow for a merchant counter: customer taps, terminal authorizes, Epara captures, ledger posts, and operations reconciles the batch.
Can the counter customer tap without signup?
Terminal operations prove reader readiness, contactless acceptance, receipt creation, batch close, and payout contribution.
pm_action_console_demo_market_2026Counter Reader 01
Tap card or NFC wallet, no signup required
The customer does not create an Epara account at the counter. The reader accepts a contactless card or phone wallet token, then Epara issues a receipt that support and backoffice can verify later.
What happens when the customer taps?
Cashier sees the exact amount, reader status, contactless wallet tap, authorization, receipt, and batch proof for the same POS payment.
pos_contactless_acceptance_2026_001Contactless acceptance controls
| Control ID | Actor | Business question | Action | Evidence | Money impact | Status |
|---|---|---|---|---|---|---|
| contactless_customer_tap | Counter customer | Can I pay without creating an Epara account? | Tap contactless card or phone wallet at the counter | nfc_wallet_tap_counter_001 | Charged only after terminal authorization succeeds | guest_ready |
| contactless_cashier_capture | Merchant cashier | Did the reader capture the right amount? | Confirm 42,000 IQD and issue POS receipt | AUTH-POS-7421 | Gross capture 42,000 IQD | captured |
| contactless_customer_receipt | Customer receipt | Can the payer prove the counter payment later? | Open immutable POS receipt without account signup | EP-RCPT-2026-00042 | Receipt proves captured card-present payment | receipt issued |
| contactless_terminal_ops | Epara terminal ops | Was the device allowed to accept live money? | Check reader heartbeat, readiness check, and batch close | tmready_card_present_2026_001 | Readiness gates acceptance but does not post ledger | ops_verified |
| contactless_finance_batch | Merchant finance | Did POS money enter statement and payout? | Match POS settlement line and payout contribution | batch_counter_2026_06_15 | 39,060 IQD | payout created |
Provisioning and readiness
| Step | Owner | Evidence | Rule | Status |
|---|---|---|---|---|
| Create POS location | Merchant owner | tmloc_demo_baghdad_counter_001 | Location can be created without posting ledger movement | configured |
| Register reader | Terminal operations | tmr_demo_counter_01 | Reader belongs to one merchant location and environment | registered |
| Mark reader online | Cashier device | online | Heartbeat proves the counter can accept card-present payment | online |
| Run readiness check | Operations | tmready_card_present_2026_001 | Readiness gates live acceptance but does not move money | passed |
Contactless acceptance
| Method | Customer mode | Capability | Evidence | Status |
|---|---|---|---|---|
| Contactless card | Guest payer | card_present | route_live_terminal_iqd | ready |
| NFC phone wallet token | Guest payer | network_token_contactless | NFC wallet token | contactless ready |
| Receipt lookup | No Epara signup | receipt_by_payment_id | EP-RCPT-2026-00042 | ready |
Cashier flow
| Cashier step | Cashier view | Customer view | Operator evidence | Status |
|---|---|---|---|---|
| Enter amount | 42,000 IQD | Tap card or phone wallet | tmr_demo_counter_01 | cashier ready |
| Customer taps | contactless | Network token **** 4242 | AUTH-POS-7421 | |
| Offer receipt | EP-RCPT-2026-00042 | /receipt/rcpt_pos_scenario_001 | mov_pos_capture_001 | receipt issued |
| If correction needed | pos_refreq_counter_2026_001 | Refund waits for approval when policy requires it | perm_pos_refund_counter_2026 | approval ready |
Batch close and payout
| Batch step | Owner | Evidence | Money impact | Status |
|---|---|---|---|---|
| Batch opened | Terminal operations | batch_counter_2026_06_15 | No ledger movement by itself | open |
| Payment included | Provider operations | pay_pos_scenario_001 | 42,000 IQD | captured |
| Statement line matched | Reconciliation | set_pos_2026_06_15_iqd | 41,160 IQD | matched |
| Payout contribution | Finance | po_school_2026_001 | 39,060 IQD | payout created |
POS refund controls
A cashier can request a card-present correction, but money reversal still follows permission and provider evidence. Original capture: 42,000 IQD.
| Control | Owner | Evidence | Amount | Status |
|---|---|---|---|---|
| Refundable POS amount | Support / cashier | pay_pos_scenario_001 | 42,000 IQD | refund eligible |
| Partial refund request | Cashier maker | pos_refreq_counter_2026_001 | 12,000 IQD | approval ready |
| Permission check | Privileged checker | perm_pos_refund_counter_2026 | - | awaiting checker |
| Same card-present route | Local Card Switch Terminal | route_live_terminal_iqd | 12,000 IQD | queued |
| Item | Amount | Status |
|---|---|---|
| Gross card-present capture | 42,000 IQD | captured |
| Platform fee | 840 IQD | matched |
| Risk reserve hold | 2,100 IQD | matched |
| Available contribution | 39,060 IQD | payout created |
| Control | Evidence | Owner | Status |
|---|---|---|---|
| Reader heartbeat | tmr_demo_counter_01 | Terminal operations | online |
| Card-present readiness | tmready_card_present_2026_001 | Operations | passed |
| Provider authorization | AUTH-POS-7421 | Local Card Switch Terminal | |
| Ledger movement | mov_pos_capture_001 | Ledger control | matched |
| Terminal batch settlement | batch_counter_2026_06_15 | Reconciliation | matched |