<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Latency on Corebaseit — Design System Engineering · POS · Payments · Security</title><link>https://corebaseit.com/tags/latency/</link><description>Recent content in Latency on Corebaseit — Design System Engineering · POS · Payments · Security</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>contact@corebaseit.com (Vincent Bevia)</managingEditor><webMaster>contact@corebaseit.com (Vincent Bevia)</webMaster><lastBuildDate>Fri, 21 Aug 2026 18:00:00 +0200</lastBuildDate><atom:link href="https://corebaseit.com/tags/latency/index.xml" rel="self" type="application/rss+xml"/><item><title>Tracing Payment Latency with ISO 8583: Fast Visa vs Slow Mastercard Credit</title><link>https://corebaseit.com/corebaseit_posts/tracing-payment-latency-iso8583/</link><pubDate>Fri, 21 Aug 2026 18:00:00 +0200</pubDate><author>contact@corebaseit.com (Vincent Bevia)</author><guid>https://corebaseit.com/corebaseit_posts/tracing-payment-latency-iso8583/</guid><description>&lt;img src="https://corebaseit.com/diagrams/DecodingPaymentLatency.png" alt="Featured image of post Tracing Payment Latency with ISO 8583: Fast Visa vs Slow Mastercard Credit" />&lt;p>Latency differences between scheme or product types are a recurring operational problem in SoftPOS and SmartPOS acquiring. Visa authorizations complete quickly. Mastercard Debit completes quickly. Mastercard Credit is slow — sometimes by a factor of two or three — while terminal behaviour, merchant context, and card entry mode look identical.&lt;/p>
&lt;p>That pattern is usually not random. It reflects systematic differences in how those transaction types are classified, routed, timed out, or processed further along the path. Application logs alone rarely expose those differences. The ISO 8583 authorization layer does — if you compare the right fields across matched samples.&lt;/p>
&lt;p>This post is a practitioner investigation guide: a six-field cheat sheet, a step-by-step comparison method, and the findings those comparisons typically produce. It builds on the field map and deep profiles in this ISO 8583 series and on &lt;a class="link" href="https://corebaseit.com/my-books/" target="_blank" rel="noopener"
>&lt;em>POINT OF SALE ARCHITECTURE&lt;/em>&lt;/a> (&lt;em>the book&lt;/em>), especially Chapter 15 (backend latency budgets, timeouts, distributed tracing) and Chapter 16 (STAN/RRN correlation, scheme profiling, structured logging).&lt;/p>
&lt;p>Related reading: &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/iso8583-data-elements-nine-families/" >ISO 8583 data elements: nine families&lt;/a>, &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/what-happens-in-2-3-seconds-of-card-payment/" >what happens in the 2–3 seconds of a card payment&lt;/a>.&lt;/p>
&lt;h2 id="claims-to-keep-separate">Claims to keep separate
&lt;/h2>&lt;p>&lt;strong>Confirmed by the standard and common acquiring practice:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>ISO 8583 defines message structure and data-element positions; schemes and processors profile field semantics, especially for DE22, DE24, and DE39 code lists (&lt;a class="link" href="https://www.iso.org/standard/79473.html" target="_blank" rel="noopener"
>ISO 8583:2023&lt;/a>; &lt;em>the book&lt;/em>, Ch. 16).&lt;/li>
&lt;li>DE11 (STAN) and DE37 (RRN) are the usual correlation handles across terminal, gateway, switch, and issuer logs; DE7 supplies transmission date/time as additional correlation context (&lt;em>the book&lt;/em>, Ch. 16).&lt;/li>
&lt;li>Authorization paths are multi-hop and tightly timed; backends need layered timeouts, safe retries, and reversals when outcomes are uncertain (&lt;em>the book&lt;/em>, Ch. 15–16).&lt;/li>
&lt;li>Internal timeouts should sit inside upstream SLA windows so the POS retains control of the cardholder experience (&lt;em>the book&lt;/em>, Ch. 15).&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Interpretation (diagnostic method, not a universal root cause):&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>“Visa fast / Mastercard Debit fast / Mastercard Credit slow” is a common comparative scenario used here as a working example. Your slow cohort may be a different BIN range, product type, or domestic route.&lt;/li>
&lt;li>Hop-by-hop latency is measured from &lt;strong>system log timestamps&lt;/strong> joined by DE11/DE37 (and DE7 as the message transmission clock). DE7 is not reliably rewritten at every hop; treating it as a per-hop stopwatch is usually wrong.&lt;/li>
&lt;/ul>
&lt;h2 id="the-comparison-setup">The comparison setup
&lt;/h2>&lt;p>Hold terminal behaviour and entry mode constant. Build three samples:&lt;/p>
&lt;ol>
&lt;li>Fast, completed Visa authorizations&lt;/li>
&lt;li>Fast, completed Mastercard Debit authorizations&lt;/li>
&lt;li>Slow Mastercard Credit authorizations&lt;/li>
&lt;/ol>
&lt;p>Compare six fields across all three groups. Prefer samples from the same merchant, terminal fleet, and time window so you are not comparing peak-load noise against quiet hours.&lt;/p>
&lt;h2 id="the-six-field-cheat-sheet">The six-field cheat sheet
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Name&lt;/th>
&lt;th>What it tells you&lt;/th>
&lt;th>Why it matters here&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>DE7&lt;/code>&lt;/td>
&lt;td>Transmission date and time&lt;/td>
&lt;td>Message transmission clock at origin&lt;/td>
&lt;td>Baseline “when” for correlating the same authorization across logs&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>DE11&lt;/code>&lt;/td>
&lt;td>STAN&lt;/td>
&lt;td>Short operational trace (typically 6 digits)&lt;/td>
&lt;td>Matches request and response within a system; flags duplicate/retry windows&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>DE22&lt;/code>&lt;/td>
&lt;td>POS entry mode&lt;/td>
&lt;td>How card data was captured&lt;/td>
&lt;td>Confirms classification is equivalent before you blame routing&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>DE24&lt;/code>&lt;/td>
&lt;td>Network / function indicator&lt;/td>
&lt;td>Often a routing or processing-path signal&lt;/td>
&lt;td>Different values between fast and slow groups form a routing hypothesis&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>DE37&lt;/code>&lt;/td>
&lt;td>RRN&lt;/td>
&lt;td>Cross-party retrieval reference&lt;/td>
&lt;td>Join key for issuer/scheme investigation and multi-hop correlation&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>DE39&lt;/code>&lt;/td>
&lt;td>Response code&lt;/td>
&lt;td>Authorization outcome&lt;/td>
&lt;td>Separates slow-but-approved from timeout, routing failure, or business decline&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Exact DE22 sub-field coding, DE24 meaning, and DE39 enumerations come from your processor or scheme interface specification — not from the base ISO text alone (&lt;em>the book&lt;/em>, Ch. 16).&lt;/p>
&lt;h2 id="step-by-step-investigation">Step-by-step investigation
&lt;/h2>&lt;h3 id="step-1--reconstruct-timing-with-de7--hop-logs-keyed-by-de11de37">Step 1 — Reconstruct timing with DE7 + hop logs keyed by DE11/DE37
&lt;/h3>&lt;p>For each sample transaction:&lt;/p>
&lt;ol>
&lt;li>Record &lt;strong>DE7&lt;/strong> from the authorization message as the transmission baseline.&lt;/li>
&lt;li>In each component log (terminal/SDK, gateway, switch, scheme edge if available), record &lt;strong>local send and receive timestamps&lt;/strong> for the same DE11/DE37 pair.&lt;/li>
&lt;li>Plot inter-hop intervals for each group.&lt;/li>
&lt;/ol>
&lt;p>Fast groups usually show short, consistent intervals. The slow group typically shows one extended interval at a specific boundary. That boundary is the primary timing finding.&lt;/p>
&lt;p>&lt;strong>Interpretation note:&lt;/strong> If you only have DE7 and a single system’s wall clock, you can still compare end-to-end duration across groups. You cannot honestly claim which hop introduced the delay until you have correlated multi-hop timestamps.&lt;/p>
&lt;h3 id="step-2--verify-de22-is-consistent-across-groups">Step 2 — Verify DE22 is consistent across groups
&lt;/h3>&lt;p>Before attributing the difference to Mastercard Credit infrastructure, confirm DE22 is the same or scheme-equivalent across samples.&lt;/p>
&lt;p>If Mastercard Credit arrives with a different entry-mode encoding than Visa or Mastercard Debit — while the physical tap was contactless SoftPOS — classification may have selected a different processing path or liability treatment. Fix the DE22 construction in the acquirer or gateway stack before chasing switch capacity.&lt;/p>
&lt;h3 id="step-3--compare-de24-between-fast-and-slow-groups">Step 3 — Compare DE24 between fast and slow groups
&lt;/h3>&lt;p>In many processor implementations, DE24 participates in routing-profile selection: which switch path, which timeout profile, which backend logic.&lt;/p>
&lt;p>If DE24 differs between the fast groups and the slow group, treat that as a routing hypothesis: the slow cohort may be on a different path with a longer queue, a slower upstream link, or a different timeout configuration. Confirm what each DE24 value means from the processor specification. ISO 8583 does not define those operational semantics.&lt;/p>
&lt;h3 id="step-4--tabulate-de39-by-group">Step 4 — Tabulate DE39 by group
&lt;/h3>&lt;p>Build a frequency distribution of DE39 for each cohort. Look for:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Timeout or unable-to-process codes&lt;/strong> concentrated in Mastercard Credit and rare in the fast groups → the slow path is hitting a time budget the fast paths are not.&lt;/li>
&lt;li>&lt;strong>Approvals with long end-to-end duration&lt;/strong> → the path is slow but completing; this is a performance problem, not an authorization-failure problem.&lt;/li>
&lt;li>&lt;strong>Routing or switch-error codes&lt;/strong> concentrated in the slow group → infrastructure or path selection, not isolated issuer business declines.&lt;/li>
&lt;/ul>
&lt;p>Each pattern points to a different owner: timeout configuration, capacity, routing matrix, or issuer-side investigation.&lt;/p>
&lt;h3 id="step-5--check-de11--de37-for-duplicate-or-overlapping-attempts">Step 5 — Check DE11 + DE37 for duplicate or overlapping attempts
&lt;/h3>&lt;p>Search gateway and switch logs for the same DE11 repeating in a short window on slow Mastercard Credit samples. That pattern often means a retry fired before the original &lt;code>0110&lt;/code> returned — duplicate load on an already slow path.&lt;/p>
&lt;p>Use DE37 to confirm whether parallel attempts are the same logical transaction across system boundaries. Safe retries that preserve STAN/RRN for idempotency are intentional (&lt;em>the book&lt;/em>, Ch. 15–16); uncontrolled retry storms are not. Also check whether new STANs appear for what the POS still treats as one payment — that is a different failure mode with the same UX symptom.&lt;/p>
&lt;h2 id="what-the-comparison-usually-tells-you">What the comparison usually tells you
&lt;/h2>&lt;p>These are common outcomes, not an exhaustive tree.&lt;/p>
&lt;p>&lt;strong>Finding A — DE22 consistent, DE24 differs, DE39 skewed to timeouts&lt;/strong>&lt;/p>
&lt;p>Mastercard Credit is likely on a different routing profile whose time budget or upstream behaviour does not match the fast paths. Review routing for that product type and the timeout layering on the DE24-identified path. Remember: timeouts can come from a path that is simply slower under the same absolute timeout, not only from a “shorter” timeout value.&lt;/p>
&lt;p>&lt;strong>Finding B — DE22 differs between groups&lt;/strong>&lt;/p>
&lt;p>Classification is contaminating the experiment. Correct entry-mode construction for the Mastercard Credit SoftPOS/contactless path, then re-run the comparison.&lt;/p>
&lt;p>&lt;strong>Finding C — Inter-hop intervals match until the issuer boundary&lt;/strong>&lt;/p>
&lt;p>Acquiring and switch timing look similar; the issuer or scheme-side leg stretches. Escalate with DE37 (and DE11/DE7 context) and ask for issuer-side timing on those retrieval references. That is outside what the acquirer can fix in routing alone.&lt;/p>
&lt;p>&lt;strong>Finding D — Duplicate DE11 windows on the slow cohort&lt;/strong>&lt;/p>
&lt;p>Latency and retries are reinforcing each other. Cap client retries, align idempotency keys with STAN/RRN, and confirm automatic reversals on uncertain outcomes before adding more capacity (&lt;em>the book&lt;/em>, Ch. 15–16).&lt;/p>
&lt;h2 id="roundtable-one-liner">Roundtable one-liner
&lt;/h2>&lt;p>Compare DE7, DE11, DE22, DE24, DE37, and DE39 across a fast Visa sample and a slow Mastercard Credit sample — with hop timestamps joined by STAN/RRN — to isolate whether the delay is classification, routing, timeout, retry amplification, or issuer-side processing.&lt;/p>
&lt;h2 id="references">References
&lt;/h2>&lt;ol>
&lt;li>ISO 8583:2023 — &lt;em>Financial transaction card originated messages — Interchange message specifications&lt;/em>. International Organization for Standardization.&lt;/li>
&lt;li>Bevia, V. — &lt;em>Point-of-Sale Systems Architecture&lt;/em>, Chapter 15 (backend architecture, latency budgets, timeouts, distributed tracing) and Chapter 16 (scheme integration: STAN/RRN correlation, DE22/DE24/DE39 profiling, structured logging): &lt;a class="link" href="https://corebaseit.com/my-books/" target="_blank" rel="noopener"
>https://corebaseit.com/my-books/&lt;/a>&lt;/li>
&lt;li>Scheme / processor interface specifications for your certified routes — authoritative source for DE22 sub-fields, DE24 routing semantics, and DE39 code lists (profile-specific).&lt;/li>
&lt;li>Corebaseit — &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/iso8583-data-elements-nine-families/" >ISO 8583 data elements: nine families&lt;/a>; &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/what-happens-in-2-3-seconds-of-card-payment/" >what happens in the 2–3 seconds of a card payment&lt;/a>.&lt;/li>
&lt;/ol></description></item></channel></rss>