v1.8.11 - Safe payment reconciliation and method-aware telemetry #
Flopay SDK 1.8.11 reconciles a checkout before treating a lost process response as failure, never replays the charge, and attributes processing telemetry to the selected payment method.
27 Aug 2026
Flopay SDK v1.8.11 closes an ambiguity between a successful backend payment and a browser that never receives its response. The SDK now checks the authoritative checkout session before showing an error, while keeping the money-affecting request strictly single-shot.
What changed
- When
POST /processrejects without an HTTP response,PaymentAPIpolls the checkout session through authenticated reads. A session that settled as complete or authorized returns the same public result as the existing processing-response path. - Recovery never submits
/processa second time. The React saved-payment flow no longer wraps payment processing in its former fetch-failure retry. - Checkout and manual-authorization expiry keep their existing stable errors, caller-initiated aborts still propagate immediately, and reconciliation stays within the existing bounded polling budget.
- Processing and recovery telemetry now carries the selected privacy-safe
method category:
card,wallet,paypal,apm, orsaved. Existing direct callers that do not provide a category continue to reportunknown. - A recovered payment emits completion and recovery lifecycle/performance signals without a false technical error. A failed reconciliation emits one sanitized, method-attributed recovery error.
Why it matters
A dropped connection after a charge left the browser unable to distinguish a failed payment from a successful payment whose acknowledgement was lost. That could tell an already-charged buyer to try again. The session read makes the decision from backend state without risking a duplicate charge, while the method category makes wallet, PayPal, APM, saved-card, and card processing health comparable in telemetry.
Developer notes
- Upgrade the
@flopay/*packages you use to1.8.11together. ProcessPaymentParams.paymentMethodCategoryis optional and accepts the shared telemetry category union. Existing integrations require no migration.- The category is used only by Flo's bounded operational telemetry and is not
sent in the
/processrequest body. - No payment details, buyer data, session nonce, provider payload, or other PII is added to telemetry.