<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pre-Authorization on Corebaseit — POS · EMV · Payments · AI · Telecommunications</title><link>https://corebaseit.com/tags/pre-authorization/</link><description>Recent content in Pre-Authorization on Corebaseit — POS · EMV · Payments · AI · Telecommunications</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>Thu, 25 Jun 2026 09:00:00 +0100</lastBuildDate><atom:link href="https://corebaseit.com/tags/pre-authorization/index.xml" rel="self" type="application/rss+xml"/><item><title>Manual Capture: The Two-Step Logic Behind Tap to Pay and Modern Card Payments</title><link>https://corebaseit.com/corebaseit_posts_in_review/pos-emv-payments/manual-capture/</link><pubDate>Thu, 25 Jun 2026 09:00:00 +0100</pubDate><author>contact@corebaseit.com (Vincent Bevia)</author><guid>https://corebaseit.com/corebaseit_posts_in_review/pos-emv-payments/manual-capture/</guid><description>&lt;img src="https://corebaseit.com/diagrams/manual-capture.png" alt="Featured image of post Manual Capture: The Two-Step Logic Behind Tap to Pay and Modern Card Payments" />&lt;p>A card payment is usually described as a single act: the customer pays, the merchant gets the money. In practice, many card-payment systems distinguish authorization from clearing and settlement, and those stages can be separated in time. Authorization asks the issuer to validate the transaction and reserve funds. Capture is the later instruction that submits the authorized amount for clearing and settlement. Manual capture is the discipline of controlling that second step explicitly instead of allowing the payment platform to trigger it automatically.&lt;/p>
&lt;p>This post treats manual capture as an architecture problem rather than a feature toggle. It defines the boundary where the authorization domain ends and the backend lifecycle begins, models the post-authorization states a transaction can occupy and the host, network, or internal action associated with each transition, and examines the timing and amount constraints that can turn a clean capture into a costly or unsuccessful one. The mechanisms here (ISO 8583 authorization and completion messaging, hold expiry windows, reversals, and a deterministic capture state machine) are drawn from the card-present transaction lifecycle as implemented in production POS and acquiring systems, and covered in depth in Chapter 13 of &lt;em>Point-of-Sale Systems Architecture&lt;/em>.&lt;/p>
&lt;h2 id="two-phases-behind-many-card-payments">Two phases behind many card payments
&lt;/h2>&lt;p>In an &lt;em>auto capture&lt;/em> flow often presented to the merchant as a plain &lt;em>sale&lt;/em> or &lt;em>purchase&lt;/em> authorization and capture appear as one application-level operation. The payment platform handles the seam automatically. In manual capture—also called delayed capture, deferred capture, or &lt;em>authorize now, capture later&lt;/em>—the merchant controls the second stage explicitly, normally for an amount no greater than the amount currently authorized.&lt;/p>
&lt;p>The reason to separate them is control over timing and final amount. The recurring cases are familiar:&lt;/p>
&lt;ul>
&lt;li>E-commerce that charges only when goods ship.&lt;/li>
&lt;li>Hotels and car rentals that pre-authorize an estimate at check-in and capture the final amount, including incidentals, at checkout.&lt;/li>
&lt;li>Fraud or order review that needs a window before committing the charge.&lt;/li>
&lt;li>Partial or split captures against a single authorization.&lt;/li>
&lt;/ul>
&lt;p>In ISO 8583-based environments, a host may represent authorization, financial completion, advice, reversal, and clearing through message pairs such as &lt;code>0100/0110&lt;/code>, &lt;code>0200/0210&lt;/code>, &lt;code>0220/0230&lt;/code>, or &lt;code>0400/0420&lt;/code>. However, those MTIs do not form a universal manual-capture contract. Their exact business meaning depends on the acquiring host, processing code, scheme profile, and required data elements. For example, &lt;code>DE3 001000&lt;/code> may identify a pre-authorization on some hosts but mean something different—or be unsupported—on another. Always follow the acquirer or processor interface specification.&lt;/p>
&lt;h2 id="the-architectural-seam-where-the-card-leaves-the-field">The architectural seam: where the card leaves the field
&lt;/h2>&lt;p>The most important line in manual capture is the one between the two phases, because responsibility changes sides when you cross it.&lt;/p>
&lt;p style="text-align: center;">
&lt;img src="https://corebaseit.com/diagrams/manual_capture_softpost_flow_agnostic1.png" alt="Manual capture across two phases: Phase 1 is card-present (NFC tap, EMV contactless kernel generating ARQC and CVM, online authorization 0100 to 0110); the card then leaves the field; Phase 2 is deferred and card-free (merchant triggers capture, capture request to acquirer for an amount no greater than the authorization, then clearing and settlement via 0220 advice or batch)" style="max-width: 720px; width: 100%;" />
&lt;/p>
&lt;p>Everything above the seam is the acquisition domain: NFC read, EMV contactless kernel, cardholder verification (CVM), cryptogram generation, and assembly of the authorization request. In a typical integration, the certified SDK owns card acquisition and EMV processing, while the merchant backend owns the later capture decision. The precise handoff depends on the PSP and SDK contract. The The integration must retain the identifiers and authorization data required by its PSP or acquiring host. Depending on the platform, these may include a provider transaction ID, merchant reference, authorization code, network reference such as the RRN, original authorized amount, and the processor’s current capturable amount.&lt;/p>
&lt;p>Everything below the seam is a backend concern. The card has left the field, so the remaining steps are card-free backend operations linked to the original card-present authorization, keyed off stored references rather than the card itself. The capture lifecycle is then driven by the merchant application, transaction service, PSP, and acquiring host, normally through API or host calls with no second tap. The backend must persist the identifiers and original authorization data required to correlate every capture, reversal, status query, and retry with the original card-present transaction.&lt;/p>
&lt;h2 id="modeling-the-capture-lifecycle-as-a-state-machine">Modeling the capture lifecycle as a state machine
&lt;/h2>&lt;p>Once authorized, a transaction is not &amp;ldquo;done.&amp;rdquo; It sits in a hold and has to reach a defined terminal state. Modeling that explicitly matters because different transitions may trigger host messages, API operations, internal state changes, or time-driven expiry, each with different timing, reconciliation, and cost consequences. Scattering that logic across handlers is how holds get stranded and interchange gets downgraded.&lt;/p>
&lt;p style="text-align: center;">
&lt;img src="https://corebaseit.com/diagrams/manual_capture_lifecycle_state_machine.png" alt="Capture lifecycle state machine: AUTHORIZED (active hold) fans out to four paths. Partially captured (amount less than auth) advances to Captured then Settlement; Captured (full or remainder) flows to Settlement; Reversed actively requests release of the unused authorization; Expired represents the authorization reaching the end of its validity window without capture" style="max-width: 880px; width: 100%;" />
&lt;/p>
&lt;p>&lt;code>AUTHORIZED&lt;/code> is the entry state, reached when the issuer approves the request and reserves the funds. In a simplified business model, the authorization has four principal outcomes: full capture, partial capture, reversal, or expiration. A production state machine may also require pending, failed, retryable, incremental-authorization, and reconciliation states.&lt;/p>
&lt;p>Two outcomes submit money for clearing and settlement. A capture for the full currently authorized amount moves the transaction to &lt;code>CAPTURED&lt;/code>. A smaller capture may move it to &lt;code>PARTIALLY_CAPTURED&lt;/code>. Where multi-capture is supported, additional captures can be submitted against the remaining authorized balance. On platforms that do not support multi-capture, a partial capture may be treated as final and the unused remainder may be released automatically or require a separate reversal. Captured amounts then proceed through clearing, settlement, and reconciliation.&lt;/p>
&lt;p>The other two principal outcomes close the authorization without capturing the unused amount, and the distinction between them is operationally important. &lt;code>REVERSED&lt;/code> is active: the merchant, PSP, or acquirer submits a reversal or cancellation referencing the original authorization so the issuer can release the unused hold. A message such as &lt;code>0400&lt;/code> or &lt;code>0420&lt;/code> may be used in some ISO 8583 host profiles, but the exact implementation is host-specific. &lt;code>EXPIRED&lt;/code> is time-driven: the authorization reaches the end of its validity window without being fully captured or explicitly canceled. The issuer or processor then releases the remaining hold according to its own processing rules.&lt;/p>
&lt;p>That asymmetry is the lesson worth internalizing. Expiration is not an explicit release initiated by the merchant; it is the result of the authorization reaching the end of its validity period. When the merchant already knows that the funds will not be collected, an explicit reversal is normally the cleaner operational outcome. It allows the issuer to begin releasing the hold sooner, although the cardholder may not see the balance update immediately. The same active-versus-passive decision applies to any uncaptured remainder after a partial capture: reverse it explicitly where required, or confirm how the PSP handles the remaining authorization automatically. Where a reversal sits relative to refunds and chargebacks is covered in &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/reversals-refunds-chargebacks-payment-lifecycle/" >reversals, refunds, and chargebacks&lt;/a>, and the duplicate-charge risk that idempotent capture defends against in &lt;a class="link" href="https://corebaseit.com/corebaseit_posts/double-charging/" >double charges&lt;/a>.&lt;/p>
&lt;h2 id="amount-and-timing-the-constraints-that-cost-money">Amount and timing: the constraints that cost money
&lt;/h2>&lt;p>Manual capture buys flexibility and bills you for it in constraints. Three are worth designing around explicitly.&lt;/p>
&lt;p>Capture amount has a controlled ceiling. In the general case, the cumulative captured amount should not &lt;em>exceed&lt;/em> the amount currently authorized. Merchant categories with variable final totals—such as hospitality, vehicle rental, fuel, and restaurants—may use estimated, incremental, or adjusted authorization flows under scheme- and acquirer-specific rules. Instead of implementing a generic percentage tolerance, enforce:&lt;/p>
&lt;p>&lt;code>captured_amount ≤ currently_authorized_amount&lt;/code>&lt;/p>
&lt;p>The currently_authorized_amount should include any approved incremental authorization. Any attempt to exceed that amount should be rejected or routed through the authorization-adjustment process defined by the acquirer.&lt;/p>
&lt;p>Authorizations have a finite validity period, but there is no single capture window that applies to every Tap-to-Pay transaction. The deadline depends on the processor, scheme, card type, region, transaction type, merchant category, and whether extended authorization is supported. The system should therefore store the authoritative capture deadline—such as a PSP-provided capture_before value—rather than hard-code a generic number of days. If the deadline is missed, the hold may be released and the original authorization protection may be lost. A new authorization could then require the customer to present the card or wallet again.&lt;/p>
&lt;p>Capture quality can affect acceptance, authorization protection, reconciliation, and cost. Late completion, missing data, or an amount that does not reconcile correctly with the authorization may lead to rejection, loss of authorization protection, compliance issues, or less favorable qualification under the applicable network and acquirer rules. This is a strong operational reason to capture promptly once the final amount is known, while treating the processor’s interface and qualification rules as the authoritative source.&lt;/p>
&lt;h2 id="how-this-maps-to-tap-to-pay">How this maps to Tap to Pay
&lt;/h2>&lt;p>Tap to Pay changes the acceptance device, not the payment model. Instead of presenting the card to a dedicated terminal, the cardholder taps an NFC-enabled phone running a certified application. The phone and SDK handle the card-present interaction (contactless read, EMV processing, CVM when required, secure transmission, and delivery of the authorization result), and then the card-present part is over.&lt;/p>
&lt;p>When manual capture is configured, an approved Tap-to-Pay transaction is stored in an authorized-but-not-captured state, and the later capture runs through the merchant application or backend, not by asking the customer to tap again. The cleanest way to hold the two ideas apart:&lt;/p>
&lt;p>Tap to Pay answers &lt;em>how&lt;/em> the card is accepted. Manual capture answers &lt;em>when&lt;/em> the merchant completes the charge. They live in different layers and compose cleanly, which is exactly why the seam between them has to be explicit in the design.&lt;/p>
&lt;p style="text-align: center;">
&lt;img src="https://corebaseit.com/diagrams/manual-capture-two-step_card_payment_Logic.png" alt="Full manual capture architecture: the acquisition domain (SDK) owns Phase 1 NFC, EMV kernel, CVM and cryptogram generation; the transaction backend owns Phase 2 as an API-driven state machine; the simplified AUTHORIZED lifecycle has four principal outcomes (Captured, Partially Captured, Reversed, Expired); strategic use cases include fulfillment-based charging, dynamic totals, and fraud review; operational guardrails cover the expiration window, amount-mismatch penalties, and the capture ceiling" style="max-width: 980px; width: 100%;" />
&lt;/p>
&lt;h2 id="implementation-guardrails">Implementation guardrails
&lt;/h2>&lt;p>A few rules belong in the system, not in an operator&amp;rsquo;s memory:&lt;/p>
&lt;ul>
&lt;li>Make each logical capture operation idempotent. Persist a unique capture-operation ID linked to the original authorization, merchant reference, capture sequence, amount, final-capture indicator, and processor transaction reference. Every retry of the same logical capture must reuse that ID, while a legitimate second partial capture must use a new one. Backend idempotency patterns are detailed in Chapter 15 of the book.&lt;/li>
&lt;li>Track the processor-provided capture deadline and trigger alerts or reversals before it lapses. Where automated reversal is supported, use it to release authorizations that the merchant already knows will not be captured.&lt;/li>
&lt;li>Distinguish &lt;code>AUTHORIZED&lt;/code> from &lt;code>CAPTURED&lt;/code> everywhere it is shown. An approved authorization is a reserved hold, not a completed payment, and a dashboard that blurs the two will mislead reconciliation and support.&lt;/li>
&lt;li>Reverse rather than abandon where the platform requires an explicit release. Submit reversals for canceled orders and uncaptured remai&lt;/li>
&lt;/ul>
&lt;h2 id="a-single-rule-under-all-of-it">A single rule under all of it
&lt;/h2>&lt;p>Manual capture is what lets payment collection line up with fulfillment, dynamic totals, and risk review. The cost of that flexibility is a second lifecycle that you now own end to end, with its own messages, timers, and failure modes.&lt;/p>
&lt;p>So the question to ask of your own flow is narrow: once a transaction is authorized, does your system guarantee that it reaches a defined and reconciled outcome—captured, reversed, or deliberately allowed to expire—rather than drifting there without ownership? An &amp;ldquo;approved&amp;rdquo; transaction is a beginning, not an end.&lt;/p>
&lt;h2 id="key-takeaways">Key takeaways
&lt;/h2>&lt;ol>
&lt;li>Many card-payment systems distinguish authorization from clearing and settlement. Manual capture exposes that separation to the merchant: authorize now and capture later, normally for an amount no greater than the amount currently authorized.&lt;/li>
&lt;li>The authorization/capture seam is an architectural boundary. The SDK and payment application own card acquisition and EMV processing, while the merchant backend and PSP manage the later card-free continuation of the original card-present transaction.&lt;/li>
&lt;li>A simplified lifecycle can be modeled as &lt;code>AUTHORIZED → CAPTURED / PARTIALLY_CAPTURED / REVERSED / EXPIRED&lt;/code>. Some transitions produce host messages or API calls, while others are internal or time-driven. Production systems may require additional pending, failure, retry, and reconciliation states.&lt;/li>
&lt;li>Reversal is an active request to release an unused authorization; expiration is a time-driven outcome. When the merchant knows the funds will not be collected, an explicit reversal is normally preferable. Uncaptured remainders must be handled according to the PSP’s partial-capture rules.&lt;/li>
&lt;li>Respect the constraints: capture no more than the currently authorized amount, use the processor’s authoritative capture deadline, submit complete and consistent capture data, and make every logical capture operation idempotent.&lt;/li>
&lt;/ol>
&lt;h2 id="further-reading">Further reading
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://corebaseit.com/corebaseit_posts/what-happens-in-2-3-seconds-of-card-payment/" >What Actually Happens in the 2–3 Seconds of a Card Payment&lt;/a> — the single-tap authorization lifecycle that Phase 1 sits inside&lt;/li>
&lt;li>&lt;a class="link" href="https://corebaseit.com/corebaseit_posts/reversals-refunds-chargebacks-payment-lifecycle/" >Reversals, Refunds, and Chargebacks: Decoding the Payment Lifecycle&lt;/a> — where a reversal sits relative to settlement&lt;/li>
&lt;li>&lt;a class="link" href="https://corebaseit.com/corebaseit_posts/double-charging/" >Double Charges: The Hardest Problem in Payments&lt;/a> — why capture idempotency matters under network failure&lt;/li>
&lt;li>&lt;a class="link" href="https://corebaseit.com/corebaseit_posts/offline-emv-vs-store-and-forward/" >Offline EMV vs. Store-and-Forward&lt;/a> — deferred authorization and the duplicate risk it stores up&lt;/li>
&lt;li>ISO 8583 — financial transaction messaging, including authorization (&lt;code>0100&lt;/code>/&lt;code>0110&lt;/code>), completion advice (&lt;code>0220&lt;/code>), and reversal (&lt;code>0420&lt;/code>) MTIs&lt;/li>
&lt;li>EMVCo, &lt;em>EMV Integrated Circuit Card Specifications, Book 3: Application Specification&lt;/em>&lt;/li>
&lt;li>&lt;em>Point-of-Sale Systems Architecture: A Practical Guide to Secure, Certifiable POS Systems&lt;/em>, Chapter 13 (Pre-Authorization and Completion Flows), with supporting material in Chapter 8 (The Transaction Lifecycle), Chapter 15 (Backend Architecture), and Chapter 16 (Integration and Scheme Field Mappings)&lt;/li>
&lt;/ul></description></item></channel></rss>