Online Banka Hareket Eşleştirme
Bir banka hareketini kasa, fatura, cari ve çek kayıtlarıyla eşleştirerek Ofis'te işlem kaydı oluşturur.
Endpoint
POST /kolaybi/v1/online_bank/transactions/{transaction_id}/map
Parametreler
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
transaction_id | string | Evet | Eşleştirilecek hareketin ID değeri (path) |
vault_id | integer | Evet | Paranın geçtiği kasanın ID değeri; hareketin tamamı bu kasaya işlenir |
invoices | array | Hayır | Hareketle eşleştirilecek faturalar. Fatura hareketle aynı yönde olmalıdır: gelen para satış faturasıyla, giden para alış faturasıyla eşleşir |
invoices[n][id] | integer | Evet | Faturanın ID değeri |
invoices[n][amount] | number | Evet | Faturaya işlenecek tutar; faturanın kalan bakiyesini aşamaz |
contacts | array | Hayır | Hareketle eşleştirilecek cariler |
contacts[n][id] | integer | Evet | Carinin ID değeri |
contacts[n][amount] | number | Evet | Cariye işlenecek tutar |
cheques | array | Hayır | Hareketle eşleştirilecek çekler; çek tam tutarla ve hareketle aynı yönde eşleşir |
cheques[n][id] | integer | Evet | Çekin ID değeri |
cheques[n][amount] | number | Evet | Çekin tutarı |
commission_contact_id | integer | Hayır | Banka komisyonunun işleneceği carinin ID değeri; fatura toplamı ile hareket tutarı arasındaki fark bu cariye komisyon olarak işlenir |
exchange_rate | number | Hayır | Döviz kuru |
project_id | integer | Hayır | İşlemin bağlanacağı proje ID değeri |
Örnekler
- cURL
- JavaScript
- PHP
- Python
- C#
# 15.000,50 tutarındaki gelen hareket: 12.000,00 fatura 4821'e, 3.000,50 cari 77'ye
curl -X POST "https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/online_bank/transactions/66d0a9b1c2d3e4f5a6b70819/map" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Channel: YOUR_CHANNEL" \
-H "Content-Type: application/json" \
-d '{
"vault_id": 12,
"invoices": [
{"id": 4821, "amount": 12000.00}
],
"contacts": [
{"id": 77, "amount": 3000.50}
]
}'
async function mapOnlineBankTransaction(transactionId, data) {
const response = await fetch(
`https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/online_bank/transactions/${transactionId}/map`,
{
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
Channel: channel,
"Content-Type": "application/json",
},
body: JSON.stringify(data),
}
);
return await response.json();
}
// Kullanım
const result = await mapOnlineBankTransaction("66d0a9b1c2d3e4f5a6b70819", {
vault_id: 12,
invoices: [{ id: 4821, amount: 12000.0 }],
contacts: [{ id: 77, amount: 3000.5 }],
});
function mapOnlineBankTransaction($transactionId, $data) {
$url = "https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/online_bank/transactions/{$transactionId}/map";
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $accessToken,
'Channel: ' . $channel,
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_RETURNTRANSFER => true
]);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// Kullanım
$result = mapOnlineBankTransaction('66d0a9b1c2d3e4f5a6b70819', [
'vault_id' => 12,
'invoices' => [
['id' => 4821, 'amount' => 12000.00],
],
'contacts' => [
['id' => 77, 'amount' => 3000.50],
],
]);
import requests
def map_online_bank_transaction(transaction_id, data):
url = f"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/online_bank/transactions/{transaction_id}/map"
headers = {
"Authorization": f"Bearer {access_token}",
"Channel": channel,
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers, json=data)
return response.json()
# Kullanım
result = map_online_bank_transaction("66d0a9b1c2d3e4f5a6b70819", {
"vault_id": 12,
"invoices": [{"id": 4821, "amount": 12000.00}],
"contacts": [{"id": 77, "amount": 3000.50}]
})
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
async Task<dynamic> MapOnlineBankTransactionAsync(string transactionId, object body)
{
using var client = new HttpClient();
var url = $"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/online_bank/transactions/{transactionId}/map";
var request = new HttpRequestMessage(HttpMethod.Post, url);
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
request.Headers.Add("Channel", channel);
request.Content = new StringContent(
JsonConvert.SerializeObject(body),
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<dynamic>(content);
}
// Kullanım
var result = await MapOnlineBankTransactionAsync("66d0a9b1c2d3e4f5a6b70819", new
{
vault_id = 12,
invoices = new[] { new { id = 4821, amount = 12000.00 } },
contacts = new[] { new { id = 77, amount = 3000.50 } }
});
Yanıt
{
"data": {
"id": "66d0a9b1c2d3e4f5a6b70819",
"mapped_transaction_id": 90312
},
"message": "Banka hareketi başarıyla eşleştirildi.",
"success": true
}
Yanıt Alanları
| Alan | Tip | Açıklama |
|---|---|---|
data | object | Eşleştirme bilgisi |
message | string | Yanıt mesaj kodu |
success | boolean | İşlem başarı durumu |
Eşleştirme Alanları (data)
| Alan | Tip | Açıklama |
|---|---|---|
id | string | Hareket kimliği |
mapped_transaction_id | integer | Eşleştirme sonucu oluşan Ofis işleminin ID'si |