Requerying Pending Transfers on Watchtower

Requerying Pending Transfers on Watchtower

I redesigned how pending transfers are handled on Paystack's internal tool — reducing false failures and improving operational visibility.

I redesigned how pending transfers are handled on Paystack's internal tool — reducing false failures and improving operational visibility.

Product Design

Project Overview

Company: Paystack

Industry: Fintech

Product: Watchtower

My Role: Product Designer


Watchtower is Paystack’s internal operations tool. It’s where teams go to:

  • Investigate transactions

  • resolve transfer issues

  • support merchants

  • understand what’s happening behind the scenes

It’s nearly a decade old, and deeply embedded in how the teams work.

Designing for it meant improving things without breaking what already works.


The Problem

This project focused on pending transfers in Ghana, processed through GhIPSS.

Previously:

  • Transfers were requeried every minute for 20 minutes. But this caused issues — It was flagged by the processor.

There was a new rule which meant we could only automatically requery transfers (check the status of a transfer) once every five minutes with a max 3 in 15 mins.

The Gap

A transfer can remain pending for up to 2 hours before being marked successful. If we automatically mark any transfer without a success or failure status as failed after just 15 minutes, we risk:

  1. Sending incorrect transaction statuses to Merchants

  2. Crediting recipients without debiting the corresponding Merchant accounts, thereby leading to reconciliation issues and losing more money.

Solution

Instead of over-automating, we shifted control to the operations team.

I designed a flow that allowed OPs teams to:

  • Check the status (requery) of a pending transfer on Watchtower with a five minutes interval. This was controlled on the backend and only enabled every 5 minutes after the previous requery.

  • Log all requeries attempted on Watchtower

  • See the full details of the requery results, filter through the results and be able to export the results.

  • Show a 5mins countdown after a transfer is requeried to enable the ops team know when that particular transfer can be requeried.

Design Decisions

  • Controlled Requerying: Requeries are limited to once every 5 minutes, enforced by the system. This ensures compliance while maintaining functionality

  • Countdown for Feedback: After each requery, a 5-minute countdown shows when the next action is available.


  • Requery Logs: Every requery attempt is logged and visible.

Since requerying is specific to GHIPSS and pending transfers, to reduce clutter and prevent invalid actions, the “Check status” button is shown only when users filter for GHIPSS and pending transfers.

Impact

  • Reduced risk of false failed transfers

  • Improved accuracy of transaction statuses

  • Gave ops teams more control and visibility


My learnings

  • Proximity to users drives better product decisions: Early designs improved the system, but it was conversations with Operations and CX teams that revealed critical needs like filtering and exporting.

  • Small interaction details drive clarity: Features like countdowns, logs, and system feedback give users the context they need, reducing uncertainty and making complex workflows easier to navigate.

Enter Password

Create a free website with Framer, the website builder loved by startups, designers and agencies.