Banking 1405/06/11 8 min read 2 views

How banking software architecture actually works

One source of truth for money: document, unique id, queue, webhook — not three statuses.

✍️ Author امید ناصری
🔁 Share
How banking software architecture actually works

Article summary

One source of truth for money: document, unique id, queue, webhook — not three statuses.

Banking software architecture in practice is one source of truth for money. If core, gateway, and panel invent three statuses, support dies. This guide comes from KGSM’s fund banking and digital onboarding work, not a conference slide.

This guide — How banking software architecture actually works — is written from KGSM delivery work: scoped first versions, staged releases, and support after handoff.

Audience, risk, and how KGSM works

An architect who must design a finance or banking system without a second ledger

A payment layer apart from the document means endless matching and lying management numbers.

KGSM ties each transaction to a document with a unique id, uses queues and webhooks, and splits treasury from development.

The document at the centre

Every money event is a document or a status on a document. The gateway is a method. A wallet with no document makes audit theater. Internal ids map to gateway and core ids.

Keep money status on the document. A wallet apart from documents took three hours to match on a busy settlement.

Sync and partial failure

Webhooks can be late; user return can drop. Both must converge with a delayed inquiry. Queues for SMS and core posting stop gateway timeouts from duplicating orders. Bank cutoff hours belong in the design.

A gateway timeout without a queue duplicated orders. Map unique ids to the gateway.

Security and role split

Keys in env, not git. Logs without PAN. Viewing is not executing settlement. Bank test is not production. Backup before batch settlement files. That is architecture, not a later security phase.

Converge webhook and user return. Card data in logs made the incident unreportable.

Cutoff hours were ignored and the afternoon file was rejected. Queue payments.

Treat bank cutoff as domain, not ops folklore. A wallet apart from documents took three hours to match on a busy settlement.

A gateway timeout without a queue duplicated orders. Split treasury from developers.

Implementation checklist

  • Keep money status on the document.
  • Map unique ids to the gateway.
  • Converge webhook and user return.
  • Queue payments.
  • Treat bank cutoff as domain, not ops folklore.
  • Split treasury from developers.

Field scenario 1

A wallet apart from documents took three hours to match on a busy settlement.

Keep money status on the document.

Field scenario 2

A gateway timeout without a queue duplicated orders.

Map unique ids to the gateway.

Field scenario 3

Card data in logs made the incident unreportable.

Converge webhook and user return.

Field scenario 4

Cutoff hours were ignored and the afternoon file was rejected.

Queue payments.

Related KGSM pages

Continue with KGSM services: طراحی اپلیکیشن موبایل, اتوماسیون فرآیندهای سازمانی, سئو و بهینه‌سازی. For a scoped estimate, use the contact form.

When you apply this on a live team, write it as an operating rule, not a slide: Keep money status on the document. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Map unique ids to the gateway. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Converge webhook and user return. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Queue payments. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Treat bank cutoff as domain, not ops folklore. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Split treasury from developers. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: A wallet apart from documents took three hours to match on a busy settlement. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: A gateway timeout without a queue duplicated orders. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Card data in logs made the incident unreportable. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Cutoff hours were ignored and the afternoon file was rejected. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: A payment layer apart from the document means endless matching and lying management numbers. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: KGSM ties each transaction to a document with a unique id, uses queues and webhooks, and splits treasury from development. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: An architect who must design a finance or banking system without a second ledger Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Keep money status on the document. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Map unique ids to the gateway. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Converge webhook and user return. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Queue payments. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Treat bank cutoff as domain, not ops folklore. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Split treasury from developers. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: A wallet apart from documents took three hours to match on a busy settlement. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: A gateway timeout without a queue duplicated orders. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Card data in logs made the incident unreportable. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: Cutoff hours were ignored and the afternoon file was rejected. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: A payment layer apart from the document means endless matching and lying management numbers. Then assign an owner and a review date so the rule survives the first busy week.

When you apply this on a live team, write it as an operating rule, not a slide: KGSM ties each transaction to a document with a unique id, uses queues and webhooks, and splits treasury from development. Then assign an owner and a review date so the rule survives the first busy week.

Frequently asked questions

A microservice per bank? +
Only if team and traffic are truly separate. Most Iranian systems need one finance domain with gateway adapters.
Do you rewrite core banking? +
No — we integrate. Rewriting a core is another programme.
Architecture samples? +
The fund banking app and digital onboarding in the portfolio.

Keywords

#معماری نرم افزار بانکی #هسته بانک #تراکنش #KGSM

Recommended reading

View all