Core Bank

SELF-HOSTED · ТАНЫ СЕРВЕРТ АЖИЛЛАНА · ТАНЫ ӨГӨГДӨЛ SELF-HOSTED · RUNS ON YOUR SERVERS · YOUR DATA, NOBODY ELSE'S

Банкны цөм, жинхэнэ таных. Core banking that's really yours.

Данс, IBAN, давхар бичилттэй ledger, шилжүүлэг, hold, EMVCo QR, нэхэмжлэх, хуулга, EOD.
Нэг командаар өөрийн серверт суулгаж, HMAC REST API болон Go, Node, Java SDK-аар дуудна.
Нэвтрэлт, апп UI — танайх; мөнгө, дүрэм — энд.
Accounts, IBAN, a double-entry ledger, transfers, holds, EMVCo QR, invoices, statements, end-of-day.
Installed on your own server with one command, called through an HMAC REST API and Go, Node and Java SDKs.
Your app keeps login and UI — the money and the rules live here.

Гүйлгээ, харилцагчийн мэдээлэл хэзээ ч бидэн рүү явахгүй. Лиценз offline шалгагдана. No transaction or customer data ever leaves your servers. The license verifies offline.

Таны ledger. Таны данс. Таны сервер. Таны backup. Таны өгөгдөл. Your ledger. Your accounts. Your servers. Your backups. Your data.

Хурдан эхлэхQuick start

Бүх сонголтAll install options →
СУУЛГАХINSTALL

Нэг командаарOne-liner

Лицензийг шалгаж, image-ийг татаж, PostgreSQL 17 + core-server-ийг асааж, API түлхүүрүүдийг үүсгэнэ. Ойролцоогоор 2 минут.Verifies your license, downloads the image, starts PostgreSQL 17 + core-server and generates API keys. About two minutes.

$ curl -fsSL https://corebank.gedata.mn/install.sh | bash -s -- --license CBL1.…
==> Linux/amd64, Docker version 28.x
==> verifying the license with https://corebank.gedata.mn
==> license lic_20261022a1b2c3 — Your Bank LLC, production, bank code(s) 0098, valid until 2027-10-22
==> downloading core-server 0.5.0 (linux/amd64)
==> starting PostgreSQL + core-server

✔ Core Bank 0.5.0 is running (install)
  API        http://127.0.0.1:8090/v1/health
  API keys   ck_app · ck_admin   (saved in /opt/corebank/.env)

Linux amd64 / arm64 дээр Docker-тэй ажиллана. Дараа нь хувилбарааRuns on Linux amd64 / arm64 with Docker. Pin or switch releases later with --version 0.5.0 эсвэл лицензээor replace the key with --license CBL1.…-ээр солино..

Ledger юу баталдаг вэWhat the ledger guarantees

ДэлгэрэнгүйDetails →
"Мөнгөний хөдөлгөөн бүр Σдебит = Σкредит. Тэнцээгүй entry commit хийгдэхгүй.""Every movement balances: Σdebit = Σcredit. An unbalanced entry never commits."
@double-entry
"Posting append-only. Үлдэгдлийг шууд UPDATE хийх зам байхгүй.""Postings are append-only. There is no path that UPDATEs a balance directly."
@append-only
"Мөнгө int64 MNT. Float хаана ч алга.""Money is int64 MNT. No floats anywhere."
@int64-mnt
"Ижил Idempotency-Key дахин ирвэл анхны хариуг буцаана — мөнгө хоёр удаа хөдлөхгүй.""Same Idempotency-Key again returns the original answer — money never moves twice."
@idempotent
"Ledger данснууд ID-аар эрэмбэлэгдэж түгжигдэнэ — зэрэг гүйлгээнд deadlock үгүй.""Ledger accounts lock in ID order — concurrent transfers don't deadlock."
@for-update
"Бизнес өдөр Asia/Ulaanbaatar. EOD бүр trial balance-ийг шалгана.""Business days run on Asia/Ulaanbaatar. Every EOD checks the trial balance."
@eod

АшиглалтUse cases

Нэг ledger дээр банкны бүтээгдэхүүнүүд.Banking products on one ledger.

API харахSee the API →

WALLET · ACCOUNTS

Цахим түрийвч, харилцах дансDigital wallets & current accounts

Харилцагч бүрт IBAN-тай данс, үлдэгдэл, хуулга, KYC түвшнээр хязгаар, хамтран эзэмшигч.IBAN accounts per customer with balances, statements, KYC-tier limits and joint holders.

QR · MERCHANTS

QR төлбөр, нэхэмжлэхQR payments & invoices

EMVCo статик, динамик QR, мерчантын нэхэмжлэх үүсгэх, төлөх, цуцлах; event-ээр мэдэгдэнэ.EMVCo static and dynamic QR, merchant invoices you create, pay and cancel, announced as events.

LEDGER · GL

Оноо, шимтгэл, системийн постингPoints, fees & system postings

Урамшууллын онооны GL, шимтгэлийг GL-ээс төлөх, settlement shard, trial balance тайлан.Loyalty-point GLs, fees paid from a GL, sharded settlement accounts and trial-balance reports.

Юу хийдэг вэWhat it does

Давхар бичилтDouble-entry ledger

Бүх мөнгө нэг постингийн замаар. Append-only постинг, данс бүрийн үлдэгдэл ledger-ээс.All money goes through one posting path. Append-only postings, every balance derived from the ledger.

Данс ба IBANAccounts & IBAN

MN IBAN, 12 эсвэл 10 оронтой дугаар, салбар, сектор, хамтран эзэмшигч, frozen/closed төлөв.Mongolian IBANs, 12- or 10-digit numbers, branches, sectors, joint holders, freeze and close.

Шилжүүлэг ба holdTransfers & holds

Guard-тай шилжүүлэг, шимтгэл, hold/capture/release. available = ledger − held.Guarded transfers, fees, hold / capture / release. available = ledger − held.

EMVCo QR

Статик, динамик QR, нэхэмжлэх, QR decode, төлбөр.Static and dynamic QR, payment requests, QR decoding and payment.

KYC ба AMLKYC limits & AML

KYC түвшин × ангиллаар гүйлгээ, өдөр, сарын хязгаар; босго давсныг AML flag болгоно.Per-transaction, daily and monthly limits by KYC tier; large movements become AML flags.

Бүтээгдэхүүн, гэрээProducts & contracts

Хувилбартай бүтээгдэхүүний каталог; нөхцөл өөрчлөгдөхөд дахин зөвшөөрүүлэх гэрээ.A versioned product catalogue; contracts that ask for consent again when terms change.

EOD ба тайланEOD & reports

Автомат EOD, trial balance, GL үлдэгдэл, эргэлт, дансны хуулга.Automatic end-of-day, trial balance, GL balances, turnover and statements.

Idempotency

Мутацийн хариу ижил транзакцид хадгалагдана; ижил key + өөр body → 409.Responses commit with the mutation; same key with another body → 409.

Event ба webhookEvents & webhooks

Дараалсан event, HMAC гарын үсэгтэй webhook, эсвэл GET /v1/events.Ordered events, HMAC-signed webhooks, or poll GET /v1/events.

Танай стектэй ажилланаWorks with your stack

SDK харахExplore SDKs →
Go
Node.js
TypeScript
Java
OpenAPI 3.1
Webhooks
EMVCo QR
PostgreSQL
Docker
Kubernetes
Prometheus
Grafana
OpenTelemetry
Linux

Өөрийн хэлээр дуудна.Call it from your stack.

OpenAPI 3.1 гэрээ нь цорын ганц эх сурвалж. SDK бүр гарын үсэг, retry, idempotency-г өөрөө хийнэ.One OpenAPI 3.1 contract. Every SDK signs, retries and handles idempotency for you.

SDK хандалт авахGet SDK access

GO SDK

Зөвхөн stdlib, goroutine-safeStdlib only, goroutine-safe

c := walletcore.NewClient(url, keyID, secret)
acc, _ := c.CreateAccount(ctx, &walletcore.CreateAccountRequest{
    ExternalCustomerID: "cust-42", HolderName: "Бат Дорж"})

go 1.22+ · retry · typed errors

NODE / TS

ESM ба CommonJS, бүрэн төрөлтэйESM & CommonJS, fully typed

const core = new WalletCore({ baseUrl, keyId, secret });
await core.transfers.create(
  { from_account_id, to: iban, amount: 15_000 },
  { idempotencyKey: "order-1001" });

node 18+ · fetch · webhooks

JAVA

Builder API, Java 11+Builder API, Java 11+

WalletCoreClient core = WalletCoreClient.builder()
    .baseUrl(url).keyId(keyId).secret(secret).build();
Account a = core.accounts().create("cust-42", "Бат Дорж");

java 11+ · maven · jackson

REST · HMAC

SDK-гүйгээр ч болноOr plain HTTP

X-Core-Key: ck_app
X-Core-Timestamp: 1792656000
X-Core-Signature: hex(HMAC-SHA256(secret,
  ts\nMETHOD\npath\nhex(sha256(body))))

openapi 3.1 · ±300 s · test vectors

БүтэцArchitecture

ЛицензLicensing →

CORE-SERVERv0.5.0 · API 1.3.0

Мөнгө таны сүлжээнээс гарахгүйMoney never leaves your network

core-server нь таны дотоод сүлжээнд, өөрийн PostgreSQL-тэй ажиллана. corebank.gedata.mn-тэй зөвхөн суулгах, шинэчлэх үед холбогдож image татна — ажиллаж байхад гадагш нэг ч хүсэлт явахгүй.core-server runs inside your network with its own PostgreSQL. It reaches corebank.gedata.mn only to install or upgrade — at runtime nothing calls home.

Your app → HMAC REST → core-server → PostgreSQL

ТАНЫ СИСТЕМYOUR SYSTEM

Апп backend, back officeApp backend & back office

Нэвтрэлт, ПИН, push, UI — танайх. Core Bank-ийг HMAC түлхүүрээр, scope-той дуудна.Login, PIN, push and UI stay yours. Call Core Bank with scoped HMAC keys.

superapp · admin · reports

CORE-SERVER

Ledger, данс, дүрэмLedger, accounts, rules

Guard, хязгаар, AML, EOD, event. Prometheus /metrics, OpenTelemetry trace, healthcheck.Guards, limits, AML, EOD and events. Prometheus /metrics, OpenTelemetry traces, health checks.

:8090 API · :9090 ops

POSTGRESQL

Өөрийн DB walletcoreIts own DB walletcore

Таны сервер, таны backup. Уншилт replica-аас, бичилт primary-д. core-server audit ledger-ийг шалгана.Your server, your backups. Reads from replicas, writes to primary. core-server audit checks the ledger.

postgres 17 · replicas

Лиценз авахGet a license

Лиценз хүсэх.Request a license. Trial — интеграцийн тестэд, production — амьд мөнгөнд. Бид буцаж холбогдоно.Trial for integration testing, production for live money. We'll get back to you.

Лиценз хэрхэн ажилладагHow licensing works

Лиценз авахGet a license →

Core Bank-ийг Gerege Systems хөгжүүлж, Gerege Wallet-ийн production-д ажиллуулдаг. Лиценз нь Ed25519 гарын үсэгтэй CBL1.… түлхүүр — таны банкны код (CORE_BANK_CODE) болон хугацаатай холбогдох бөгөөд хуурамчаар үүсгэх боломжгүй.Core Bank is built by Gerege Systems and runs Gerege Wallet in production. A license is an Ed25519-signed CBL1.… key bound to your bank code (CORE_BANK_CODE) and a validity period — it cannot be forged.

core-server лицензийг интернэтгүйгээр, дотроо шалгана. Хугацаа дуусвал систем зогсохгүй: мэдээлэл уншина, зөвхөн шинэ гүйлгээ 402 license_required буцаана, өгөгдөл алга болохгүй. 30 хоногийн өмнөөс log болон Prometheus (walletcore_license_expiry_timestamp_seconds)-оор сануулна.core-server verifies the license offline. Expiry never takes you down: reads keep working, only new mutations answer 402 license_required, and no data is lost. Warnings start 30 days ahead in logs and in Prometheus (walletcore_license_expiry_timestamp_seconds).

Бидэнд юу ч илгээгдэхгүй: installer зөвхөн лиценз шалгаж image татах үед corebank.gedata.mn руу хандана. Сунгах — installer-ийг --license шинэ түлхүүртэй дахин ажиллуулна.Nothing is sent to us: the installer contacts corebank.gedata.mn only to check the license and download the image. To renew, re-run the installer with --license and the new key.

FAQ

Ямар сервер хэрэгтэй вэ?What server do I need?

Docker-тэй дурын Linux (amd64 эсвэл arm64). Эхлэхэд 2 vCPU, 4 GB RAM хангалттай; ачааллаар PostgreSQL-ээ томруулна.Any Linux with Docker (amd64 or arm64). 2 vCPU and 4 GB RAM is enough to start; scale PostgreSQL with your load.

Миний өгөгдөл хаана хадгалагдах вэ?Where is my data stored?

Зөвхөн таны сервер дээрх PostgreSQL-д. Gerege Systems-д ямар ч гүйлгээ, харилцагчийн мэдээлэл илгээгдэхгүй.Only in PostgreSQL on your server. No transaction or customer data is ever sent to Gerege Systems.

Нэвтрэлт, ПИН, апп UI орсон уу?Does it include login, PIN or an app UI?

Үгүй — эдгээр нь танай host системийнх. Core Bank нь мөнгө, данс, дүрмийг эзэмшиж, танай backend-ээс HMAC түлхүүрээр дуудагдана.No — those belong to your host system. Core Bank owns the money, accounts and rules, and is called by your backend with HMAC keys.

Шинэчлэлт танай интеграцийг эвдэх үү?Will upgrades break my integration?

Үгүй. v1 хүртэл API зөвхөн нэмэгдэнэ; хуучин талбар, код, event хэвээр ажиллана. DB migration автоматаар ажиллана.No. Until v1 the API only grows; existing fields, codes and events keep working. Migrations run automatically.

Ledger зөв эсэхийг яаж шалгах вэ?How do I check the ledger is right?

docker compose exec core /core-server audit — trial balance болон үлдэгдлийн зөрүүг шалгана. EOD бүр мөн шалгаж metric гаргана.docker compose exec core /core-server audit checks the trial balance and balance drift. Every EOD checks it too and exports a metric.

Интернэтгүй орчинд суулгаж болох уу?Can I install air-gapped?

Болно. Image-ийг интернэттэй машин дээр лицензээрээ татаж docker load хийнэ; лиценз offline шалгагдана. Холбогдоно уу.Yes. Download the image with your license on a connected machine and docker load it; the license verifies offline. Talk to us.