A SaaS team adds “Pay with crypto” to checkout.

The first test looks fine: create a wallet address, show a QR code, receive USDT, mark the order as paid.

Then production starts.

One customer sends the right amount on the wrong network. Another pays after the invoice expires. A third sends 99.80 USDT instead of 100 USDT. Support sees a transaction hash but cannot find the order. Finance sees funds received but cannot match them to an invoice. The backend receives the same webhook twice and unlocks the product twice.

That is the moment crypto payment integration stops being a QR-code feature and becomes a payment infrastructure problem.