> ## Documentation Index
> Fetch the complete documentation index at: https://docs.muhasip.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# Cari ekstresini oku

> Carinin belge ve ödeme hareketlerini tarihe göre getirir.

## Ne yapar?

Carinin belge ve ödeme hareketlerini tarihe göre getirir. Satış ve verilen ödeme pozitif; alış ve tahsilat negatif etkilidir. Açılış/kapanış tüm seçili döneme aittir; yalnız dönen sayfanın toplamı değildir.

## Ön koşullar ve izin

Gereken izin: **`muhasip:contacts:read`**. Bu kaynak için açık izin tanımlanmalıdır; genel erişim veya yönetici yetkisi bu iznin yerine geçmez. İlişkili bütün kimlikler aynı firma kapsamında olmalıdır.

[Kimlik ve izinler](https://docs.muhasip.pro/baslangic/kimlik-ve-izinler.md) · [Muhasebe veri kuralları](https://docs.muhasip.pro/rehberler/muhasebe-veri-kurallari.md)

## İstek örnekleri

Kimlikleri kendi kayıtlarınızla değiştirin. Yazmada iş niyetine özel anahtarı istekten önce saklayın; örnek anahtarını farklı işler için yeniden kullanmayın. Alan ve cevap tanımları bu sayfanın API referansında yer alır.

```bash cURL theme={null}
curl --request GET 'https://api.muhasip.pro/accounting/contacts/507f1f77bcf86cd799439011/statement?page=1&limit=25' \
  --user "$MUHASIP_API_USER_ID:$MUHASIP_API_SECRET" \
  --header 'Accept: application/json'
```

```php PHP theme={null}
<?php
$apiUserId = getenv("MUHASIP_API_USER_ID");
$secret = getenv("MUHASIP_API_SECRET");
if (!$apiUserId || !$secret) {
    throw new RuntimeException("API kimlik bilgileri eksik.");
}
$curl = curl_init("https://api.muhasip.pro/accounting/contacts/507f1f77bcf86cd799439011/statement?page=1&limit=25");
curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD => $apiUserId . ":" . $secret,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTPHEADER => [
        "Accept: application/json"
    ]
]);
$response = curl_exec($curl);
$httpStatus = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($response === false) {
    curl_close($curl);
    throw new RuntimeException("Bağlantı sonucu belirsiz; yazma işlemini yeniden göndermeden durumunu kontrol edin.");
}
curl_close($curl);
$result = json_decode($response, true, 512, JSON_THROW_ON_ERROR);
echo json_encode(["httpStatus" => $httpStatus, "response" => $result], JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
```

```javascript Node.js theme={null}
async function main() {
  const apiUserId = process.env.MUHASIP_API_USER_ID
  const secret = process.env.MUHASIP_API_SECRET
  if (!apiUserId || !secret) throw new Error("API kimlik bilgileri eksik.")
  const authorization = Buffer.from(`${apiUserId}:${secret}`, "utf8").toString("base64")
  const response = await fetch(
    "https://api.muhasip.pro/accounting/contacts/507f1f77bcf86cd799439011/statement?page=1&limit=25",
    {
      method: "GET",
      headers: {
        Authorization: `Basic ${authorization}`,
        Accept: "application/json"
      },
      signal: AbortSignal.timeout(30000)
    }
  )
  const result = await response.json()
  console.log({ httpStatus: response.status, response: result })
}
main().catch(() => {
  console.error("İstek tamamlanamadı; yazma sonucunu kontrol etmeden yeniden göndermeyin.")
  process.exitCode = 1
})
```

## Cevabı değerlendirin

Aşağıdaki cevap temsilîdir.

```json theme={null}
{
  "status": true,
  "result": {
    "items": [
      {
        "id": "507f1f77bcf86cd799439014",
        "date": "2026-10-19",
        "kind": "invoice",
        "direction": "sale",
        "currencyCode": "TRY",
        "amount": 240,
        "exchangeRate": 1,
        "signedAmount": 240,
        "baseAmount": 240,
        "description": "",
        "receiptNumber": "SATIS-ORNEK-001"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 25,
      "total": 1,
      "totalPages": 1
    },
    "opening": {
      "balances": [],
      "baseCurrencyCode": "TRY",
      "baseBalance": 0
    },
    "closing": {
      "balances": [
        {
          "currencyCode": "TRY",
          "balance": 240
        }
      ],
      "baseCurrencyCode": "TRY",
      "baseBalance": 240
    }
  }
}
```

`page` 1 tabanlıdır; varsayılan `limit=25`, üst sınır 100’dür. `pagination.total` filtrelenmiş kayıt sayısıdır. Eşzamanlı ekleme/düzeltmeler sayfalar arasında sonuçları değiştirebilir.

## Hata durumunda

| HTTP / kod | İzlenecek adım |
| - | - |
| `400 INVALID_REQUEST` | Alanları, tarihi, ondalık hassasiyeti ve desteklenmeyen alanları kontrol edin. |
| `401` / `403` | Kimlik, IP ve açık modül iznini doğrulayın. |
| `404 RESOURCE_NOT_FOUND` | Kaynağın ve bağlı kimliklerin doğru olduğunu, bu kaynak türünde kullanılabildiğini kontrol edin. |
| `409 AMOUNT_OUT_OF_RANGE` | Bakiye temsil sınırını aşmıştır; kayıtları ve tutarları yetkili hesap sorumlusu ile inceleyin. |

[Hata yönetimi](https://docs.muhasip.pro/rehberler/hata-yonetimi.md) · [İşlem takibi](https://docs.muhasip.pro/rehberler/islem-takibi.md)

## Sonraki adım

[Cari entegrasyonunu tamamlayın](https://docs.muhasip.pro/rehberler/cari-entegrasyonu.md).


## OpenAPI

````yaml openapi.json GET /accounting/contacts/{id}/statement
openapi: 3.0.3
info:
  title: Muhasip API
  version: 2026-10-25.1
  description: >-
    Fatura, banka, POS ve tahsilat, GİB e-Arşiv, pazaryeri, online işlemler,
    görevler, ajanda ve takvim entegrasyonları. İşlem alanları, izinler, istek
    ve cevap örnekleri ile hata yönetimi.
servers:
  - url: https://api.muhasip.pro
    description: Muhasip API
security:
  - BasicAuth: []
tags:
  - name: Uygulamalar
  - name: Görev yönetimi
  - name: Ajanda ve takvim
  - name: Fatura
    description: Fatura bağlantısı, belge işlemleri ve muhasebeye aktarım.
  - name: Banka
    description: >-
      Banka hesapları, hareketler, mahsup ve mevcut çalışma alanı alt
      kaynakları.
  - name: POS ve tahsilat
    description: POS hesapları, komisyonlar ve tahsilat bağlantıları.
  - name: GİB e-Arşiv
    description: GİB hesabı, sorgu, taslak ve SMS imzalama.
  - name: Pazaryeri
    description: Trendyol bağlantısı ve sipariş aktarımı.
  - name: Online işlemler
    description: Online işlem ekranı yapılandırması.
  - name: İşlem takibi
    description: Mali işlem durumu ve tekrar çağrı makbuzları.
  - name: Cari hesaplar
    description: Cari hesaplar işlemleri.
  - name: Kasa ve transferler
    description: Kasa ve transferler işlemleri.
  - name: Alış-satış (e-belgesiz)
    description: Alış-satış (e-belgesiz) işlemleri.
  - name: Ödemeler ve mahsuplaşma
    description: Ödemeler ve mahsuplaşma işlemleri.
  - name: Muhasebe seçenekleri
    description: Muhasebe seçenekleri işlemleri.
  - name: E-Pos
    description: >-
      Firmanın kendi banka/ödeme kuruluşu sanal POS hesapları, tarifeler, ödeme
      talepleri ve tam iptal/iade.
paths:
  /accounting/contacts/{id}/statement:
    get:
      tags:
        - Cari hesaplar
      summary: Cari ekstresini oku
      description: >-
        Carinin belge ve ödeme hareketlerini tarihe göre getirir. Satış ve
        verilen ödeme pozitif; alış ve tahsilat negatif etkilidir.
        Açılış/kapanış tüm seçili döneme aittir; yalnız dönen sayfanın toplamı
        değildir.
      operationId: accountingContactsStatement
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            description: 24 karakterli kayıt kimliği.
            pattern: ^[a-f0-9A-F]{24}$
          description: Kaynak kimliği. Transferde kaynak hareket/transfer kimliği.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100000
            default: 1
          description: 1 tabanlı sayfa.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
          description: Sayfa başına kayıt.
        - name: from
          in: query
          required: false
          schema:
            type: string
            description: YYYY-MM-DD; 1900-01-01–2199-12-31. Saat gönderilmez.
            format: date
          description: Başlangıç günü dahil.
        - name: to
          in: query
          required: false
          schema:
            type: string
            description: YYYY-MM-DD; 1900-01-01–2199-12-31. Saat gönderilmez.
            format: date
          description: Bitiş günü dahil.
        - name: currencyCode
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/AccountingCurrency'
          description: Yalnız seçili para birimi.
      responses:
        '200':
          description: Kayıt veya hesaplama sonucu.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                    enum:
                      - true
                  result:
                    $ref: '#/components/schemas/AccountingStatement'
                required:
                  - status
                  - result
                additionalProperties: false
              example:
                status: true
                result:
                  items:
                    - id: 507f1f77bcf86cd799439014
                      date: '2026-10-19'
                      kind: invoice
                      direction: sale
                      currencyCode: TRY
                      amount: 240
                      exchangeRate: 1
                      signedAmount: 240
                      baseAmount: 240
                      description: ''
                      receiptNumber: SATIS-ORNEK-001
                  pagination:
                    page: 1
                    limit: 25
                    total: 1
                    totalPages: 1
                  opening:
                    balances: []
                    baseCurrencyCode: TRY
                    baseBalance: 0
                  closing:
                    balances:
                      - currencyCode: TRY
                        balance: 240
                    baseCurrencyCode: TRY
                    baseBalance: 240
        '400':
          description: Alan, tarih, hassasiyet, gövde veya başlık geçersiz.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiOperationError'
              example:
                status: false
                code: INVALID_REQUEST
                message: Alan, tarih, hassasiyet, gövde veya başlık geçersiz.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: >-
            İlişki, bakiye, kur, sürüm veya işlem kilidi çakışması. İlgili kaydı
            ve işlem durumunu okuyun.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiOperationError'
              example:
                status: false
                code: RECORD_CHANGED
                message: >-
                  İlişki, bakiye, kur, sürüm veya işlem kilidi çakışması. İlgili
                  kaydı ve işlem durumunu okuyun.
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    AccountingCurrency:
      type: string
      description: >-
        İşlem para birimi. Uygulama tutar hassasiyeti bütün bu birimlerde 2
        basamaktır.
      enum:
        - TRY
        - USD
        - EUR
        - GBP
        - CHF
        - CAD
        - AUD
        - JPY
        - CNY
        - AED
        - SAR
        - RUB
        - DKK
        - NOK
        - SEK
    AccountingStatement:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/AccountingStatementLine'
        pagination:
          $ref: '#/components/schemas/AccountingPagination'
        opening:
          $ref: '#/components/schemas/AccountingBalance'
        closing:
          $ref: '#/components/schemas/AccountingBalance'
      required:
        - items
        - pagination
        - opening
        - closing
      additionalProperties: false
      description: >-
        from dahil/to dahil tarih aralığı. opening, from öncesi; closing, to
        sonuna kadarki bakiyedir; yalnız sayfanın toplamı değildir.
        Tarih/kimlik/tür artan sıralıdır; eşzamanlı değişiklikte sayfalar sabit
        anlık görüntü garantisi sunmaz.
    ApiOperationError:
      type: object
      properties:
        status:
          type: boolean
        code:
          type: string
        message:
          type: string
        retryable:
          type: boolean
        reviewRequired:
          type: boolean
        operation:
          $ref: '#/components/schemas/ApiOperation'
        operationId:
          type: string
      required:
        - status
      additionalProperties: true
    AccountingStatementLine:
      type: object
      properties:
        id:
          type: string
          description: 24 karakterli kayıt kimliği.
          pattern: ^[a-f0-9A-F]{24}$
        date:
          type: string
          description: YYYY-MM-DD; 1900-01-01–2199-12-31. Saat gönderilmez.
          format: date
        kind:
          type: string
          enum:
            - invoice
            - payment
        direction:
          type: string
          enum:
            - sale
            - purchase
            - collection
            - disbursement
        currencyCode:
          type: string
        amount:
          type: number
        exchangeRate:
          type: number
        signedAmount:
          type: number
          description: İşaretli yerel para etkisi.
        baseAmount:
          type: number
          description: İşaretli TRY etkisi.
        description:
          type: string
        receiptNumber:
          type: string
        version:
          type: integer
          minimum: 0
          description: >-
            Hareketin sürümü; açılış iptalinde ilgili hareket için If-Match
            değeri olarak kullanılabilir.
      required:
        - id
        - date
        - kind
        - direction
        - currencyCode
        - amount
        - exchangeRate
        - signedAmount
        - baseAmount
        - description
        - receiptNumber
      additionalProperties: false
    AccountingPagination:
      type: object
      properties:
        page:
          type: integer
          minimum: 1
        limit:
          type: integer
          minimum: 1
          maximum: 100
        total:
          type: integer
          minimum: 0
        totalPages:
          type: integer
          minimum: 0
      required:
        - page
        - limit
        - total
        - totalPages
      additionalProperties: false
    AccountingBalance:
      type: object
      properties:
        balances:
          type: array
          items:
            type: object
            properties:
              currencyCode:
                type: string
              balance:
                type: number
            required:
              - currencyCode
              - balance
            additionalProperties: false
        baseCurrencyCode:
          type: string
          enum:
            - TRY
        baseBalance:
          type: number
      required:
        - balances
        - baseCurrencyCode
        - baseBalance
      additionalProperties: false
      description: >-
        Yerel para bakiyeleri ayrı ayrı, TRY karşılığı baseBalance alanında
        gösterilir. Cari pozitif bakiye alacak, negatif bakiye borç; kasada
        pozitif bakiye giriş fazlasıdır.
    ApiOperation:
      type: object
      properties:
        operationId:
          type: string
          pattern: ^[a-f0-9]{64}$
        type:
          type: string
        state:
          type: string
          enum:
            - claimed
            - dispatching
            - provider_accepted
            - succeeded
            - rejected
            - failed_before_dispatch
            - review_required
        reviewRequired:
          type: boolean
        retryable:
          type: boolean
        result:
          $ref: '#/components/schemas/ApiOperationReceipt'
        statusUrl:
          type: string
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 tarih-saat.
        updatedAt:
          type: string
          format: date-time
          description: ISO 8601 tarih-saat.
      required:
        - operationId
        - type
        - state
        - reviewRequired
        - retryable
        - result
        - statusUrl
        - createdAt
        - updatedAt
    Error:
      type: object
      properties:
        status:
          type: boolean
        code:
          type: string
        message:
          type: string
        description:
          type: string
        retryable:
          type: boolean
        reviewRequired:
          type: boolean
        operationId:
          type: string
      required:
        - status
      additionalProperties: true
    RateLimitError:
      type: object
      properties:
        status:
          type: integer
          enum:
            - 429
        error:
          type: string
        message:
          type: string
      required:
        - status
        - error
        - message
    ApiOperationReceipt:
      type: object
      properties:
        resultId:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[A-Za-z0-9_.:-]+$
        transactionId:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[A-Za-z0-9_.:-]+$
        uuid:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[A-Za-z0-9_.:-]+$
        id:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[A-Za-z0-9_.:-]+$
        providerId:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[A-Za-z0-9_.:-]+$
        documentId:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[A-Za-z0-9_.:-]+$
        paymentId:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[A-Za-z0-9_.:-]+$
        orderId:
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[A-Za-z0-9_.:-]+$
        uuids:
          type: array
          items:
            type: string
            maxLength: 200
            pattern: ^[A-Za-z0-9_.:-]+$
          maxItems: 100
        sourcePaymentId:
          type: string
          description: 24 karakterli kayıt kimliği.
          pattern: ^[a-f0-9A-F]{24}$
        destinationPaymentId:
          type: string
          description: 24 karakterli kayıt kimliği.
          pattern: ^[a-f0-9A-F]{24}$
      additionalProperties: false
  responses:
    Unauthorized:
      description: API kimliği/parolası, erişim süresi veya firma doğrulanamadı.
      headers:
        WWW-Authenticate:
          schema:
            type: string
          description: Basic realm="Muhasip API", charset="UTF-8"
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: false
            code: UNAUTHORIZED
            message: API kimlik bilgileri doğrulanamadı.
    Forbidden:
      description: Ürün, IP, modül izni veya kaynak kapsamı uygun değil.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: false
            message: Ürün, IP, modül izni veya kaynak kapsamı uygun değil.
    NotFound:
      description: Kayıt bulunamadı veya bu erişim bağlamında kullanılamıyor.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: false
    RateLimited:
      description: Ortak istek sınırı aşıldı; sayısal status alanı kullanılır.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitError'
          example:
            status: 429
            error: Too Many Requests
            message: Rate limit exceeded. Please try again later.
    InternalError:
      description: İşleme hatası. Bazı işleme hataları 411 olarak dönebilir.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: false
            message: Üzgünüz, bir hata oluştu.
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: >-
        Kullanıcı adı apiUserId, parola secretKey. Aktif ve süresi geçmemiş API
        kullanıcısı ve uygun firma gerekir.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.