Sistem
Veritabanı
Tek bir MSSQL 2022 veritabanı hem Public API hem batch tarafından paylaşılır. Şema kod-öncelikli (EF Core 10) tanımlanır ve tek yerden (FinevoConnect.Yos.Shared.Persistence) yönetilir. Her tablonun altındaki N kolon satırını açarak alanları (ad + tip) görebilirsin.
Neden tek DB? API ile batch, niyet kutusu ve şifreli token'lar üzerinden aynı veritabanı ile haberleşir; ayrı mesaj kuyruğuna gerek kalmadan işlem-tutarlı köprü kurulur.
Kullanıcı & Kimlik
Applicationsİstemci uygulamalar — X-App-Key başlığıyla kimliğini kanıtlayan taraflar.
6 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Birincil anahtar (uygulama benzersiz kimliği) |
Name | nvarchar(100) | Uygulama adı (benzersiz) |
AppKeyHash | nvarchar(64) | Uygulama anahtarının özeti (ham anahtar saklanmaz; benzersiz) |
Status | nvarchar(20) | Uygulama durumu (aktif/askıya alınmış) |
CreateTime | datetime2 | Kayıt oluşturulma zamanı |
UpdateTime | datetime2 | Son güncellenme zamanı |
UsersSon kullanıcılar — uygulamanın bildirdiği kullanıcı anahtarı + müşteri numarası ikilisiyle tanınır.
9 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Birincil anahtar (kullanıcı benzersiz kimliği) |
ApplicationId | uniqueidentifier | Kullanıcının ait olduğu istemci uygulama (FK) |
UserKey | nvarchar(64) | Uygulamanın kullanıcı için verdiği anahtar (userKey) |
CustomerNo | nvarchar(32) | Müşteri numarası (customerNo). ApplicationId + UserKey + CustomerNo üçlüsü benzersizdir |
DisplayName null | nvarchar(200) | Kullanıcının görünen adı (isteğe bağlı) |
PreferredLocale | nvarchar(8) | Tercih edilen dil/yerel (orn. tr, en) |
Status | nvarchar(20) | Hesap durumu (aktif/askıya alınmış) |
CreateTime | datetime2 | Kayıt oluşturulma zamanı |
UpdateTime | datetime2 | Son güncellenme zamanı |
ParametersAnahtar-değer ayar deposu — uygulama anahtarları (auth.app.*.key) burada yönetilir, açılışta Applications ile eşitlenir.
5 kolon
| Kolon | Tip | Açıklama |
|---|
Key PK | nvarchar(200) | Parametre anahtarı (örn. auth.app.dev-app.key) |
Value | nvarchar(max) | Parametre değeri |
Description null | nvarchar(500) | Açıklama |
CreateTime | datetime2 | Kayıt oluşturulma zamanı |
UpdateTime | datetime2 | Son güncellenme zamanı |
RefreshTokensOturum yenileme token'ları — çıkışta/iptalde geçersiz kılınır.
6 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Birincil anahtar (benzersiz kimlik) |
UserId | uniqueidentifier | Token sahibi kullanıcı kimliği (FK) |
TokenHash | nvarchar(128) | Yenileme tokeninin özeti (ham değer saklanmaz) |
ExpireTime | datetime2 | Tokenin geçerlilik bitiş zamanı |
RevokeTime null | datetime2 | İptal edildiyse iptal zamanı (bos ise aktif) |
CreateTime | datetime2 | Token oluşturulma zamanı |
Bankalar & Bağlantılar
HhsBanka ana verisi — kod, ad, temel adres, olay aboneliği referansı.
12 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Birincil anahtar (banka/HHS benzersiz kimliği) |
HhsCode | nvarchar(50) | Bankanın OHVPS katılımcı kodu (hhsKod) |
Name | nvarchar(255) | Banka/HHS görünen adı |
LogoUrl null | nvarchar(500) | Banka logo adresi (isteğe bağlı) |
BaseUrl | nvarchar(500) | Bankanın OHVPS API kok adresi |
Status | nvarchar(20) | HHS durumu (etkin/devre dışı) |
OhvpsClientCertRef | nvarchar(255) | Outbound mTLS istemci sertifikası referansı |
JwksUrl null | nvarchar(500) | Bankanın JWS doğrulama anahtar (JWKS) adresi |
OhvpsYosKod | nvarchar(50) | Bu YOS için gönderilen katılımcı kodu (yosKod) |
EventSubscriptionReference null | nvarchar(64) | Olay bildirim abonelik referansı |
CreateTime | datetime2 | Kayıt oluşturulma zamanı |
UpdateTime | datetime2 | Son güncellenme zamanı |
HhsConnectionsBir kullanıcının bir bankaya rızası — durum, şifreli token'lar, GKD durumu, sabit GroupId, RowVersion.
27 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Birincil anahtar (bağlantı/rıza benzersiz kimliği) |
UserId | uniqueidentifier | Bağlantıyı açan kullanıcı kimliği (FK) |
HhsId | uniqueidentifier | Bağlanılan banka/HHS kimliği (FK) |
KeysetSeq | bigint | Keyset sayfalama için artan sıra değeri |
ConsentReference null | nvarchar(64) | Bankadaki rıza numarası (rizaNo) |
ConsentStatus | nvarchar(20) | Rıza/bağlantı durumu (bekliyor/yetkili/bağlı/iptal...) |
ConsentType | nvarchar(30) | Rıza tipi (hesap bilgisi / ödeme emri) |
IdentityType | nvarchar(10) | Kimlik tipi (TCKN, pasaport vb.) |
IdentityValueEncrypted | nvarchar(1024) | Kullanıcı kimlik değeri (PII, şifreli) |
PersonIdentityValueEncrypted null | nvarchar(1024) | Yetkili gerçek kişi kimliği (şifreli) — kurumsal rızada |
CustomerReference null | nvarchar(100) | Bankadaki müşteri referansı |
AuthorizationCodeExpireTime null | datetime2 | Yetkilendirme kodunun son geçerlilik zamanı |
AccessTokenEncrypted null | nvarchar | Bankadan alınan erişim tokeni (şifreli) |
AccessTokenExpireTime null | datetime2 | Erişim tokeninin geçerlilik bitişi |
RefreshTokenEncrypted null | nvarchar | Bankadan alınan yenileme tokeni (şifreli) |
RefreshTokenExpireTime null | datetime2 | Yenileme tokeninin geçerlilik bitişi |
StateCode null | nvarchar(128) | GKD akışı için geçici state değeri |
AuthMethod | nvarchar(20) | Kullanıcı yönlendirme yöntemi (GKD metodu) |
AuthorizationUrl null | nvarchar(1000) | Kullanıcıyı bankaya yönlendiren yetkilendirme adresi |
CreateTime | datetime2 | Kayıt oluşturulma zamanı |
UpdateTime | datetime2 | Son güncellenme zamanı |
ConnectTime null | datetime2 | Bağlantının bağlı duruma geçtiği zaman |
ConsentExpireTime null | datetime2 | Rızanın geçerlilik bitiş zamanı |
CancelDetailCode null | nvarchar(8) | İptal detay/neden kodu |
RowVersion null | rowversion | Eşzamanlılık sürüm damgası (rowversion) |
ConsentStatusSyncTime null | datetime2 | Rıza durumunun bankadan son senkron zamanı |
GroupId | nvarchar(36) | İlk rızada üretilen, tüm isteklerde sabit grup kimliği |
ConnectionPermissionsBağlantı başına verilen izinler (hesap/bakiye/işlem/kart).
3 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Birincil anahtar (benzersiz kimlik) |
HhsConnectionId | uniqueidentifier | İlgili bağlantı/rıza kimliği (FK) |
PermissionCode | nvarchar(30) | Verilen izin kodu (OHVPS yetki tipi) |
HhsQueryQuotaBağlantı + sorgu tipi başına oran sınırı sayacı.
8 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Birincil anahtar (benzersiz kimlik) |
HhsConnectionId | uniqueidentifier | İlgili bağlantı/rıza kimliği (FK) |
QueryKind | nvarchar(30) | Sorgu türü (hesap/bakiye/işlem vb.) |
WindowStart | datetime2 | Kota penceresinin başlangıç zamanı |
ResetTime | datetime2 | Sayacın sıfırlanacağı zaman |
CallCount | int | Pencere içinde yapılan çağrı sayısı |
Limit | int | Pencere başına izinli azami çağrı sayısı |
LastCallTime null | datetime2 | Son çağrının yapıldığı zaman |
Hesaplar & İşlemler
AccountsBanka hesapları — IBAN (maskeli+şifreli), tür, bakiye, son senkron.
23 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Hesap kayıt kimliği (PK) |
HhsConnectionId | uniqueidentifier | Bağlı olduğu HHS bağlantısı |
AccountReference | nvarchar(64) | HHS tarafı hesap referansı |
IbanMasked | nvarchar(34) | Maskeli IBAN (gösterim için) |
IbanEncrypted null | nvarchar(1024) | Tam IBAN (şifreli, PII) |
AccountType | nvarchar(20) | Hesap türü |
Currency | nvarchar(3) | Hesap para birimi |
Title | nvarchar(255) | Hesap adı/başlığı |
Status | nvarchar(10) | Hesap durumu |
OpenTime null | datetime2 | Hesap açılış zamanı |
Segment null | nvarchar(20) | Müşteri segmenti |
UsedCreditAmount null | decimal(18,2) | Kullanılan kredi tutarı |
CreditIncluded null | nvarchar(5) | Krediye dahil mi bilgisi |
LastSyncTime | datetime2 | Son senkronizasyon zamanı |
BalanceAvailable | decimal(18,2) | Kullanılabilir bakiye |
BalanceBlocked null | decimal(18,2) | Bloke bakiye |
BalanceCurrency | nvarchar(3) | Bakiye para birimi |
BalanceCurrent | decimal(18,2) | Güncel bakiye |
BalanceUpdateTime | datetime2 | Bakiye güncelleme zamanı |
TransactionSyncTime null | datetime2 | İşlemlerin son senkron zamanı |
Alias null | nvarchar(50) | Kullanıcı takma adı |
BranchName null | nvarchar(50) | Şube adı |
ProductName null | nvarchar(140) | Ürün adı |
TransactionsHesap işlem geçmişi — imleç sayfalaması için indeksli.
19 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | İşlem kayıt kimliği (PK) |
AccountId | uniqueidentifier | Ait olduğu hesap |
KeysetSeq | bigint | İmleç sayfalaması için sıra numarası |
TransactionReference | nvarchar(64) | HHS tarafı işlem referansı |
ReferenceNo null | nvarchar(64) | İşlem referans numarası |
Direction | nvarchar(10) | İşlem yönü (borç/alacak) |
Amount | decimal(18,2) | İşlem tutarı |
Currency | nvarchar(3) | İşlem para birimi |
TransactionDate | datetime2 | İşlem tarihi |
BalanceAfter null | decimal(18,2) | İşlem sonrası bakiye |
Channel null | nvarchar(50) | İşlem kanalı |
TransactionType null | nvarchar(50) | İşlem türü |
TransactionPurpose null | nvarchar(50) | İşlem amacı |
PaymentSystemReference null | nvarchar(64) | Ödeme sistemi referansı |
Description null | nvarchar(500) | İşlem açıklaması |
CounterpartyName null | nvarchar(255) | Karşı taraf adı |
CounterpartyIbanMasked null | nvarchar(34) | Karşı taraf maskeli IBAN |
CounterpartyIdentityMasked null | nvarchar(50) | Karşı taraf maskeli kimlik (PII) |
CreateTime | datetime2 | Kayıt oluşturulma zamanı |
Kartlar (ana + alt tablolar)
CardsKredi/banka kartları — maskeli PAN, limit, durum, ekstre tipi.
17 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Kart kayıt kimliği (PK) |
HhsConnectionId | uniqueidentifier | Bağlı olduğu HHS bağlantısı |
CardReference | nvarchar(64) | HHS tarafı kart referansı |
PanMasked | nvarchar(25) | Maskeli kart numarası (tam PAN saklanmaz) |
CardType | nvarchar(10) | Kart türü |
ProductName null | nvarchar(100) | Kart ürün adı |
HolderName null | nvarchar(255) | Kart sahibi adı (PII) |
Status | nvarchar(10) | Kart durumu |
Currency null | nvarchar(3) | Kart para birimi |
LastSyncTime | datetime2 | Son senkronizasyon zamanı |
Alias null | nvarchar(100) | Kullanıcı takma adı |
CommercialTitle null | nvarchar(255) | Ticari unvan |
Form null | nvarchar(10) | Kart formu (fiziksel/sanal) |
PrimaryPanMasked null | nvarchar(25) | Ana kart maskeli numarası |
Scheme null | nvarchar(15) | Kart şeması (Visa/Mastercard vb.) |
Segment null | nvarchar(15) | Kart segmenti |
SubType null | nvarchar(20) | Kart alt türü |
CardDetailsKart ek bilgileri — borç, kullanılabilir limit, kesim/ödeme tarihleri.
20 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Kart detay kimliği (PK) |
CardId | uniqueidentifier | Ait olduğu kart |
CreditLimit null | decimal(18,2) | Kredi kartı limiti |
AvailableLimit null | decimal(18,2) | Kullanılabilir limit |
CashLimit null | decimal(18,2) | Nakit avans limiti |
AvailableCashLimit null | decimal(18,2) | Kullanılabilir nakit limiti |
StatementDebt null | decimal(18,2) | Ekstre borcu |
MinimumPayment null | decimal(18,2) | Asgari ödeme tutarı |
RemainingDebt null | decimal(18,2) | Kalan borç |
Currency null | nvarchar(3) | Para birimi |
DueDate null | datetime2 | Son ödeme tarihi |
StatementDate null | datetime2 | Ekstre kesim tarihi |
NextStatementDate null | datetime2 | Sonraki ekstre tarihi |
LastSyncTime | datetime2 | Son senkronizasyon zamanı |
NextDueDate null | datetime2 | Sonraki son ödeme tarihi |
PeriodTransactionTotal null | decimal(18,2) | Dönem işlem toplamı |
RemainingInstallmentTotal null | decimal(18,2) | Kalan taksit toplamı |
RemainingMinimumPayment null | decimal(18,2) | Kalan asgari ödeme |
RemainingStatementDebt null | decimal(18,2) | Kalan ekstre borcu |
StatementCurrency null | nvarchar(3) | Ekstre para birimi |
CardTransactionsKart işlem geçmişi (sayfalı).
25 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Kart işlemi kimliği (PK) |
CardId | uniqueidentifier | Ait olduğu kart |
KeysetSeq | bigint | İmleç sayfalaması için sıra numarası |
TransactionReference | nvarchar(64) | HHS tarafı işlem referansı |
Direction | nvarchar(10) | İşlem yönü (borç/alacak) |
Amount | decimal(18,2) | İşlem tutarı |
Currency | nvarchar(3) | İşlem para birimi |
TransactionDate | datetime2 | İşlem tarihi |
PostingDate null | datetime2 | Hesaba yansıma tarihi |
Description null | nvarchar(500) | İşlem açıklaması |
MerchantName null | nvarchar(255) | Üye iş yeri adı |
MerchantCategoryCode null | nvarchar(20) | Üye iş yeri kategori kodu (MCC) |
Channel null | nvarchar(50) | İşlem kanalı |
TransactionType null | nvarchar(50) | İşlem türü |
PointAmount null | decimal(18,2) | Kazanılan puan tutarı |
IsInstallment | bit | Taksitli işlem mi |
CreateTime | datetime2 | Kayıt oluşturulma zamanı |
InstallmentCount null | int | Taksit sayısı |
InstallmentPeriod null | int | Taksit dönemi |
InstallmentTotalAmount null | decimal(18,2) | Taksitli işlem toplam tutarı |
OriginalAmount null | decimal(18,2) | Orijinal işlem tutarı |
OriginalCurrency null | nvarchar(3) | Orijinal para birimi |
PeriodValue | int | Dönem değeri |
PointStatus null | nvarchar(10) | Puan durumu |
PointUnit null | nvarchar(50) | Puan birimi |
CardInstallmentsTaksitli işlem kayıtları (ÖHVPS Tablo 21).
12 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Taksit kayıt kimliği (PK) |
CardTransactionId null | uniqueidentifier | İlişkili kart işlemi |
InstallmentNumber null | int | Taksit sıra numarası |
TotalInstallments null | int | Toplam taksit sayısı |
Amount | decimal(18,2) | Taksit tutarı |
RemainingAmount null | decimal(18,2) | Kalan taksit tutarı |
Currency null | nvarchar(3) | Para birimi |
DueDate null | datetime2 | Taksit son ödeme tarihi |
IsPaid | bit | Taksit ödendi mi |
CreateTime | datetime2 | Kayıt oluşturulma zamanı |
CardId null | uniqueidentifier | Ait olduğu kart |
PeriodValue null | int | Dönem değeri |
CardPointsKart puan/ödül bakiyeleri (ÖHVPS Tablo 23).
8 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Puan kayıt kimliği (PK) |
CardId | uniqueidentifier | Ait olduğu kart |
PointType | nvarchar(50) | Puan türü |
Description null | nvarchar(255) | Puan açıklaması |
Balance | decimal(18,2) | Puan bakiyesi |
Currency null | nvarchar(10) | Puan para birimi |
ExpireTime null | datetime2 | Puan son kullanma zamanı |
LastSyncTime | datetime2 | Son senkronizasyon zamanı |
CardStatementTypesEkstre tipi/kesim bilgileri (ÖHVPS Tablo 25).
12 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Ekstre türü kimliği (PK) |
CardId | uniqueidentifier | Ait olduğu kart |
StatementTypeCode | nvarchar(50) | Ekstre türü kodu |
Description null | nvarchar(255) | Ekstre açıklaması |
PeriodStart null | datetime2 | Dönem başlangıç tarihi |
PeriodEnd null | datetime2 | Dönem bitiş tarihi |
StatementDebt null | decimal(18,2) | Ekstre borcu |
MinimumPayment null | decimal(18,2) | Asgari ödeme tutarı |
DueDate null | datetime2 | Son ödeme tarihi |
Currency null | nvarchar(3) | Para birimi |
CreateTime | datetime2 | Kayıt oluşturulma zamanı |
Status null | nvarchar(10) | Ekstre durumu |
Ödemeler
PaymentOrdersTek seferlik ödeme emirleri — durum, ödeme referansı, ödeme sistemi (banka belirler).
39 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Ödeme emri kimliği (PK) |
UserId | uniqueidentifier | Sahip kullanıcı kimliği |
HhsConnectionId | uniqueidentifier | Banka (HHS) bağlantı kimliği |
SenderAccountId null | uniqueidentifier | Gönderen hesap kimliği |
KeysetSeq | bigint | Keyset sayfalama sıra no |
PaymentOrderReference null | nvarchar(64) | HHS ödeme emri referansı |
ConsentReference null | nvarchar(64) | HHS rıza referansı |
AccessTokenEncrypted null | nvarchar | Erişim token (şifreli) |
AccessTokenExpireTime null | datetime2 | Erişim token bitiş zamanı |
RefreshTokenEncrypted null | nvarchar | Yenileme token (şifreli) |
RefreshTokenExpireTime null | datetime2 | Yenileme token bitiş zamanı |
AuthorizationUrl null | nvarchar | Yetkilendirme yönlendirme adresi |
SenderName null | nvarchar(255) | Gönderen adı |
SenderIbanMasked null | nvarchar(34) | Gönderen IBAN (maskeli) |
SenderIbanEncrypted null | nvarchar(1024) | Gönderen IBAN (şifreli) |
RecipientName | nvarchar(255) | Alıcı adı |
RecipientIbanMasked | nvarchar(34) | Alıcı IBAN (maskeli) |
RecipientIbanEncrypted null | nvarchar(1024) | Alıcı IBAN (şifreli) |
Amount | decimal(18,2) | Ödeme tutarı |
Currency | nvarchar(3) | Para birimi |
PaymentSystem null | nvarchar(20) | Ödeme sistemi (H/F/E) |
PaymentSystemReference null | nvarchar(64) | Ödeme sistemi referansı |
Description null | nvarchar(500) | Ödeme açıklaması |
PurposeCode null | nvarchar(20) | Ödeme amaç kodu |
ReferenceInfo null | nvarchar(255) | Referans bilgisi |
ExpectedPaymentTime null | datetime2 | Beklenen ödeme zamanı |
Status | nvarchar(20) | Ödeme emri durumu |
StatusCode null | nvarchar(10) | HHS durum kodu |
RejectionCode null | nvarchar(20) | Ret kodu |
PaymentOrderPlaceTime null | datetime2 | Emrin verildiği zaman |
StatusChangeTime null | datetime2 | Durum değişim zamanı |
IdempotencyKey null | nvarchar(100) | İdempotency anahtarı |
StateCode null | nvarchar(128) | GKD state (callback eşleştirme) |
CreateTime | datetime2 | Oluşturma zamanı |
UpdateTime | datetime2 | Güncelleme zamanı |
CompleteTime null | datetime2 | Tamamlanma zamanı |
RowVersion null | rowversion | Eşzamanlılık sürüm damgası |
AuthorizationCompletionTime null | datetime2 | Yetkilendirme tamamlanma son zamanı |
ConsentCreatedTime null | datetime2 | Rıza oluşturma zamanı |
RecurringPaymentsDüzenli ödeme talimatları — sıklık, tutar, ödeme sayısı.
35 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Düzenli ödeme kimliği (PK) |
UserId | uniqueidentifier | Sahip kullanıcı kimliği |
HhsConnectionId | uniqueidentifier | Banka (HHS) bağlantı kimliği |
SenderAccountId null | uniqueidentifier | Gönderen hesap kimliği |
KeysetSeq | bigint | Keyset sayfalama sıra no |
InstructionReference null | nvarchar(64) | HHS talimat referansı |
ConsentReference null | nvarchar(64) | HHS rıza referansı |
AccessTokenEncrypted null | nvarchar | Erişim token (şifreli) |
AccessTokenExpireTime null | datetime2 | Erişim token bitiş zamanı |
RefreshTokenEncrypted null | nvarchar | Yenileme token (şifreli) |
RefreshTokenExpireTime null | datetime2 | Yenileme token bitiş zamanı |
AuthorizationUrl null | nvarchar | Yetkilendirme yönlendirme adresi |
StateCode null | nvarchar(128) | GKD state (callback eşleştirme) |
RecipientName | nvarchar(255) | Alıcı adı |
RecipientIbanMasked | nvarchar(34) | Alıcı IBAN (maskeli) |
RecipientIbanEncrypted | nvarchar(1024) | Alıcı IBAN (şifreli) |
Amount null | decimal(18,2) | Ödeme tutarı |
Currency null | nvarchar(3) | Para birimi |
PaymentSystem null | nvarchar(20) | Ödeme sistemi (H/F/E) |
ReferenceInfo null | nvarchar(255) | Referans bilgisi |
Frequency | nvarchar(20) | Ödeme sıklığı (aylık/haftalık...) |
PaymentCount null | int | Toplam ödeme adedi |
InstructionRemark null | nvarchar(180) | Talimat notu |
StartDate | datetime2 | Başlangıç tarihi |
EndDate null | datetime2 | Bitiş tarihi |
NextExecutionDate null | datetime2 | Sonraki icra tarihi |
ExecutionCount null | int | Gerçekleşen icra sayısı |
Status | nvarchar(24) | Düzenli ödeme durumu |
CreateTime | datetime2 | Oluşturma zamanı |
UpdateTime | datetime2 | Güncelleme zamanı |
AuthorizationCompletionTime null | datetime2 | Yetkilendirme tamamlanma son zamanı |
ConsentCreatedTime null | datetime2 | Rıza oluşturma zamanı |
Description null | nvarchar(500) | Ödeme açıklaması |
PurposeCode null | nvarchar(20) | Ödeme amaç kodu |
SenderName null | nvarchar(255) | Gönderen adı |
RecurringPaymentExecutionsDüzenli ödemenin her bir gerçekleşme kaydı.
11 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Düzenli ödeme icra kimliği (PK) |
RecurringPaymentId | uniqueidentifier | Bağlı düzenli ödeme kimliği |
SequenceNo null | int | İcra sıra numarası |
PaymentOrderReference null | nvarchar(64) | İlgili ödeme emri referansı |
ScheduledDate null | datetime2 | Planlanan işlem tarihi |
ActualAmount null | decimal(18,2) | Gerçekleşen tutar |
ActualTime null | datetime2 | Gerçekleşme zamanı |
StatusCode null | nvarchar(20) | İcra durum kodu |
ExecuteTime | datetime2 | İcra kaydı zamanı |
Status | nvarchar(20) | Ödeme emri durumu |
Amount | decimal(18,2) | Planlanan tutar |
ForwardDatedPaymentsİleri tarihli ödemeler — planlanan işlem tarihi, durum.
30 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | İleri tarihli ödeme kimliği (PK) |
UserId | uniqueidentifier | Sahip kullanıcı kimliği |
HhsConnectionId | uniqueidentifier | Banka (HHS) bağlantı kimliği |
SenderAccountId null | uniqueidentifier | Gönderen hesap kimliği |
KeysetSeq | bigint | Keyset sayfalama sıra no |
InstructionReference null | nvarchar(64) | HHS talimat referansı |
ConsentReference null | nvarchar(64) | HHS rıza referansı |
AccessTokenEncrypted null | nvarchar | Erişim token (şifreli) |
AccessTokenExpireTime null | datetime2 | Erişim token bitiş zamanı |
RefreshTokenEncrypted null | nvarchar | Yenileme token (şifreli) |
RefreshTokenExpireTime null | datetime2 | Yenileme token bitiş zamanı |
AuthorizationUrl null | nvarchar | Yetkilendirme yönlendirme adresi |
StateCode null | nvarchar(128) | GKD state (callback eşleştirme) |
RecipientName | nvarchar(255) | Alıcı adı |
RecipientIbanMasked | nvarchar(34) | Alıcı IBAN (maskeli) |
RecipientIbanEncrypted | nvarchar(1024) | Alıcı IBAN (şifreli) |
Amount | decimal(18,2) | Ödeme tutarı |
Currency | nvarchar(3) | Para birimi |
PaymentSystem null | nvarchar(20) | Ödeme sistemi (H/F/E) |
ExecutionDate | datetime2 | Planlanan işlem tarihi |
Status | nvarchar(24) | İleri tarihli ödeme durumu |
CreateTime | datetime2 | Oluşturma zamanı |
UpdateTime | datetime2 | Güncelleme zamanı |
RowVersion null | rowversion | Eşzamanlılık sürüm damgası |
AuthorizationCompletionTime null | datetime2 | Yetkilendirme tamamlanma son zamanı |
ConsentCreatedTime null | datetime2 | Rıza oluşturma zamanı |
Description null | nvarchar(500) | Ödeme açıklaması |
PurposeCode null | nvarchar(20) | Ödeme amaç kodu |
ReferenceInfo null | nvarchar(255) | Referans bilgisi |
SenderName null | nvarchar(255) | Gönderen adı |
Altyapı & Güvenilirlik
SyncIntentsNiyet kutusu (outbox) — API'nin batch'e devrettiği banka işleri. Durum + FIFO sıra.
14 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Senkron niyeti birincil anahtarı |
HhsConnectionId | uniqueidentifier | İlgili HHS bağlantı kimliği |
IntentKind | nvarchar(64) | Niyet tipi (consent_create/authorization_complete/consent_cancel...) |
Status | nvarchar(20) | İşlenme durumu (pending/dispatched/consumed/failed) |
Payload | nvarchar | Is yükü (PSU bağlamı + trace, JSON) |
GroupId null | nvarchar(64) | İşlem gruplama kimliği |
TraceId null | nvarchar(64) | İzleme (correlation) kimliği |
AttemptCount | int | Deneme sayısı |
LastError null | nvarchar(1000) | Son hata mesajı |
NextAttemptTime null | datetime2 | Sonraki deneme zamanı |
CreateTime | datetime2 | Oluşturulma zamanı |
DispatchTime null | datetime2 | Batch'e gönderilme zamanı |
ConsumeTime null | datetime2 | Tüketilme (işlenme) zamanı |
RowVersion null | rowversion | İyimser kilit sürüm damgası |
OutboxOlay yayını kayıtları — en az bir kez teslim.
11 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Outbox olayı birincil anahtarı |
EventType | nvarchar(100) | Olay tipi |
AggregateType | nvarchar(100) | Kaynak (aggregate) tipi |
AggregateId | nvarchar(64) | Kaynak (aggregate) kimliği |
Payload | nvarchar | Olay is yükü (JSON) |
Status | nvarchar(20) | Gönderim durumu (pending/inflight/delivered/dead) |
Attempts | int | Deneme sayısı |
NextAttemptTime | datetime2 | Sonraki deneme zamanı |
LastError null | nvarchar(1000) | Son hata mesajı |
CreateTime | datetime2 | Oluşturulma zamanı |
SendTime null | datetime2 | Gönderilme zamanı |
OutboxConsumed'İşlendi' işareti — çift işlem engeli (idempotency).
3 kolon
| Kolon | Tip | Açıklama |
|---|
EventId PK | uniqueidentifier | Tüketilen olay kimliği |
Consumer PK | nvarchar(100) | Tüketici adı (idempotency için) |
ConsumeTime | datetime2 | Tüketilme zamanı |
IdempotencyIdempotency-Key → yanıt eşlemesi — aynı yazma isteğinin tekrarını güvenli kılar.
7 kolon
| Kolon | Tip | Açıklama |
|---|
IdempotencyKey PK | nvarchar(100) | Tekrar-koruma anahtarı |
UserId PK | uniqueidentifier | Sahibi kullanıcı kimliği |
RequestHash | nvarchar(128) | İstek gövdesi özeti (hash) |
ResponseStatus | int | Yanıt HTTP durum kodu (0=işlemde) |
ResponsePayload | nvarchar | Önbelleklenen yanıt gövdesi (JSON) |
ExpireTime | datetime2 | Geçerlilik bitiş zamanı |
CreateTime | datetime2 | Oluşturulma zamanı |
AuditLogKritik değişikliklerin denetim izi.
9 kolon
| Kolon | Tip | Açıklama |
|---|
Id PK | uniqueidentifier | Denetim kaydı birincil anahtarı |
EntityType | nvarchar(100) | Değişen varlık tipi |
EntityId | nvarchar(100) | Değişen varlık kimliği |
Operation | nvarchar(10) | İşlem tipi (insert/update/delete) |
UserId null | nvarchar(36) | İşlemi yapan kullanıcı kimliği |
CorrelationId null | nvarchar(64) | İzleme (correlation) kimliği |
Before null | nvarchar | Önceki durum (JSON) |
After null | nvarchar | Sonraki durum (JSON) |
Timestamp | datetime2 | İşlem zamanı |
Şema kuralları (kısaca)
Tam PascalCase
Tablo ve kolon adları PascalCase (örn. HhsConnections.GroupId).
Para & tarih tipleri
Para decimal(18,2), zaman datetime2. Enum'lar nvarchar (snake_case değer).
Şifreli alanlar
*Encrypted kolonlar (token, IBAN, TCKN/VKN) DataProtection ile şifreli durur. CVV / tam kart numarası saklanmaz.
Eşzamanlılık
RowVersion ile iyimser kilitleme — çakışan iki güncellemede kaybeden temiz iptal olur.