Skip to main content
India6 min readNovember 2026

How do I design a UPI payment success animation?

Short answer

Design the whole payment state machine, not just the success tick: processing, success, pending, failed and timed out. Show success only after your server confirms it, keep the success animation short (about one second) with the amount and payee clearly visible, and make pending and failure states as clear as success. Users screenshot these screens as proof, so the final frame must be readable and stable.

Core Takeaway

  • States: processing, success, pending, failed, timed out
  • Never show success before the payment is confirmed
  • Final frame: amount, payee, time and reference ID, readable and still
  • Keep the animation short; sound and haptics are optional extras
  • Design pending as carefully as success

In India, a payment success screen is not only feedback. Shopkeepers glance at it, and users screenshot it as proof. A good animation builds trust; a misleading one destroys it.

Model the states

UPI payments can succeed, fail or stay pending for a while. Design each one: a processing state that shows progress without fake percentages; a success state; a pending state that explains what happens next; a failure state with a clear reason and next step; and a timeout state.

Only animate truth

Trigger the success animation from the confirmed server response, not when the user taps Pay. If the status is unknown, show pending. Celebrating a payment that later fails is worse than a slow screen.

The success moment

A short check or tick, about 600 ms to 1 s, then a still screen with the amount, payee name, date and time and UPI reference ID. Keep text static while it animates so screenshots are readable. Haptics and a short sound, if used, should be subtle and respect the phone's silent mode.

Accessibility

Announce the result to screen readers, do not rely on colour alone (green vs red), and use plain words: "Paid ₹250 to Ravi Stores".

Building it

This is a natural fit for a state machine: inputs such as status set by your code drive which animation plays. Rive and ExodeUI both work this way, so the designer's states and the developer's status values match. We make ExodeUI, which is built in India.

Frequently asked questions

How long should a payment success animation be?

About one second, then a still, readable confirmation screen.

Should I add a sound on payment success?

It can help in noisy shops, but keep it short, optional and silent when the phone is on silent.

What should a pending payment screen say?

That the payment is being confirmed, that money is safe, and when the user will know. Offer a way to check status.

Can I reuse one animation for web and app?

Yes, if you use a runtime format with players on both, such as Lottie, Rive or ExodeUI.

Related Guides & Examples

Build the payment state machine

Design processing, success, pending and failure in one ExodeUI file and drive it from your status code.

Learn about state machines
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →