curl --request GET \
--url https://api.banka.pro/v1/bank-accounts \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.banka.pro/v1/bank-accounts"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.banka.pro/v1/bank-accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.banka.pro/v1/bank-accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"success": true,
"meta": {
"requestId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca",
"timestamp": "2026-09-08T20:00:00.000Z",
"page": 1,
"pageSize": 25,
"total": 1,
"totalPages": 1,
"partial": true,
"warnings": [
{
"code": "TODAY_BALANCE_SNAPSHOT_FALLBACK",
"message": "<string>",
"date": "2026-09-07",
"accountCount": 1
}
]
},
"data": [
{
"id": "64f000000000000000000001",
"company": {
"id": "64f000000000000000000001",
"title": "<string>",
"logo": "<string>"
},
"name": "Merkez TRY Hesabı",
"bankName": "Örnek Banka",
"bankCode": "00010",
"accountCode": "1234567",
"iban": "TR000000000000000000000000",
"currency": "TRY",
"type": "<string>",
"isDefault": true,
"isApi": true,
"isDemo": true,
"balance": "125000.00",
"balanceKnown": true,
"lastSync": {
"checkedAt": "2023-11-07T05:31:56Z",
"lastTransactionAt": "2023-11-07T05:31:56Z",
"status": true,
"message": "<string>",
"transactionCount": 1
},
"createdAt": "2023-11-07T05:31:56Z"
}
]
}{
"success": false,
"error": {
"code": "VALIDATION_FAILED",
"message": "pageSize 1-100 araliginda olmalidir.",
"details": [
{
"field": "pageSize",
"rule": "min:1,max:100"
}
]
},
"traceId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca"
}{
"success": false,
"error": {
"code": "VALIDATION_FAILED",
"message": "İstek doğrulanamadı.",
"details": [
{
"field": "pageSize",
"rule": "min:1,max:100"
}
]
},
"traceId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca"
}{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "Bu islem icin yetkiniz bulunmuyor.",
"details": []
},
"traceId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca"
}{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "Istek limiti asildi. Daha sonra tekrar deneyin.",
"details": []
},
"traceId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca"
}{
"success": false,
"error": {
"code": "VALIDATION_FAILED",
"message": "İstek doğrulanamadı.",
"details": [
{
"field": "pageSize",
"rule": "min:1,max:100"
}
]
},
"traceId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca"
}Banka hesaplarını listeler
Firmanın BankaPro’ya bağlı banka hesaplarını listeler. pageSize en çok 500 olabilir. Filtreler doğrudan veya filter[currency], filter[bankCode], filter[archived], filter[isApi] biçiminde gönderilebilir. Firmanın kendi hesap IBAN’ı baAccounts yetkisiyle açık döner. Güncel bakiye, bankanın bakiyeyi açıkça bildirdiği son hareketten okunur. Böyle bir hareket yoksa balance null ve balanceKnown false olur; bankanın bildirdiği gerçek sıfır bakiye 0.00 döner.
curl --request GET \
--url https://api.banka.pro/v1/bank-accounts \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.banka.pro/v1/bank-accounts"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.banka.pro/v1/bank-accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.banka.pro/v1/bank-accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"success": true,
"meta": {
"requestId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca",
"timestamp": "2026-09-08T20:00:00.000Z",
"page": 1,
"pageSize": 25,
"total": 1,
"totalPages": 1,
"partial": true,
"warnings": [
{
"code": "TODAY_BALANCE_SNAPSHOT_FALLBACK",
"message": "<string>",
"date": "2026-09-07",
"accountCount": 1
}
]
},
"data": [
{
"id": "64f000000000000000000001",
"company": {
"id": "64f000000000000000000001",
"title": "<string>",
"logo": "<string>"
},
"name": "Merkez TRY Hesabı",
"bankName": "Örnek Banka",
"bankCode": "00010",
"accountCode": "1234567",
"iban": "TR000000000000000000000000",
"currency": "TRY",
"type": "<string>",
"isDefault": true,
"isApi": true,
"isDemo": true,
"balance": "125000.00",
"balanceKnown": true,
"lastSync": {
"checkedAt": "2023-11-07T05:31:56Z",
"lastTransactionAt": "2023-11-07T05:31:56Z",
"status": true,
"message": "<string>",
"transactionCount": 1
},
"createdAt": "2023-11-07T05:31:56Z"
}
]
}{
"success": false,
"error": {
"code": "VALIDATION_FAILED",
"message": "pageSize 1-100 araliginda olmalidir.",
"details": [
{
"field": "pageSize",
"rule": "min:1,max:100"
}
]
},
"traceId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca"
}{
"success": false,
"error": {
"code": "VALIDATION_FAILED",
"message": "İstek doğrulanamadı.",
"details": [
{
"field": "pageSize",
"rule": "min:1,max:100"
}
]
},
"traceId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca"
}{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "Bu islem icin yetkiniz bulunmuyor.",
"details": []
},
"traceId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca"
}{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "Istek limiti asildi. Daha sonra tekrar deneyin.",
"details": []
},
"traceId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca"
}{
"success": false,
"error": {
"code": "VALIDATION_FAILED",
"message": "İstek doğrulanamadı.",
"details": [
{
"field": "pageSize",
"rule": "min:1,max:100"
}
]
},
"traceId": "9cc0d3d1-1e63-4c90-b08f-90b6332e70ca"
}Yetkilendirmeler
Kullanıcı adı anahtar kimliği, parola secret key değeridir. Anahtar aktif olmalı, erişim bitiş tarihi geçmemiş olmalı ve BankaPro erişimine sahip olmalıdır. Firma anahtardan sunucu tarafında belirlenir; istemciden firma kimliği alınmaz. Anahtarın IP kısıtı doluysa istek yalnız listedeki adreslerden kabul edilir. Kimlik bilgileri yalnız HTTPS üzerinden gönderilmelidir.
Başlıklar
Opsiyonel izleme kimliği. Değer 1-100 karakter ve yalnız harf, rakam, nokta, alt çizgi, iki nokta veya tire içeriyorsa korunur; aksi halde sunucu yeni bir UUID üretir.
1 - 100^[A-Za-z0-9._:-]{1,100}$Sorgu Parametreleri
x >= 1Hesap listesi ve günlük bakiye görünümü için sayfa boyutu.
1 <= x <= 500Büyük/küçük harf ve Türkçe karakter farkına duyarsız arama. Hesaplarda ad, banka adı/kodu, hesap kodu ve IBAN aranır. Hareket araması karşı taraf adında ve açıklamanın normalize edilmiş kelime belirteçlerinde çalışır; baPii varsa ayrıca IBAN ve kimlik numarasında da çalışır. İşlem kodu ve alt hesap hareket aramasının kapsamı dışındadır. Açıklama belirteçleri en az üç karakterli kelimelerden üretilir; daha kısa terimler yalnız karşı taraf adında aranır. IBAN veya kimlik numarası niteliğindeki hareket aramaları baPii gerektirir.
2 - 100Para birimi filtresi. Sabit destek listesi yoktur; tüm üç harfli kodlar kabul edilir. TL, ERU ve GPD sırasıyla TRY, EUR ve GBP olarak normalize edilir. TRY filtresi eksik, null veya boş saklanmış para birimi değerlerini de kapsar. Sabit bir liste olmadan herhangi bir üç harfli para/kıymet kodu veya TL. Girdi büyük harfe çevrilir; TL, ERU ve GPD sırasıyla TRY, EUR ve GBP olarak normalize edilir.
^(?:[A-Za-z]{3}|[Tt][Ll])$"TRY"
1 - 30"00010"
Gönderilmezse arşivlenmemiş hesaplar listelenir.

