> ## 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.

# Tahsilat hareketlerini listeleyin

> Tahsilat bağlantılarını kullanım ve ödeme durumuna göre listeler.

## Ne yapar?

Tahsilat bağlantılarını kullanım ve ödeme durumuna göre listeler. Yalnız okuma. Dönen kimlikleri sonraki ilgili çağrıda kullanın. Artan oluşturulma tarihine göre sıralanır. Liste yanıtında tutar, açıklama, tarih, cari, dealer, isApi ve changeable alanları seçilir; ödeme durum alanları detaydan okunur.

## Ön koşullar ve izin

Etkin API anahtarı ve `muhasip:pos:read` izni gerekir.

İlişkili kayıtlar aynı firmaya ait olmalıdır. Erişim ayarları için [kimlik ve izinler](/baslangic/kimlik-ve-izinler) rehberini inceleyin.

[İstek ve cevap şemalarını indirin](/openapi.json).

## İstek örnekleri

Örnekler temsilîdir. Kimlikleri, belge tarihlerini ve iş verisini kendi yetkili kayıtlarınızla değiştirin. Node.js örnekleri **Node.js 20 veya üzeri** içindir; PHP örnekleri cURL uzantısını kullanır. Hiçbiri otomatik tekrar yapmaz.

<CodeGroup>
  ```bash cURL theme={null}
  curl --request GET 'https://api.muhasip.pro/apps/pos/transactions' \
    --user "$MUHASIP_API_USER_ID:$MUHASIP_API_SECRET" \
    --header 'Accept: */*'
  ```

  ```php PHP theme={null}
  <?php
  $apiUserId = getenv('MUHASIP_API_USER_ID');
  $secretKey = getenv('MUHASIP_API_SECRET');
  if (!$apiUserId || !$secretKey) {
      throw new RuntimeException('API kimlik bilgileri eksik.');
  }
  $headers = ['Accept: */*'];
  $handle = curl_init('https://api.muhasip.pro/apps/pos/transactions');
  curl_setopt_array($handle, [
      CURLOPT_CUSTOMREQUEST => 'GET',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_FOLLOWLOCATION => false,
      CURLOPT_HTTPHEADER => $headers,
      CURLOPT_CONNECTTIMEOUT => 10,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
      CURLOPT_USERPWD => $apiUserId . ':' . $secretKey,
  ]);
  $response = curl_exec($handle);
  $httpStatus = curl_getinfo($handle, CURLINFO_RESPONSE_CODE);
  curl_close($handle);
  if ($response === false) {
      throw new RuntimeException('Bağlantı tamamlanamadı; mali işlemi otomatik tekrarlamayın.');
  }
  if ($httpStatus < 200 || $httpStatus >= 300) {
      throw new RuntimeException('HTTP ' . $httpStatus . '; kaynak hata açıklamasını değerlendirin.');
  }
  // $response gövdesini bu işlemin cevap biçimine göre işleyin; ham cevabı loglamayın.
  echo 'HTTP ' . $httpStatus . PHP_EOL;
  ```

  ```javascript Node.js theme={null}
  async function main() {
    const apiUserId = process.env.MUHASIP_API_USER_ID
    const secretKey = process.env.MUHASIP_API_SECRET
    if (!apiUserId || !secretKey) throw new Error("API kimlik bilgileri eksik.")
    const response = await fetch("https://api.muhasip.pro/apps/pos/transactions", {
      method: "GET",
      redirect: "manual",
      headers: {
        Accept: "*/*",
        Authorization: "Basic " + Buffer.from(`${apiUserId}:${secretKey}`).toString("base64")
      },
      signal: AbortSignal.timeout(30000)
    })
    const data = await response.arrayBuffer()
    if (!response.ok) throw new Error(`HTTP ${response.status}; kaynak hata açıklamasını değerlendirin.`)
    // data gövdesini bu işlemin cevap biçimine göre işleyin; ham cevabı loglamayın.
    console.log("HTTP", response.status)
  }

  main().catch(() => {
    console.error("İstek tamamlanamadı; mali işlemi otomatik tekrarlamayın.")
    process.exitCode = 1
  })
  ```
</CodeGroup>

## Cevabı değerlendirin

Önce HTTP durumunu, ardından bu kaynağın `status` ve sonuç alanlarını değerlendirin. Bütün uçlar aynı sonuç zarfını veya oluşturma için `201` kodunu kullanmaz.

Temsilî başarılı cevap; gerçek hizmet çağrısından alınmamıştır:

```json theme={null}
{
  "status": true,
  "result": [],
  "total": 0
}
```

## Hata durumunda

| HTTP | Bu işlemde anlamı | İzlenecek adım |
| - | - | - |
| 400 | İstek alanları geçersiz. | Alan adını, türünü ve zorunluluğunu kontrol edin; değişmeyen hatalı isteği tekrar göndermeyin. |
| 401 | API kimliği/parolası, erişim süresi veya firma doğrulanamadı. | Anahtar kimliğini, gizli değeri, erişim süresini ve firma erişimini kontrol edin. |
| 403 | API izni, IP kısıtı veya kayıt erişimi uygun değil. | Anahtarın izinlerini, IP kısıtını ve kayıt kimliğini kontrol edin. |
| 411 | Bazı istisnalar HTTP 411 olarak iletilir. | Kaynak iş koşulunu ve varsa sağlayıcı sonucunu kontrol edin. |
| 412 | İşlem gerçekleştirilemedi; bazı hata nesneleri 411 olarak dönebilir. | Kaynak iş koşulunu ve hizmet sonucunu inceleyin; mali etkiyi yalnız HTTP kodundan çıkarmayın. |
| 429 | Ortak istek sınırı aşıldı; sayısal status alanı kullanılır. | Varsa Retry-After bilgisini değerlendirin. Mali çağrıyı otomatik yeniden göndermeyin. |
| 500 | İşlem gerçekleştirilemedi. | İşlem sonucunu inceleyin; bağlantı/hata oluşması mali etkinin hiç başlamadığını kanıtlamaz. |

Ağ kesintisi, zaman aşımı veya JSON olmayan cevap mali etkinin oluşmadığını kanıtlamaz. Ham istek/cevapları genel loglara yazmayın. [Hata yönetimi](/rehberler/hata-yonetimi)

## Sonraki adım

Dönen kimlik ve durumları saklayın; iş akışınızın ilgili detay veya yazma adımında kullanın.

[Kaynak akışı](/rehberler/kaynaklar/pos) · [İşlem takibi](/rehberler/islem-takibi) · [Kapsam ve sınırlamalar](/rehberler/kapsam-ve-sinirlamalar)


## OpenAPI

````yaml openapi.json GET /apps/pos/transactions
openapi: 3.0.3
info:
  title: Muhasip API
  version: 2026-10-18.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ı.
paths:
  /apps/pos/transactions:
    get:
      tags:
        - POS ve tahsilat
      summary: Tahsilat hareketlerini listeleyin
      description: >-
        Tahsilat bağlantılarını kullanım ve ödeme durumuna göre listeler. Yalnız
        okuma. Dönen kimlikleri sonraki ilgili çağrıda kullanın. Artan
        oluşturulma tarihine göre sıralanır. Liste yanıtında tutar, açıklama,
        tarih, cari, dealer, isApi ve changeable alanları seçilir; ödeme durum
        alanları detaydan okunur.
      operationId: paymentsListPaymentTransactions
      parameters:
        - name: posAccountsId
          in: query
          required: false
          description: POS hesabı filtresi.
          schema:
            type: string
        - name: status
          in: query
          required: false
          description: >-
            0 kullanılmamış; 1 başarılı; 2 başarısız; 3 iade/iptal edilmiş.
            Yoksa kullanılmış ve iade edilmemiş.
          schema:
            type: string
        - name: date
          in: query
          required: false
          description: >-
            Tarih aralığı; date[0], date[1] olarak gönderin. Örnek kodlama:
            date[0]=2026-10-01&date[1]=2026-10-18.
          schema:
            type: array
            items:
              type: string
              format: date
            minItems: 2
            maxItems: 2
          style: form
          explode: true
        - name: pageSize
          in: query
          required: false
          description: >-
            Sayfa boyutu; güvenli kullanım 1–50. Kod 50 üstünü düzenli biçimde
            sınırlamaz.
          schema:
            type: integer
            default: 25
        - name: currentPage
          in: query
          required: false
          description: Sayfa numarası; bu uç page kullanmaz.
          schema:
            type: integer
            default: 1
      responses:
        '200':
          description: İşlem sonucu.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                    description: İsteğin başarı durumu.
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/PaymentsPosTransactionListRow'
                  total:
                    type: integer
                additionalProperties: true
                required:
                  - status
              example:
                status: true
                result: []
                total: 0
        '400':
          description: İstek alanları geçersiz.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: false
                message: İstek alanları geçersiz.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '411':
          description: Bazı istisnalar HTTP 411 olarak iletilir.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: false
                message: İşlem gerçekleştirilemedi.
        '412':
          description: İşlem gerçekleştirilemedi; bazı hata nesneleri 411 olarak dönebilir.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: false
                message: >-
                  İşlem gerçekleştirilemedi; bazı hata nesneleri 411 olarak
                  dönebilir.
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          description: İşlem gerçekleştirilemedi.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: false
                message: İşlem gerçekleştirilemedi.
components:
  schemas:
    PaymentsPosTransactionListRow:
      type: object
      properties:
        _id:
          type: string
          description: Kayıt kimliği.
        amount:
          type: number
        createdDate:
          type: string
          format: date-time
        description:
          type: string
        contactsId:
          allOf:
            - $ref: '#/components/schemas/PaymentsContactBrief'
          nullable: true
        dealer:
          type: number
        isApi:
          type: boolean
        changeable:
          type: boolean
      additionalProperties: true
      description: >-
        Liste yanıtında seçilen alanlar. Ödeme durumu ve komisyon detaydan
        okunur.
    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
    PaymentsContactBrief:
      type: object
      properties:
        _id:
          type: string
          description: Kayıt kimliği.
          pattern: ^[a-fA-F0-9]{24}$
        id:
          type: string
          description: Kayıt kimliği.
          pattern: ^[a-fA-F0-9]{24}$
        name:
          type: string
      additionalProperties: true
      description: İlişkili cari bilgisi.
    RateLimitError:
      type: object
      properties:
        status:
          type: integer
          enum:
            - 429
        error:
          type: string
        message:
          type: string
      required:
        - status
        - error
        - message
  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.
    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.
  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.