Skip to main content

Flo / In development

Every COD order is an unsecured loan

Cash on delivery converts shoppers who would otherwise abandon. It also ships inventory to people who never intended to pay for it. Flo scores that risk at checkout and adds friction only where the risk justifies it.

The problem

Blanket COD rules cost you good orders

Most teams manage return-to-origin with static rules: a cart value ceiling, a pincode blocklist, COD off for new customers. Those rules are indiscriminate. They block genuine buyers to catch a minority, and the shoppers they turn away are the ones most likely to have converted.

Risk is not a property of the cart. It is a property of the shopper, the address, the session, and the history behind them. Flo scores those together and reserves friction for the orders that warrant it.

How it scores

Nine weighted signals, one score

Behavioural signals arrive from a lightweight browser SDK. Transactional and historical signals come from the merchant order record. Scoring happens server-side, so nothing about the model is exposed to the client.

Shopper RTO history

Prior return-to-origin rate for this phone number with this merchant.

Pincode risk

Observed RTO rate for the delivery pincode.

Order velocity

COD attempts from the same device or phone in the last 48 hours.

New shopper, high cart

First-time buyer placing an unusually large COD order.

Time on site

Session duration before reaching checkout.

Address copy-paste

Pasted rather than typed address, street, city, or pincode fields.

Category risk

Per-category RTO weighting the merchant configures.

Order time

Orders placed in the overnight window score differently.

Payment hesitation

Switching between prepaid and COD before submitting.

What happens at checkout

Four outcomes, thresholds you control

Each merchant sets their own thresholds. The default posture is permissive: friction is the exception, not the rule.

Allow COD

Order proceeds with no added friction. Most orders land here.

Verify OTP

One-time password to the shopper phone before COD is confirmed.

Validate payment

A token payment that is auto-refunded, proving the payment instrument is real.

Block COD

COD is withdrawn for this order. Prepaid remains available.

Cold start

A new shopper is not a risky shopper

A risk engine with no history defaults to suspicion, and that is exactly wrong on day one. Flo caps the score upward for first-time buyers and for merchants still building order volume, so a new storefront never hard-blocks the customers it most needs to keep.

Integration

Native where it matters, API-first everywhere else

Salesforce Commerce Cloud

Native cartridge. Risk evaluation runs server-to-server on signed requests from the payment hook, so no scoring logic sits in the browser.

Headless and custom checkouts

REST API for evaluation and verification, with a browser SDK under 15KB for the behavioural signals.

Mobile apps

The same API-first integration model supports mobile checkout implementations without a separate risk engine.

Status

In active development

Flo is not generally available. The core risk engine and staging API are running; challenge flows and the Salesforce Commerce Cloud cartridge are built while merchant-dashboard integration and end-to-end validation continue. We are evaluating design-partner fit with merchants that operate meaningful COD volume.