# Handle out-of-stock and price failures

Keep checkouts from failing when inventory or prices change between feed refreshes.

Try to keep the rate at which shoppers attempt to buy a product and are told it’s unavailable at checkout below 5%. The right approach depends on how fast your inventory moves. You can combine approaches.

**More frequent feed refreshes:** For most sellers with relatively stable inventory, keeping your feed current on the [recommended cadence](https://docs.stripe.com/agentic-commerce/for-sellers.md#upload-feed) is enough to stay within the threshold.

**Real-time availability check:** Set up the [product price and availability hook](https://docs.stripe.com/agentic-commerce/for-sellers/hooks.md#product-price-availability), an endpoint Stripe calls immediately before a checkout completes to return the current price and confirm that the item is still in stock. It operates independently of your feed refresh frequency, and is particularly valuable if:

- Your inventory moves fast, such as flash sales or limited drops where items sell out in minutes.
- You sell on multiple channels and a single item can be purchased elsewhere between your feed refreshes.

When the hook is enabled, Stripe:

- Calls your endpoint on behalf of agents to query product availability
- Manages request rates so your systems aren’t overwhelmed
- Proactively calls the hook for items showing low inventory, so availability data stays current between feed refreshes

> Your product price and availability hook must respond within 4 seconds. A timeout on this hook causes Stripe to fall back to your feed data and continue the checkout. This differs from the approval hook behavior, where a timeout causes Stripe to decline the checkout.
