Cari Tahsilat İşlemi
Müşteri/Cari için tahsilat işlemi gerçekleştirilir.
Endpoint
POST /kolaybi/v1/associates/{id}/transactions/proceed
Parametreler
| Parametre | Tip | Açıklama |
|---|---|---|
id | integer | Tahsilat işlemi yapılacak carinin ID değeri |
Request Body
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
amount | number | Evet | Tahsilat tutarı |
currency | string | Evet | Para birimi |
gateway_id | integer | Evet | Tahsilat hesabı ID'si |
gateway_type | string | Hayır | Vault (varsayılan) veya Associate |
exchange_rate | number | Hayır | Döviz kuru |
project_ids[] | integer | Hayır | Proje ID'leri listesi |
description | string | Hayır | Açıklama |
expenses[0][source_type] | string | Hayır | Kaynak hesap türü (Associate/Vault) |
expenses[0][amount] | number | Hayır | Gider tutarı |
expenses[0][currency] | string | Hayır | Gider para birimi |
expenses[0][source_id] | integer | Hayır | Kaynak hesap ID'si |
transaction_currency_rates[0][quote_currency] | string | Hayır | İşlem Takip Para Birimi |
transaction_currency_rates[0][rate] | number | Hayır | Döviz Kuru |
transaction_currency_rates[0][total] | number | Hayır | Döviz Karşılığı |
Örnekler
- cURL
- JavaScript
- PHP
- Python
- C#
curl -X POST "https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/associates/123/transactions/proceed" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Channel: YOUR_CHANNEL" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "amount=1000¤cy=try&gateway_id=1&gateway_type=Vault&description=Tahsilat açıklaması&expenses[0][source_type]=Associate&expenses[0][amount]=10.5&expenses[0][currency]=try&expenses[0][source_id]=3&transaction_currency_rates[0][quote_currency]=try&transaction_currency_rates[0][rate]=2&transaction_currency_rates[0][total]=0.5"
async function createAssociateProceed(associateId, proceedData) {
const formData = new URLSearchParams();
Object.keys(proceedData).forEach((key) => {
formData.append(key, proceedData[key]);
});
const response = await fetch(
`https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/associates/${associateId}/transactions/proceed`,
{
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
Channel: channel,
"Content-Type": "application/x-www-form-urlencoded",
},
body: formData,
}
);
return await response.json();
}
// Kullanım
const proceed = await createAssociateProceed(123, {
amount: 1000,
currency: "try",
gateway_id: 1,
gateway_type: "Vault",
description: "Tahsilat açıklaması",
"expenses[0][source_type]": "Associate",
"expenses[0][amount]": 10.5,
"expenses[0][currency]": "TRY",
"expenses[0][source_id]": 3,
"transaction_currency_rates[0][quote_currency]": "try",
"transaction_currency_rates[0][rate]": 2,
"transaction_currency_rates[0][total]": 0.5,
});
function createAssociateProceed($associateId, $proceedData) {
$url = "https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/associates/{$associateId}/transactions/proceed";
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($proceedData),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $accessToken,
'Channel: ' . $channel,
'Content-Type: application/x-www-form-urlencoded'
],
CURLOPT_RETURNTRANSFER => true
]);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// Kullanım
$proceed = createAssociateProceed(123, [
'amount' => 1000,
'currency' => 'try',
'gateway_id' => 1,
'gateway_type' => 'Vault',
'description' => 'Tahsilat açıklaması',
'expenses[0][source_type]' => 'Associate',
'expenses[0][amount]' => 10.5,
'expenses[0][currency]' => 'try',
'expenses[0][source_id]' => 3,
'transaction_currency_rates[0][quote_currency]' => 'try',
'transaction_currency_rates[0][rate]' => 2,
'transaction_currency_rates[0][total]' => 0.5,
]);
import requests
def create_associate_proceed(associate_id, proceed_data):
url = f'https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/associates/{associate_id}/transactions/proceed'
headers = {
'Authorization': f'Bearer {access_token}',
'Channel': channel,
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.post(url, data=proceed_data, headers=headers)
return response.json()
# Kullanım
proceed = create_associate_proceed(123, {
'amount': 1000,
'currency': 'try',
'gateway_id': 1,
'gateway_type': 'Vault',
'description': 'Tahsilat açıklaması',
'expenses[0][source_type]': 'Associate',
'expenses[0][amount]': 10.5,
'expenses[0][currency]': 'try',
'expenses[0][source_id]': 3,
'transaction_currency_rates[0][quote_currency]': 'try',
'transaction_currency_rates[0][rate]': 2,
'transaction_currency_rates[0][total]': 0.5,
})
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Newtonsoft.Json;
async Task<dynamic> CreateAssociateProceedAsync(int associateId, Dictionary<string, string> proceedData)
{
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post,
$"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/associates/{associateId}/transactions/proceed")
{
Content = new FormUrlEncodedContent(proceedData)
};
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
request.Headers.Add("Channel", channel);
var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<dynamic>(content);
}
// Kullanım
var proceed = await CreateAssociateProceedAsync(123, new Dictionary<string, string>
{
{ "amount", "1000" },
{ "currency", "try" },
{ "gateway_id", "1" },
{ "gateway_type", "Vault" },
{ "description", "Tahsilat açıklaması" },
{ "expenses[0][source_type]", "Associate" },
{ "expenses[0][amount]", "10.5" },
{ "expenses[0][currency]", "try" },
{ "expenses[0][source_id]", "3" },
{ "transaction_currency_rates[0][quote_currency]", "try" },
{ "transaction_currency_rates[0][rate]", "2" },
{ "transaction_currency_rates[0][total]", "0.5" },
});
Yanıt
{
"data": {
"id": 58,
"creator": {
"id": 4,
"user_type": {
"value": "regular",
"key": "REGULAR",
"description": "Regular",
"group": "visible"
},
"name": "Test Name",
"surname": "Test Surname",
"full_name": "Test Full Name"
},
"transaction_type": {
"value": "proceed",
"key": "PROCEED",
"description": "Tahsilat",
"group": "finance"
},
"payment_method": {
"value": "cash",
"key": "CASH",
"description": "Nakit",
"group": "default"
},
"issue_date": "2025-06-13 03:03:40",
"amount": 1000,
"currency": "try"
},
"message": "TRANSACTION.STORE.SUCCESS",
"success": true
}
Yanıt Alanları
| Alan | Tip | Açıklama |
|---|---|---|
id | integer | Kayıtlı tahsilat işleminin ID'si |
creator | object | İşlemi oluşturan kullanıcı bilgileri |
transaction_type | object | İşlem tipi bilgisi (key, value) |
payment_method | object | Ödeme yöntemi |
issue_date | string | İşlem tarihi (YYYY-MM-DD HH:mm:ss) |
amount | number | Tahsilat tutarı |
currency | string | Para birimi |
message | string | Servis mesajı |
success | boolean | İşlem sonucu |