Skip to main content
    Fintech · BNPL

    Scaling a Lease-Focused BNPL Platform from 15 Integrations to 300+ Retailers, and Extending It In-Store

    One extension, one eligibility model, 300+ retailers, online and in-store.

    A US lease-focused buy-now-pay-later provider needed roughly six months and a 60 to 70 person team to support just 15 retailers through custom payment integrations. I led a platform redesign that replaced retailer-side integrations with an AI-powered Chrome extension, reaching 100+ retailers in four months and eventually 300+. We then extended the same eligibility and virtual-card infrastructure into brick-and-mortar stores using receipt OCR, mobile geofencing and location-bound card expiration.

    Illustration of the BNPL platform: a laptop cart with per-item eligibility analysis, the AI decisioning layer classifying products, in-store receipt OCR on a phone, and geofenced virtual cards that lock outside the store.

    Image generated with AI

    Client, retailer and payment-provider names are anonymized. "Leasable" refers to products permitted under the client's financing policy (typically durable goods such as furniture, TVs and electronics), a client-specific product policy, not a universal legal definition.

    Role

    AI Product Manager

    AI

    Supervised product-eligibility classifier

    Stack

    PythonREST APIsReactChrome ExtensionMobile App

    Channels

    EcommerceIn-store retail

    Capabilities

    OCRGeofencingVirtual cardsDOM extraction

    Integrations

    PCI DSS virtual-card providerClient identity & credit systemsMobile Code VerificationSSN validationLocation services

    01 Context & Problem

    The client offered a lease-focused BNPL product: customers applied for an approved spending limit, then financed eligible purchases and repaid on an installment schedule instead of paying in full. The product only covered leasable items such as furniture, televisions and consumer electronics, not low-value consumables like pens, notebooks and stationery. The client grew by integrating its payment option directly into each retailer's website: sales approaches the retailer, retailer provides a sandbox, the team integrates the gateway, engineering and QA test the checkout, then both sides coordinate a production release.

    That model worked at five to seven retailers and broke as the network grew. Retailers ran different combinations of Shopify, Magento, BigCommerce and custom platforms, different checkouts, different payment processors, and different sandbox and release procedures, so every integration became its own permanent implementation and support lifecycle. Any retailer platform upgrade or checkout change could force the client to rebuild the integration, redo regression testing and schedule a fresh joint release. After roughly six months the program supported around 15 retailers with 60 to 70 people, and the plan was 200+ retailers the following year: a linear extension implied hundreds, potentially close to a thousand, people. The real problem was not development capacity. The architecture made every new retailer a new external dependency, so the client needed a model where retailer growth no longer required proportional growth in engineering and support.

    02 Role & Constraints

    As AI Product Manager I owned the end-to-end solution: product strategy, problem definition, customer-journey design, AI use-case definition, solution architecture, retailer-enablement strategy, product-data and labeling requirements, engineering and AI/ML coordination, API and backend requirements, virtual-card integration, the mobile and browser-extension experiences, security and compliance coordination, analytics and model-performance requirements, rollout planning and stakeholder management. One of the most important calls was scoping where AI should and should not be used: the model only answered whether a product was eligible under the leasable-product policy. It did not determine creditworthiness, set credit limits, validate identity, define repayment terms, perform SSN verification or approve accounts, all of which stayed with the client's existing approval, identity and agreement systems.

    The constraints were concrete. Eliminate retailer-side implementation dependency: no retailer should have to add a payment method, provide sandbox access, change its checkout, expose custom APIs, assign developers or run joint QA. Support product-level eligibility, since a retailer could sell both leasable and non-leasable items, so the system classified individual cart items rather than whole retailers, and handled mixed carts by financing only the eligible portion. Work across different retailer technologies and manage DOM changes, because the extension still read retailer pages and page updates could shift HTML structure, selectors, product cards, prices and checkout fields. Maintain acceptable classification accuracy, generally 85 to 90 percent with a target above 90 and improving toward 95. Protect customer information (name, address, mobile number, SSN and OTP) with encryption, tokenization, access controls and audit logging. And later, support physical retail without integrating into each store's point-of-sale system.

    03 Product Approach

    Instead of building a more efficient retailer-integration team, we changed the location of the integration. The original model placed the client's financing capability inside the retailer's checkout. The redesigned model placed the financing experience inside channels the client controlled: a Chrome extension for ecommerce and the client's mobile app for physical stores. That created a shared, merchant-independent platform that operated across many retailers without any retailer implementing the client's payment method.

    Online, the Chrome extension identified the retailer, told the customer financing was available, read the cart and total, sent product details to the backend, classified each item as leasable or non-leasable, excluded ineligible items, checked the eligible amount against the customer's limit, supported registration and verification, presented the agreement, generated a single-use or limited-use virtual card, and autofilled it into the retailer's standard checkout. Enabling a new retailer became an internally managed process rather than a six-month bilateral integration: collect the retailer's public catalog data, label products leasable or non-leasable per the client's policy, train or update the classifier on thousands of records, validate accuracy against known labels, configure DOM extraction for product name, price, quantity, category and cart total, test the end-to-end flow, then activate the retailer, no sandbox, checkout change or gateway deploy required.

    In store, we extended the same capability into the mobile app. The app detected the customer was inside a store's geofence; at the billing counter the customer photographed the itemized bill; OCR extracted product names, quantities and prices; the line items were normalized and passed to the same eligibility model; the app split eligible from ineligible items so non-leasable products could be paid separately; the eligible total was checked against the limit; the customer accepted the agreement; a virtual card was generated for the eligible amount and used through the store's normal card-acceptance process. If the customer left the geofence before using the card, it expired automatically. Geofencing did not process the transaction, it acted as a trigger for the backend to change the card's lifecycle status.

    The reframe

    The client appeared to need a bigger integration team. The real issue was that growth depended on hundreds of external retailer systems and release schedules. Moving the experience into a client-controlled extension and mobile app, with virtual cards as the interoperability layer, changed that dependency: retailer product data replaced custom payment integration, and every item was decided independently.

    04 Features Built

    Supported-retailer detection

    The extension recognizes enabled retailer sites and tells the customer financing is available.

    DOM-based cart extraction

    Retailer-specific DOM logic pulls product and cart information from the page.

    AI product eligibility

    Every cart item is classified leasable or non-leasable by the shared model.

    Mixed-cart handling

    Ineligible items are excluded, so only the eligible portion is financed.

    In-extension registration

    New customers create an account without leaving the shopping journey.

    Virtual card + checkout autofill

    A single-use or limited-use card is generated and autofilled into the retailer's checkout.

    Mobile in-store journey

    The existing client app was extended to finance eligible physical-store purchases.

    Store geofencing

    The app detects when a customer is inside a supported store's configured area.

    Bill capture + OCR

    The customer photographs the itemized bill; OCR extracts line items from the image.

    Receipt normalization

    OCR output is converted into structured product, quantity and price records.

    Eligible / ineligible split

    The app shows what can be financed and what must be billed or paid separately.

    Geofence-triggered expiration

    Leaving the store boundary before use triggers automatic card expiration.

    Also shipped: approved-limit validation, mobile OTP verification, real-time SSN validation against the client's existing identity systems, agreement presentation and acceptance (in-extension and in-app), repeatable retailer enablement via product training plus DOM configuration, shared product classification reused across both channels, and a single omnichannel backend for eligibility, customer validation, agreements, virtual cards and analytics.

    05 Architecture

    Two customer channels converged on one backend. The online channel is the Chrome extension plus retailer DOM extraction; the in-store channel is the mobile app plus bill photography, OCR and geofencing. Both use the same core services for product normalization, leasable-product classification, customer identity and credit-limit validation, agreement generation, virtual-card issuance, card lifecycle management, and analytics and audit logging. A Python backend exposes REST APIs; an external PCI DSS-compliant card provider issues the single-use or limited-use virtual cards.

    CustomerOnline · In-storeOnline Retail JourneyChrome ExtensionRetailer pageDOM + cart extractionCheckout autofillIn-Store JourneyMobile AppBill photoReceipt OCRGeofence monitoringCart dataReceipt + location eventsShared Client PlatformPython Backend · REST APIsNormalizationProduct dataEligibility ClassifierLeasable checkEligible / IneligibleItem splitIdentity & CreditClient systemsEligible amountLimit OKAgreementAccept & executeVirtual CardSingle / limited-useCard ProviderExternal · PCI DSSAcceptedIssue · expireEncrypted Data, Tokens & Audit LogsAnalytics & Observability

    The architecture changed the unit of expansion. Where each retailer previously required a commercial agreement, retailer technical resources, sandbox access, payment integration, joint QA, a coordinated release and ongoing platform support, a new online retailer now primarily requires product-data preparation, labeling, model training or validation, DOM configuration, checkout testing and extension activation. A new physical retailer primarily requires store-location configuration, product-data coverage, receipt-format validation, OCR testing, eligibility testing and card-acceptance validation. Security spans encryption, tokenization, restricted access, audit logging, OTP verification, real-time SSN validation, controlled agreement execution, single-use or limited-use cards, location-triggered expiration and the PCI DSS-compliant provider. Reliability is monitored per surface: DOM breakage online (missing products, invalid selectors, autofill failures), OCR variability in store (poor lighting, blur, folds, abbreviations, tax and discount lines), geofence limits (denied permissions, indoor accuracy, GPS drift, delayed exit events, OS background limits), and virtual-card outcomes (issuance failures, provider timeouts, activation, expiration, authorization). The trade-offs are explicit: retailer independence still depends on the retailer's DOM; POS independence depends on receipt quality; one shared model spans two very different input types; location control is bounded by location accuracy; and the external card provider lowers infrastructure burden while adding vendor dependency.

    06 Analytics & Observability

    The expanded platform needed separate measurement for online checkout, OCR performance, model accuracy, location behavior and payment outcomes, because a single failure could originate in any of them. OCR accuracy and classification accuracy were measured separately: a classification failure could come from incorrect OCR text, incorrect receipt parsing, insufficient product context, or a genuine model error. Both an ecommerce funnel (retailer detected → extension opened → cart extracted → classified → eligible amount → verified → agreement → card → autofill → purchase) and an in-store funnel (store detected → geofence entered → bill photographed → OCR → line items → classified → non-leasable separated → eligible approved → agreement → card → payment or expiry) were instrumented end to end. The support profile shifted too: away from retailer integrations, sandboxes and gateway defects, toward billing, agreements, repayment, OCR or bill-reading, DOM changes, location-permission and card-authorization questions.

    Online retailer metrics

    Retailer detection, cart extraction, DOM errors, autofill and checkout success, approval-to-purchase conversion.

    Classification metrics

    Accuracy by retailer, category and channel, false leasable and non-leasable rates, and confidence distribution.

    OCR metrics

    Capture and processing success, line and price extraction, total reconciliation, recapture and manual-correction rates.

    Geofence metrics

    Entry detection, permission denial, exit events, cards expired after exit, and time from generation to payment.

    Virtual-card metrics

    Request success, generation latency, provider errors, activation, authorization outcomes and unused-card rate.

    07 AI Decisioning Layer

    The model answered one narrowly defined question, consistent across both channels: is this product eligible under the client's leasable-product policy? Online inputs combined product name, image, category, retailer context, description where available, price and quantity, plus the leasable/non-leasable training label. In-store inputs were OCR-extracted descriptions, receipt line-item text, quantity, price, store context and prior retailer product data, which were often far less descriptive than an ecommerce page, so product normalization mattered most in the in-store flow. The pipeline captured product information from the DOM or receipt, normalized retailer-specific text, mapped to known categories, evaluated leasability, returned the result, calculated the eligible total, and recorded the model result and version for monitoring. Training used structured, spreadsheet-form data (name, image, category, retailer, label) with thousands of examples per retailer or retailer group, a supervised product-classification model. Reported accuracy was roughly 85 to 90 percent with a goal of exceeding 90 and improving toward 95; this was the client's project-level measure, with no separate precision, recall, F1 or independently audited evaluation provided.

    What the model does, and does not, decide

    The AI answered only product eligibility. It never determined creditworthiness, set credit limits, validated identity, defined repayment terms, performed SSN verification or approved accounts, those stayed with the client's existing systems. Known failure modes (a non-leasable item scored leasable, a leasable item wrongly rejected, an abbreviated receipt line mismapped, a bundled or brand-new product, a changed retailer taxonomy, or bad OCR) point to the recommended next step: confidence-based decisioning that continues automatically when confident, applies deterministic category rules at medium confidence, asks the customer to recapture at low confidence, and excludes or routes to review when unresolved.

    08 Status & Outcome

    The Chrome extension supported 100+ retailers within about four months, versus roughly six months for 15 under the original model, and eventually let customers use the financing product across 300+ online retailers, an approximately twentyfold increase over the 15-retailer baseline. A new retailer no longer needed technical resources, sandbox access, gateway integration, joint QA, retailer-side deployment or coordinated releases; it could be enabled through internally controlled data preparation, labeling, model training, DOM configuration, checkout testing and activation. The original 60 to 70 person team stayed broadly the same, with roughly four to five AI/ML engineers added for data preparation, model training and accuracy work, so the organization avoided the proportional staffing increase the old model implied. Retailer integration work, custom development, sandbox effort, joint testing and platform-specific payment maintenance was removed; the client reported increased checkout transaction volume as more places accepted the approved limit (reported qualitatively, no exact figure supplied). The platform then extended into physical retail through the mobile app, proving the core model was not limited to web checkout, and costs tied to repeated integrations, sandboxes, gateway development, joint QA, release coordination and proportional support growth improved, with the virtual-card provider as the main remaining external dependency.

    300+

    Online retailers supported

    20×

    Retailer coverage increase

    4 mo

    To 100+ retailers (vs 6 mo for 15)

    85-90%

    Reported model accuracy

    09 Reflection / What's Next

    What worked was solving the dependency problem instead of the staffing problem: one eligibility capability served webpages, shopping carts and OCR-extracted bills, virtual cards let the client operate through payment flows retailers already supported, and each channel added its own controls (DOM extraction and autofill online; OCR, geofencing and card expiration in store) on a consistent shared platform. What I would improve next: formalize retailer enablement as an internal operations product (upload, labeling, training, validation, DOM and store-location setup, release approval, health monitoring); add receipt reconciliation so extracted totals, discounts and tax reconcile with the final bill; introduce a low-confidence review policy; strengthen geofence controls with short expirations, amount and single-transaction limits and immediate closure after authorization; build automated DOM-change detection via scheduled synthetic tests; separate OCR and AI error reporting on dashboards; improve model-governance traceability (channel, retailer, model and training-data version, inputs, OCR and classification confidence, agreement version, card outcome); and expand carefully across Android and iOS given their different permission and background-location behaviors. The lasting outcome was an omnichannel platform where retailer product data replaced custom payment integration, AI determined eligibility, existing systems managed identity and credit, virtual cards created interoperability, and browser and mobile gave the client control over distribution, decoupling business growth from engineering effort.

    Conversar no WhatsApp