Skip to main content

Testing In-person Payments

Overview

Stitch's test client simulates real acquirer responses so you can test your card-present integration against deterministic outcomes before going live. The cents portion of the transaction amount controls the simulated response. Use the amounts in the tables below to drive approvals, declines, PIN entry, slow approvals, and timeouts.

All examples use ZAR (R). The cents value drives the outcome; the rand portion is free for you to choose.

Test approvals

AmountResultNotes
R10.00ApprovedStandard approval. Use this as your default.
R10.08Approved (please sign)Tests the signature-required flow.
R10.11Approved (VIP)Tests VIP cardholder handling.
R10.16Approved (update track 3)Tests the update-track-3 acknowledgement.

Test declines

These amounts return common decline responses. Use them to verify that your integration handles each scenario correctly.

AmountResult
R10.01Refer to issuer
R10.05Do not honour
R10.12Invalid transaction
R10.14Invalid card number
R10.41Lost card
R10.43Stolen card
R10.51Insufficient funds
R10.54Expired card
R10.55Incorrect PIN (see Test PIN flows)
R10.57Not permitted to cardholder
R10.61Exceeds withdrawal amount
R10.65Exceeds withdrawal limit / request PIN
R10.91Issuer unavailable
tip

The rand portion of the amount does not affect the response. R10.51, R250.51, and R3500.51 all return insufficient_funds. Pick whichever rand value suits your test scenario.

Test PIN flows

A configurable subset of test PANs is enabled for online PIN validation. The PIN entered on the terminal is compared to the PIN configured for that card; if it does not match, the transaction returns incorrect_pin. PANs that are not on the configured list do not have PIN validation enabled, and any PIN value will be accepted.

The specific PANs and PINs available for PIN testing vary per integration. Contact the Stitch Card Switch team to obtain the test cards assigned to your test client.

Use the assigned test cards, not real cards

Do not use real cardholder cards with your test client. The test environment is not a PCI-scoped production system, and real card data presented at the terminal will be visible to Stitch infrastructure. Use only the test cards provided by the Card Switch team.

Edge cases

Single Tap and PIN simulation

To exercise the single-tap-and-PIN flow on contactless transactions, use the exact amount R50.05 on a contactless entry mode.

ScenarioResult
First tap, no PIN providedTerminal is prompted to request a PIN.
PIN subsequently provided and validApproved.
PIN subsequently provided but missingReturns incorrect_pin.

Acquirer timeout

Amounts whose cents end in .69 (for example R10.69) simulate an acquirer that never responds. After roughly 30 seconds, the transaction completes with an acquirer_timeout result. Use this to test how your integration handles long-running and timed-out transactions.

Slow approvals

The following exact amounts return an approval, but only after a deliberate delay. Use them to verify your integration's behaviour while a transaction is still in flight (loading states, retries, user-cancellation paths).

AmountDelay before approval
R10.1010 seconds
R20.2020 seconds
R30.3030 seconds
R40.4040 seconds
R50.5050 seconds
R60.6060 seconds
R70.7070 seconds
R80.8080 seconds
R90.9090 seconds

Fall-forward to chip-with-PIN

Contact-with-CVV transactions whose cents end in .65 are approved. This simulates the real-world flow where a contactless attempt is declined with a request to fall forward to chip-with-PIN, and the chip attempt succeeds.

Common issues

SymptomWhat to try
Every test transaction is declining.Use cents values from the Test approvals and Test declines tables above. Other amounts produce unpredictable outcomes.
PIN entry does not appear to be validated.PIN validation runs only for the configured test cards listed in Test PIN flows. Other PANs do not validate PIN entry.
Transactions take far longer than expected to complete.Check whether you used a slow-approval amount such as R10.10.
The transaction never returns a response.Check whether the cents value ended in .69. This simulates an acquirer timeout.