Yaptırım Tarama
/api/v1/sanctions/screen
Yaptırım Tarama
Bir kişiyi, kuruluşu, gemiyi ya da uçağı Regvion'un resmî kaynaklardan topladığı yaptırım listelerinde tarar. Müşteri kabulü, kredi başvurusu ya da ödeme gibi akışlarınızdan bu ucu çağırabilirsiniz.
Yanıt bir karar değildir. Bir isabetin gerçekten aynı kişi olup olmadığına uyum biriminiz karar verir; yanıt bu kararı verecek bilgiyi taşır.
İstek
Gövde JSON'dur. Ad ya da kimlik numarasından en az biri zorunludur; öteki alanlar sonucu daraltır ve puanı etkiler.
{
"name": "Ali Veli",
"kind": "person",
"identifiers": [
{ "type": "tckn", "value": "10000000146" }
],
"birthDate": "1975-03-21",
"motherName": "Ayşe",
"fatherName": "Mehmet",
"nationality": "TR",
"country": "TR",
"city": "Ankara",
"address": "Atatürk Bulvarı No: 1",
"extended": false
}
name— taranacak ad; en çok 300 karakter. Büyük/küçük harf, Türkçe karakter ve noktalama fark etmez.kind—person,organization,vesselya daaircraft. Biliyorsanız gönderin: başka türdeki kayıt gizlenmez, puanı düşer.identifiers[]— kimlik numaraları, en çok 10 öğe:type—tckn,ykn,vkn,passport,nationalId,tradeRegistry,mersis,foreignTaxId,imo,aircraftRegistration,cryptoWallet,swift,mkkRegistry,mmsiya daothervalue— numara; boşluk ve ayraçlar fark etmez, en çok 128 karakterissuingCountry— veren ülke (isteğe bağlı)
birthDate—yyyy,yyyy-MMya dayyyy-MM-dd.motherName,fatherName— Türkiye'deki malvarlığı dondurma kayıtlarında aynı adlı iki kişiyi ayırmanın en iyi yolu budur. Biliyorsanız gönderin.nationality,country— iki harfli ülke kodu ya da ülke adı. Tanınmayan değer yok sayılır ve uyarı döner.city,address— şehir ve adres. Adres tek başına zayıf bir kanıttır.extended—trueise düşük sınıflı sonuçlar da döner (aşağıda).
Kimlik bilgilerini yalnız gövdede gönderin. Bu uç adres satırında hiçbir kişisel veri almaz; adres satırları sunucu günlüklerine yazılır.
Yanıt
{
"screeningId": "0e8c7c7a-...",
"outcome": "hits",
"coverage": "full",
"engineVersion": "1.1.0",
"listSequence": 184220,
"lists": [
{
"code": "TR-MASAK-7",
"name": "6415 md. 7 Listesi (iç dondurma kararları)",
"legalNature": "bindingInTurkey",
"legalNatureLabel": "TÜRKİYE'DE BAĞLAYICI",
"screened": true,
"covered": true,
"versionNumber": 12,
"sourceVersion": "2026-11-01",
"sourcePublishedAt": "2026-11-01T00:00:00Z",
"publishedAt": "2026-11-01T09:14:02Z",
"lastConfirmedAt": "2026-11-05T08:30:11Z",
"freshness": "fresh",
"entryCount": 1204,
"activeEntryCount": 1187,
"fingerprint": "a3f1..."
}
],
"hits": [
{
"entryId": "7b1d2f3e-...",
"revision": 3,
"listCode": "TR-MASAK-7",
"listName": "6415 md. 7 Listesi (iç dondurma kararları)",
"legalNature": "bindingInTurkey",
"legalNatureLabel": "TÜRKİYE'DE BAĞLAYICI",
"sourceRecordId": "12345",
"kind": "person",
"status": "active",
"score": 92,
"class": "high",
"matchedName": "ALI VELI",
"matchedNameKind": "primary",
"matchedNameQuality": "unspecified",
"reasons": [
{ "code": "nameBase", "detail": null, "scoreDelta": 100 },
{ "code": "wordVariant", "detail": "veli ~ velli", "scoreDelta": -8 }
]
}
],
"warnings": [
{ "code": "invalidTckn", "message": "T.C. kimlik numarasının denetim haneleri tutmuyor; numara yine de arandı." }
]
}
outcome— taramanın sonucu:hits,noMatchya daincomplete. Akışınızı bu alana bağlayın: temiz sonuç yalnıznoMatch'tir (aşağıda).coverage— sonucun hangi listelere dayandığı:full,listNotCoveredya dabindingListNotCovered(aşağıda).screeningId— bu taramanın kimliği. Kendi kaydınızda saklayın: taramanın yapıldığını Regvion'a bununla kanıtlarsınız. Kimlik yalnız tarama kaydı kalıcı olarak yazıldıktan sonra döner.engineVersion— taramayı yapan motorun sürümü. Eski bir sonuç, kendi sürümünün kurallarıyla açıklanır.listSequence— taramanın koştuğu liste durumunun sıra numarası. Sayı büyüdükçe veri yenidir.lists[]— tarama sırasında listelerin durumu:screened—falseise bu liste taranmadı, çünkü henüz kaydı yok.covered—falseise sonuç bu listeye dayanamaz: liste taranmadı ya da taransa da güncellik sınırını aştı.coveragebundan hesaplanır.legalNature,legalNatureLabel— listenin Türkiye'deki hukuki niteliği (aşağıda)versionNumber,sourceVersion,sourcePublishedAt,publishedAt— listenin yayımdaki sürümü ve tarihlerilastConfirmedAt— kaynağın en son doğrulandığı anfreshness— güncellik durumu (aşağıda)entryCount,activeEntryCount— taranan kayıt sayısı ve bunların etkin olanlarıfingerprint— taranan kayıtların özeti; raporda sürüm kanıtı olarak kullanılabilir
hits[]— isabetler, en güçlüsü başta. Boş dizi tek başına temiz sonuç değildir: yalnız taranan listelerde eşleşme bulunmadığını söyler,outcomealanına bakın.entryId,revision— liste kaydı ve sürümü. Ayrıntı için Yaptırım Kaydı Detayı. Kayıt değişirserevisionartar: önceki değerlendirmeniz artık bu kaydın son hâline bakmıyordurstatus— tarama yalnız etkin kayıtlarda yapılır, bu yüzden buradaactivegörürsünüz. Listeden çıkmış ya da süresi geçmiş kayıt dönmez; süresi geçmiş bir kısıt, kayıt henüz güncellenmemiş olsa da dönmezscore— 0 ile 100 arası puan.reasons[]içindekiscoreDeltadeğerlerinin toplamıdırclass— isabet sınıfı (aşağıda)matchedName,matchedNameKind,matchedNameQuality— eşleşmenin dayandığı ad kaynağın yayımladığı hâliyle; ad türü (primary,alias,former) ve kalitesi (unspecified,strong,weak)reasons[]— puanın nasıl oluştuğu:code,detail(karşılaştırılan sözcükler ya da değerler) vescoreDelta
warnings[]—codeve Türkçemessage. Uyarı reddetmez; sonucu nasıl okuyacağınızı söyler.
Sonuç ve kapsam
outcome |
Anlamı | Ne yapmalı |
|---|---|---|
hits |
En az bir isabet var | Uyum biriminiz değerlendirir |
noMatch |
Kapsamdaki her liste tarandı ve hiçbirinde eşleşme yok | Temiz sonuç olarak işleyebilirsiniz |
incomplete |
Eşleşme çıkmadı, ama kapsamdaki bir liste taranmadı ya da güvenilemez durumda | Temiz sonuç değildir. coverage ve lists[].covered eksiği söyler |
coverage |
Anlamı |
|---|---|
full |
Kapsamdaki her liste kapsandı |
listNotCovered |
Türkiye'de bağlayıcı olmayan bir liste kapsanmadı. Örneğin hizmete yeni alınmış ve henüz yüklenmemiş bir yabancı liste |
bindingListNotCovered |
Türkiye'de bağlayıcı bir liste kapsanmadı: kapatılmış ya da güncellik sınırını aşmış. Uyarı olarak bindingListOverLimit de döner |
Kapsam isabetten bağımsızdır: outcome: hits yanıtında da coverage eksik olabilir, çünkü bir isabet taranmayan listeler hakkında bir şey söylemez.
Kapsamda her etkin liste, dizinde kaydı bulunan her liste ve kapalı olsa da Türkiye'de bağlayıcı her liste vardır. Kararlardan oluşan ve henüz kaydı olmayan liste (TR-RG) kapsanmış sayılır: boş olması henüz karar verilmediği anlamına gelir.
Kapalı, kaydı olmayan ve Türkiye'de bağlayıcı olmayan liste kapsamda değildir: taranmaz, lists[] alanında görünmez ve full onu içermez. Bir taramanın hangi listelere baktığını lists[] söyler. AB Finansal Yaptırımlar Listesi (EU-FSF) şu anda sağlanmıyor: noMatch bu listede arama yapıldığı anlamına gelmez. Durumunu Yaptırım Listeleri ucundan izleyin; liste hizmete alınıp ilk dosyası yüklenene kadar yanıtlar listNotCovered okur.
Sınıflar
class |
Anlamı | Puan |
|---|---|---|
exact |
Kimlik numarası eşleşti. Ad ne derse desin ilk sırada gelir | 100 |
high |
Güçlü eşleşme | 90 ve üzeri |
medium |
İncelenmesi gereken eşleşme | 75 ile 89 arası |
low |
Zayıf eşleşme. Yalnız extended: true ile döner |
60 ile 74 arası |
Eşikler sabittir, isteğe göre değişmez.
Hukuki nitelik
legalNature |
legalNatureLabel |
Anlamı |
|---|---|---|
bindingInTurkey |
TÜRKİYE'DE BAĞLAYICI | BM Güvenlik Konseyi ve MASAK dondurma listeleri (6415, 7262) |
internationalRiskBased |
ULUSLARARASI — RİSK BAZLI | OFAC, AB, Birleşik Krallık gibi yabancı listeler |
sectoralRestriction |
SEKTÖREL KISIT | SPK işlem yasakları, kamu ihale yasakları |
riskInformation |
RİSK BİLGİSİ | Yaptırım listesi olmayan, kamuya açık risk bilgisi |
Güncellik
freshness |
Anlamı |
|---|---|
fresh |
Kaynak hedef süre içinde doğrulandı |
overTarget |
Hedef süre geçti, üst sınıra gelinmedi |
overLimit |
Üst sınır geçti: kaynak uzun süredir doğrulanamıyor |
neverConfirmed |
Kaynağa henüz başarıyla bakılmadı |
backfilling |
İlk yükleme sürüyor: liste henüz kaynağın yayımladığının tamamını taşımıyor |
notApplicable |
Liste kaynaktan okunmuyor ya da kapalı; güncellik bir şey söylemez |
Türkiye'de bağlayıcı bir liste overLimit olduğunda kapsanmış sayılmaz: yanıt yine 200 döner, sonuç incomplete olur ve bindingListOverLimit uyarısı gelir. Bağlayıcı olmayan listede overLimit kapsamı değiştirmez, yalnız yaşını gösterir.
Tarama yanıtındaki freshness kaynağın yaşıyla birlikte taramanın dayandığı dizini de hesaba katar. Yeni bir yayım dizine henüz yansımadıysa fresh okunmaz: liste overTarget görünür. Kaynaktan okunmayan TR-RG de bu sürede notApplicable yerine overTarget görünür. Yayımdan sonra kısa süre overTarget görmek olağandır; 15 dakikayı geçerse indexLagging uyarısı döner.
Uyarılar
code |
Anlamı |
|---|---|
invalidTckn, invalidYkn, invalidVkn, invalidMersis, invalidImo |
Numaranın denetim hanesi tutmuyor. Numara yine de arandı: listede de yanlış basılmış olabilir |
maskedIdentifier |
Numara maskeli olduğu için aranmadı |
emptyIdentifier |
Numaradan geriye bir şey kalmadı, aranmadı |
tooShort |
Ad iki anlamlı karakterden kısa, aranmadı |
singleToken |
Ad tek sözcük; doğum tarihi ya da uyruk ekleyin |
commonName |
Ad yaygın, çok sonuç beklenir; doğum tarihi ya da uyruk ekleyin |
unresolvedCountry |
Ülke tanınmadı, yok sayıldı |
truncated |
Sonuçların tamamı dönmedi, en güçlü 200 tanesi listelendi |
noCriteria |
Aranabilir bir ölçüt yok. Tek başına kaldığında tarama yapılmaz |
bindingListOverLimit |
Türkiye'de bağlayıcı bir liste güncellik sınırını aştı. Liste kapsanmış sayılmadı, sonuç temiz sonuç olarak işlenmemelidir |
indexLagging |
Tarama dizini yayımlanan son listelerin gerisinde kaldı; en yeni kayıtlar bu sonuçta olmayabilir. Sürerse tarama 503 ile durur |
Gerekçe kodları
code |
Anlamı |
|---|---|
identifierExact |
Kimlik numarası tam eşleşti |
identifierIssuerDiffers |
Numara eşleşti, veren ülkeler farklı |
identifierTypeDiffers |
Numara başka türde bir kimlikle eşleşti |
nameBase |
Ad karşılaştırması tam uyumdan başlar; sonraki gerekçeler eksik olanı söyler |
wordVariant |
İki sözcük uyuyor, ama harfi harfine değil |
queryWordUnmatched |
Gönderdiğiniz bir sözcük kayıtta yok; aleyhte güçlü kanıt |
listedWordUnmatched |
Kayıttaki bir sözcük gönderdiğinizde yok; olağan, listelerde daha çok ad bulunur |
wordOrderDiffers |
Sözcükler başka sırada uyuyor |
businessDiffers |
Her iki şirket adı da ötekinde olmayan bir faaliyet alanı söylüyor: ortak sözcük iki ayrı firmanın rastlantısı olabilir |
weakAlias |
Eşleşme zayıf bir takma ada dayanıyor |
insufficientEvidence |
Eşleşen sözcükler tek başına ayırt edici değil |
incompleteName |
Bir taraftaki ayırt edici sözcüğün karşılığı yok |
birthDateExact, birthMonthMatch, birthYearMatch, birthDateNear |
Doğum tarihi uyuyor (tam, ay, yıl, yakın) |
birthDateConflict |
Doğum tarihleri çelişiyor |
nationalityMatch, nationalityConflict |
Uyruk uyuyor ya da çelişiyor |
countryMatch, countryConflict |
Ülke uyuyor ya da çelişiyor |
cityMatch |
Şehir uyuyor |
addressSimilar |
Adres benziyor; tek başına zayıf bilgi |
kindConflict |
Kayıt başka türde |
motherNameMatch, motherNameConflict |
Anne adı uyuyor ya da açıkça farklı |
fatherNameMatch, fatherNameConflict |
Baba adı uyuyor ya da açıkça farklı |
attributeBonusCapped, attributePenaltyCapped |
Ek bilgilerin katkısı üst sınıra takıldı |
scoreCapped |
Puan 100'ü geçecekti |
demotionFloor |
Çelişki kaydı düşürür ama gizlemez; kayıt görünür kaldı |
recordInactive |
Kayıt listeden çıkmış ya da süresi dolmuş |
Yeni kod eklenebilir. Tanımadığınız kodu yok sayın; puanı score alanından okuyun.
Hata yanıtları
503 SANCTIONS_NOT_READY — sonuç verilmedi. Bu yanıt "eşleşme yok" demek değildir ve yanıtta data yoktur. Retry-After kadar bekleyip yeniden deneyin. Akışınız bu yanıtı temiz sonuç gibi işlememelidir. Dört durumda döner:
- Listeler bu sunucuda henüz yüklenmedi; örneğin sunucu yeni başladı.
- Etkin ve Türkiye'de bağlayıcı bir liste henüz taramaya girmedi.
- Tarama dizini yayımlanan listelerin gerisinde bir saatten uzun süredir duruyor, ya da liste deposuna bir saatten uzun süredir ulaşılamıyor.
- Tarama kaydı yazılamadı. Kaydı olmayan taramanın kimliği verilmez; bu durumda tarama sonucu da verilmez.
400 VALIDATION_ERROR — tarama yapılmadı. error.message nedeni Türkçe söyler; gönderdiğiniz değeri tekrar etmez. Üç durum vardır:
- Ad da kimlik numarası da yok.
- Biçim imkânsız: 11 rakamdan oluşmayan T.C. kimlik ya da yabancı kimlik numarası, 10 rakamdan oluşmayan vergi numarası, okunamayan tarih, bilinmeyen
type. - Aranabilir bir şey kalmadı: ad tek harf, numara maskeli.
Denetim hanesi tutmayan ama biçimi doğru numara reddedilmez, uyarıyla aranır.
429 kodları için Oran Sınırları, öteki hatalar için Hatalar sayfasına bakın.
Listeler ne zaman güncellenir
Yeni bir liste sürümü yayımlandıktan sonra taramalara genellikle bir dakika içinde yansır. Yansıyana kadar liste fresh okunmaz; bir saat içinde yansımazsa tarama durur. Yanıttaki listSequence ve versionNumber hangi veriyle tarandığını her zaman söyler. Tarama yalnız bugünkü listelere bakar; geçmiş bir tarihteki durumu sorgulayamazsınız, ama bir kaydın geçmişini Yaptırım Kaydı Detayı ile görebilirsiniz.
Gizlilik
Gönderdiğiniz ad ve kimlik numaraları saklanmaz, günlüklere ve denetim kayıtlarına yazılmaz, yanıt önbelleğe alınmaz (Cache-Control: no-store). Regvion'da her tarama için yalnız şunlar kalır: screeningId, istek kimliği, müşteri, anahtar, zaman, sınıf başına isabet sayısı, listSequence, engineVersion ve sorgunun geri çevrilemeyen bir özeti (HMAC).
Bu özet API anahtarınızdan türetilen bir anahtarla üretilir ve Regvion'da saklanmaz. Aynı anahtarla yapılan aynı sorgu aynı özeti verir; farklı müşterilerin özetleri birbiriyle eşleşmez. Anahtarınızı yenilediğinizde özet de değişir.
Yanıttaki reasons[].detail, karşılaştırılan sözcükleri içerebilir. Yanıtı kendi günlüklerinize yazıyorsanız bunu göz önünde bulundurun.
Yetki ve kullanım
Api.Sanctions.Screen iznini gerektirir. Bu izin katmanlara kendiliğinden verilmez; açtırmak için Regvion ile görüşün. İzin anahtar bazında da açılıp kapatılabilir.
Her çağrı aylık kotanızdan bir tarama düşer. 503 ve 429 yanıtları sayılmaz; 400 yanıtları öteki uçlardaki gibi sayılır. Bu izni taşımayan anahtar gönderdiği gövde ne olursa olsun 403 alır; bu çağrı, aynı müşterinin izinli anahtarlarının kotasından ve dakikalık sınırından düşmez.
Parametreler
| İsim | Konum | Tip | Zorunlu | Açıklama |
|---|---|---|---|---|
name |
Body | string |
Hayır | Taranacak ad. Ad ya da kimlik numarasından en az biri zorunludur. En çok 300 karakter. |
identifiers |
Body | array |
Hayır | Kimlik numaraları: type, value, issuingCountry. En çok 10 öğe. |
kind |
Body | string |
Hayır | person, organization, vessel ya da aircraft. |
birthDate |
Body | string |
Hayır | yyyy, yyyy-MM ya da yyyy-MM-dd. |
motherName |
Body | string |
Hayır | Anne adı. Aynı adlı kişileri ayırmanın en iyi yolu. |
fatherName |
Body | string |
Hayır | Baba adı. |
nationality |
Body | string |
Hayır | Uyruk: iki harfli ülke kodu ya da ülke adı. |
country |
Body | string |
Hayır | Ülke: iki harfli ülke kodu ya da ülke adı. |
city |
Body | string |
Hayır | Şehir. |
address |
Body | string |
Hayır | Adres. Tek başına zayıf bir kanıttır. |
extended |
Body | boolean |
Hayır | true ise düşük sınıflı (low) sonuçlar da döner. |