> For the complete documentation index, see [llms.txt](https://kilavuz.cubicl.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kilavuz.cubicl.io/api-entegrasyonu/cari-hesap-kaydi.md).

# Cari Hesap Kaydı

## Uç Noktaları

### Sayfayı Getir

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/bookkeeping/page`

Cari hesap sayfası için gerekli cari hesap kaydı, aktivite ve istatistikleri getirir.

{% tabs %}
{% tab title="200: OK Sayfa verileri. Aktiviteler, Cari Hesap kayıtları, borçlar ve alacaklar. içerir." %}

```typescript
{
    activities: BookkeepingActivity[],
    entries: BookkeepingEntry[],
    payables: {
        total: number,
        outstanding: number,
        overdue: number,
        currency: string
    },
    receivables: {
        total: number,
        outstanding: number,
        overdue: number,
        currency: string
    }
}
```

{% endtab %}

{% tab title="403: Forbidden İzniniz yok." %}

```javascript
{ code : 4 }
```

{% endtab %}
{% endtabs %}

### Cari Hesap Kaydının Aktivitelerini Getir

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/bookkeeping/activities`

#### Query Parameters

| Name                                    | Type   | Description               |
| --------------------------------------- | ------ | ------------------------- |
| entry<mark style="color:red;">\*</mark> | string | Cari Hesap kaydının ID'si |

{% tabs %}
{% tab title="200: OK Cari Hesap kaydının aktiviteleri" %}

```javascript
BookkeepingActivity[]
```

{% endtab %}

{% tab title="403: Forbidden İzniniz yok" %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Kayıt bulunamadı" %}

```javascript
{ code : 1501 }
```

{% endtab %}
{% endtabs %}

### Cari Hesap Kaydı Ekle

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/bookkeeping/entries`

Bir müşteriyle ilgili alacak veya borç kaydı ekler.

#### Request Body

| Name                                       | Type   | Description                                                                                                                                                                                                                                         |   |                                                                                                                                                                                                                                                                                 |
| ------------------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| customer<mark style="color:red;">\*</mark> | string | Müşteri ID'si                                                                                                                                                                                                                                       |   |                                                                                                                                                                                                                                                                                 |
| dueAt                                      | number | Son ödeme tarihi. Bu tarihten önce ödeme yapılması bekleniyor.                                                                                                                                                                                      |   |                                                                                                                                                                                                                                                                                 |
| paidAmount                                 | number | <p>Toplamın ne kadarı ödeniyor?</p><p></p><p>0'dan büyük ve toplam tutardan küçük olmalıdır.</p>                                                                                                                                                    |   |                                                                                                                                                                                                                                                                                 |
| desc                                       | string | Alacak veya borç kaydı açıklaması                                                                                                                                                                                                                   |   |                                                                                                                                                                                                                                                                                 |
| name<mark style="color:red;">\*</mark>     | string | Alacak veya borç kaydı adı                                                                                                                                                                                                                          |   |                                                                                                                                                                                                                                                                                 |
| currency<mark style="color:red;">\*</mark> | string | <p>Para birimi. Aşağıdaki değerlerden birini içermelidir:</p><p></p><p>TRY, USD, EUR, GBP, AUD, CAD, CHF, CNY, HKD, NZD, SEK, KRW, SGD, NOK, MXN, INR, ZAR, RUB, BRL, JPY, TWD, DKK, PLN, THB, IDR, HUF, CZK, ILS, PHP, AED, COP, SAR, MYR, RON</p> |   |                                                                                                                                                                                                                                                                                 |
| amount<mark style="color:red;">\*</mark>   | number | Cari hesap bakiyesi. 0'dan büyük olmalıdır.                                                                                                                                                                                                         |   |                                                                                                                                                                                                                                                                                 |
| type<mark style="color:red;">\*</mark>     | string | <p>receivable                                                                                                                                                                                                                                       |   | payable<br><br>receivable: Cari hesap alacak bakiyesi. Cubicl kullanıcısının bir ürün veya hizmet karşılığında müşterilerinden aldığı ödeme.<br><br>payable: Cari hesap borç bakiyesi. Cubicl kullanıcısının bir müşteriye bir ürün veya hizmet karşılığında yaptığı ödeme.</p> |

{% tabs %}
{% tab title="200: OK Etkinlik, ödeme ve ödeme etkinliği ile yeni kayıt" %}

```javascript
{
    entry: BookkeepingEntry
    entryActivity: BookkeepingActivity,
    // paidAmount gönderilmiş ise mevcuttur.
    payment?: BookkeepingPayment
    // paidAmount gönderilmiş ise mevcuttur.
    paymentActivity?: BookkeepingActivity
}
```

{% endtab %}

{% tab title="403: Forbidden İzniniz yok" %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="404: Not Found Müşteri bulunamadı" %}

```javascript
{ code : 303 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Kurumunuzun mevcut planı yetersiz. Paketinizi yükseltmelisiniz." %}

```javascript
{ code : 1201 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Para birimi desteklenmiyor" %}

```javascript
{ code : 1504 }
```

{% endtab %}
{% endtabs %}

### Cari Hesap Kaydını Güncelle

<mark style="color:orange;">`PUT`</mark> `https://cubicl.io/api/v1/bookkeeping/entries/{entry}`

#### Path Parameters

| Name                                    | Type   | Description               |
| --------------------------------------- | ------ | ------------------------- |
| entry<mark style="color:red;">\*</mark> | string | Cari Hesap kaydının ID'si |

#### Request Body

| Name                                       | Type   | Description                                                                                                                                                                                                                                         |   |                                                                                                                                                                                                                                                                                 |
| ------------------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| type<mark style="color:red;">\*</mark>     | string | <p>receivable                                                                                                                                                                                                                                       |   | payable<br><br>receivable: Cari hesap alacak bakiyesi. Cubicl kullanıcısının bir ürün veya hizmet karşılığında müşterilerinden aldığı ödeme.<br><br>payable: Cari hesap borç bakiyesi. Cubicl kullanıcısının bir müşteriye bir ürün veya hizmet karşılığında yaptığı ödeme.</p> |
| dueAt                                      | number | Son ödeme tarihi. Bu tarihten önce ödeme yapılması bekleniyor.                                                                                                                                                                                      |   |                                                                                                                                                                                                                                                                                 |
| desc                                       | string | Alacak veya borç kaydı açıklaması                                                                                                                                                                                                                   |   |                                                                                                                                                                                                                                                                                 |
| name<mark style="color:red;">\*</mark>     | string | Alacak veya borç kaydı adı                                                                                                                                                                                                                          |   |                                                                                                                                                                                                                                                                                 |
| currency<mark style="color:red;">\*</mark> | string | <p>Para birimi. Aşağıdaki değerlerden birini içermelidir:</p><p></p><p>TRY, USD, EUR, GBP, AUD, CAD, CHF, CNY, HKD, NZD, SEK, KRW, SGD, NOK, MXN, INR, ZAR, RUB, BRL, JPY, TWD, DKK, PLN, THB, IDR, HUF, CZK, ILS, PHP, AED, COP, SAR, MYR, RON</p> |   |                                                                                                                                                                                                                                                                                 |

{% tabs %}
{% tab title="200: OK Güncellenmiş kayıt" %}

```javascript
BookkeepingEntry
```

{% endtab %}

{% tab title="403: Forbidden İzniniz yok" %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Ödenen tutar, kayıt tutarından fazla olamaz" %}

```javascript
{ code : 1503 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Kurumunuzun mevcut planı yetersiz. Paketinizi yükseltmelisiniz." %}

```javascript
{ code : 1201 }
```

{% endtab %}

{% tab title="404: Not Found Kayıt bulunamadı" %}

```javascript
{ code: 1501 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Para birimi desteklenmiyor" %}

```javascript
{ code: 1504 }
```

{% endtab %}
{% endtabs %}

### Cari Hesap Kaydını Sil

<mark style="color:red;">`DELETE`</mark> `https://cubicl.io/api/v1/bookkeeping/entries/{entry}`

Bu cari hesap kaydına ilişkin tüm aktivite ve ödeme kayıtları silinir.

#### Path Parameters

| Name                                    | Type   | Description               |
| --------------------------------------- | ------ | ------------------------- |
| entry<mark style="color:red;">\*</mark> | string | Cari Hesap kaydının ID'si |

{% tabs %}
{% tab title="200: OK Boş yanıt" %}

{% endtab %}

{% tab title="403: Forbidden İzniniz yok" %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Kayıt bulunamadı" %}

```javascript
{ code : 1501 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Kurumunuzun mevcut planı yetersiz. Paketinizi yükseltmelisiniz." %}

```javascript
{ code : 1201 }
```

{% endtab %}
{% endtabs %}

### Ödeme Ekle

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/bookkeeping/payment/{entry}`

#### Path Parameters

| Name                                    | Type   | Description               |
| --------------------------------------- | ------ | ------------------------- |
| entry<mark style="color:red;">\*</mark> | string | Cari Hesap kaydının ID'si |

#### Request Body

| Name                                         | Type   | Description                                                                                   |
| -------------------------------------------- | ------ | --------------------------------------------------------------------------------------------- |
| paidAmount<mark style="color:red;">\*</mark> | number | <p>Toplamın ne kadarı ödeniyor?</p><p></p><p>Minimum 0, maksimum "toplam tutar" olabilir.</p> |
| note                                         | string |                                                                                               |

{% tabs %}
{% tab title="200: OK Yeni ödeme ve aktivite" %}

```typescript
{
    payment: BookkeepingPayment,
    activity: BookkeepingActivity
}
```

{% endtab %}

{% tab title="403: Forbidden İzniniz yok" %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="404: Not Found Kayıt bulunamadı" %}

```javascript
{ code : 1501 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Ödenen tutar, kayıt tutarından fazla olamaz" %}

```javascript
{ code: 1503 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Kurumunuzun mevcut planı yetersiz. Paketinizi yükseltmelisiniz." %}

```javascript
{ code : 1201 }
```

{% endtab %}
{% endtabs %}

### Ödeme Sil

<mark style="color:red;">`DELETE`</mark> `https://cubicl.io/api/v1/bookkeeping/payments/{payment}`

#### Path Parameters

| Name                                      | Type   | Description |
| ----------------------------------------- | ------ | ----------- |
| payment<mark style="color:red;">\*</mark> | string | Ödeme ID'si |

{% tabs %}
{% tab title="200: OK Cari hesap aktivitesi" %}

```javascript
activity : BookkeepingActivity
```

{% endtab %}

{% tab title="403: Forbidden İzniniz yok" %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="404: Not Found Ödeme bulunamadı" %}

```javascript
{ code : 1502 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Kurumunuzun mevcut planı yetersiz. Paketinizi yükseltmelisiniz." %}

```javascript
{ code : 1201 }
```

{% endtab %}
{% endtabs %}

## Veriler

### Cari Hesap Kaydı

```typescript
type BookkeepingEntry = {
    org: string;
    customer: {
        _id: string;
        name: string;
    };
    // Kayıt türü:
    // receivable: Cari hesap alacak bakiyesi. Cubicl kullanıcısının
    // bir ürün veya hizmet karşılığında müşterilerinden aldığı ödeme.
    // payable: Cari hesap borç bakiyesi. Cubicl kullanıcısının
    // bir müşteriye bir ürün veya hizmet karşılığında yaptığı ödeme.
    type: "receivable" | "payable";
    // Cari hesap bakiyesi. 0'dan büyük olmalıdır.
    amount: number;
    // Para birimi. Aşağıdaki değerleri içerebilir:
    // TRY, USD, EUR, GBP, AUD, CAD, CHF, CNY, HKD, NZD, SEK,
    // KRW, SGD, NOK, MXN, INR, ZAR, RUB, BRL, JPY, TWD, DKK,
    // THB, IDR, HUF, CZK, ILS, PHP, AED, COP, SAR, MYR, RON
    currency: string;
    name: string;
    desc: string | null;
    // Toplamın ne kadarı ödeniyor?
    // Toplam tutar yazılırsa "isPaid" değeri otomatik true yapılır.
    paidAmount: number;
    // Tamamen ödendi mi?
    isPaid: boolean;
    // Son ödeme tarihi. Bu tarihten önce ödeme yapılması bekleniyor.
    dueAt: number | null;
    createdAt: number;
    // Kaydı oluşturan kullanıcı
    createdBy: {
        _id: string;
        email: string;
        firstname: string;
        lastname: string;
        language: string;
        // Eğer kullanıcı kurumdan ayrılmışsa "null" değeri tanımlıdır.
        org: string | null;
        // profil fotoğrafı linki
        // "/assets/img/..." formatında ise başına "https://cubicl.io" yazılmalıdır.
        profile: string;
    };
}
```

### Ödeme Kaydı

```typescript
type BookkeepingPayment = {
    // Kurum ID'si
    org: string;
    // Müşteri ID'si
    customer: string;
    // Cari hesap bakiyesi. 0'dan büyük olmalıdır.
    amount: number;
    // Cari hesap kayıt ID'si
    entry: string;
    // Ödeme hakkında isteğe bağlı not
    note: string | null;
    // Kaydı oluşturan kullanıcının ID'si
    createdBy: string;
    createdAt: number;
}
```

### Aktivite Kaydı

```typescript
type BookkeepingActivity = {
    // Kurum ID'si
    org: string;
    // Müşteri ID'si
    customer: string;
    // Cari hesap kaydı ID'si
    entry: string;
    // Ödeme kaydının ID'si.
    // Tip "payment-received", "payment-sent" veya "payment-deleted" ise mevcuttur.
    payment? : string;
    type:
        | 'receivable-created'
        | 'payable-created'
        | 'payment-received'
        | 'payment-sent'
        | 'payment-deleted';
    data: {
        entryName: string;
        // "dueAt" tanımlanmışsa mevcuttur.
        entryDueAt?: number;
        // Cari hesap bakiyesi. 0'dan büyük olmalıdır.
        amount: number;
        // Para birimi. Aşağıdaki değerleri içerebilir:
        // TRY, USD, EUR, GBP, AUD, CAD, CHF, CNY, HKD, NZD, SEK,
        // KRW, SGD, NOK, MXN, INR, ZAR, RUB, BRL, JPY, TWD, DKK,
        // THB, IDR, HUF, CZK, ILS, PHP, AED, COP, SAR, MYR, RON
        currency: string;
        // Tip 'payment-received', 'payment-sent' veya 'payment-deleted' ise gereklidir.
        // Toplamın ne kadarı ödeniyor? 0'dan büyük ve toplam tutardan küçük olmalıdır.
        paidAmount?: number;
    };
    // Kaydı oluşturan kullanıcı
    createdBy: {
        _id: string;
        email: string;
        firstname: string;
        lastname: string;
        language: string;
        // Eğer kullanıcı kurumdan ayrılmışsa "null" değeri tanımlıdır.
        org: string | null;
        // profil fotoğrafı linki
        // "/assets/img/..." formatında ise başına "https://cubicl.io" yazılmalıdır.
        profile: string;
    };
    createdAt: number;
    updatedAt: number;
}
```
