<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/banks-talk-to-each-other-more-than-they-talk-to-you-dnyopn7hr" -->

---
title: Banks Talk to Each Other More Than They Talk to You
description: An explainer breaks down what actually happens behind a UPI or bank payment&#x27;s instant-looking checkmark: the request passes through an API gateway, core...
canonical: https://daily.dev/posts/banks-talk-to-each-other-more-than-they-talk-to-you-dnyopn7hr
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Banks Talk to Each Other More Than They Talk to You | daily.dev
og:description: An explainer breaks down what actually happens behind a UPI or bank payment&#x27;s instant-looking checkmark: the request passes through an API gateway, core...
og:url: https://daily.dev/posts/banks-talk-to-each-other-more-than-they-talk-to-you-dnyopn7hr
og:image: https://api.daily.dev/og/posts/dnyOPn7hR.png
og:image:alt: Banks Talk to Each Other More Than They Talk to You
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Banks Talk to Each Other More Than They Talk to You

**[RUBYLAND](https://daily.dev/sources/rubyla)** · 13 min read · 0 upvotes · 0 comments

## Summary

An explainer breaks down what actually happens behind a UPI or bank payment's instant-looking checkmark: the request passes through an API gateway, core banking system, national payment switch (like NPCI), fraud checks, and reconciliation jobs before money truly moves. It covers why banks route through a central switch instead of connecting directly or sharing one database, the difference between authorization, clearing, and settlement, why transaction IDs prevent double-charging on retries, why the Two Generals Problem causes payments to sit 'Pending', and why reconciliation continues silently even after a payment shows as successful.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.joshsoftware.com/2026/08/20/banks-talk-to-each-other-more-than-they-talk-to-you>

## Questions this post answers

### why does a UPI payment sometimes stay stuck on pending even after the money looks debited

A payment stays pending when the acknowledgement (ACK or NACK) from the receiving bank is delayed or lost somewhere in the chain, leaving the sender's system unable to safely confirm success or failure. This is a version of the Two Generals Problem in distributed systems. Rather than guessing, the systems query the transaction's current state using its Transaction ID until all parties reconcile and agree, which can take minutes to hours before the status flips to success.

_daily.dev surfaces explainers like this for developers debugging distributed payment state and reconciliation flows._

### what is the difference between authorization, clearing, and settlement in a bank payment

Authorization happens in milliseconds and is the hold plus the ACK that produces the checkmark on screen. Clearing happens shortly after, when the switch and both banks agree on the exact obligation the transaction created and file it with other transactions in the same cycle. Settlement happens last, often much later, when actual reserves move between banks' accounts at the central bank via netting.

_engineers designing payment flows can track these distinctions on daily.dev when researching clearing and settlement architecture._

### how do payment systems prevent a retried transaction from charging a customer twice

Every payment is assigned a unique Transaction ID before its first attempt, and any retry reuses that same Transaction ID instead of generating a new one. If a payment with that ID already exists, the duplicate request is detected and ignored rather than reprocessed, so a customer can retry as many times as needed but only gets charged once.

_developers building idempotent APIs can find grounding examples like this payment retry pattern on daily.dev._

## Similar posts on daily.dev

- [UPI: Anatomy of a Transaction](https://daily.dev/posts/upi-anatomy-of-a-transaction-dttdxcayd) · Hacker News · 0 upvotes · 0 comments
- [Rethinking Payment APIs at Merpay: The Exchange Abstraction](https://daily.dev/posts/rethinking-payment-apis-at-merpay-the-exchange-abstraction-qa9c8pgcd) · Mercari Engineering · 0 upvotes · 0 comments
- [The Hidden Life of a UPI ID](https://daily.dev/posts/the-hidden-life-of-a-upi-id-nt7mymv5g) · RUBYLAND · 0 upvotes · 0 comments

---

Tags: [#career](https://daily.dev/tags/career), [#fintech](https://daily.dev/tags/fintech), [#distributed-systems](https://daily.dev/tags/distributed-systems)

[View this post on daily.dev](https://daily.dev/posts/banks-talk-to-each-other-more-than-they-talk-to-you-dnyopn7hr)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Banks Talk to Each Other More Than They Talk to You","url":"https://daily.dev/posts/banks-talk-to-each-other-more-than-they-talk-to-you-dnyopn7hr","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/banks-talk-to-each-other-more-than-they-talk-to-you-dnyopn7hr"},"datePublished":"2026-08-20T09:54:51.408Z","dateModified":"2026-09-14T08:25:01.689Z","description":"An explainer breaks down what actually happens behind a UPI or bank payment's instant-looking checkmark: the request passes through an API gateway, core...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/f8fa681a21c1438b22cf09bd383d56ad?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/f8fa681a21c1438b22cf09bd383d56ad?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"RUBYLAND","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"RUBYLAND","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/rubyla","url":"https://daily.dev/sources/rubyla"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/banks-talk-to-each-other-more-than-they-talk-to-you-dnyopn7hr","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"career,fintech,distributed-systems","timeRequired":"PT13M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"RUBYLAND","item":"https://daily.dev/sources/rubyla"},{"@type":"ListItem","position":3,"name":"Banks Talk to Each Other More Than They Talk to You"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/banks-talk-to-each-other-more-than-they-talk-to-you-dnyopn7hr#faq","mainEntity":[{"@type":"Question","name":"why does a UPI payment sometimes stay stuck on pending even after the money looks debited","acceptedAnswer":{"@type":"Answer","text":"A payment stays pending when the acknowledgement (ACK or NACK) from the receiving bank is delayed or lost somewhere in the chain, leaving the sender's system unable to safely confirm success or failure. This is a version of the Two Generals Problem in distributed systems. Rather than guessing, the systems query the transaction's current state using its Transaction ID until all parties reconcile and agree, which can take minutes to hours before the status flips to success. daily.dev surfaces explainers like this for developers debugging distributed payment state and reconciliation flows."}},{"@type":"Question","name":"what is the difference between authorization, clearing, and settlement in a bank payment","acceptedAnswer":{"@type":"Answer","text":"Authorization happens in milliseconds and is the hold plus the ACK that produces the checkmark on screen. Clearing happens shortly after, when the switch and both banks agree on the exact obligation the transaction created and file it with other transactions in the same cycle. Settlement happens last, often much later, when actual reserves move between banks' accounts at the central bank via netting. engineers designing payment flows can track these distinctions on daily.dev when researching clearing and settlement architecture."}},{"@type":"Question","name":"how do payment systems prevent a retried transaction from charging a customer twice","acceptedAnswer":{"@type":"Answer","text":"Every payment is assigned a unique Transaction ID before its first attempt, and any retry reuses that same Transaction ID instead of generating a new one. If a payment with that ID already exists, the duplicate request is detected and ignored rather than reprocessed, so a customer can retry as many times as needed but only gets charged once. developers building idempotent APIs can find grounding examples like this payment retry pattern on daily.dev."}}]}
```

