{
  "openapi": "3.1.1",
  "info": {
    "title": "Eksenova İş Ortağı API",
    "description": "Eksenova İş Ortağı API, üçüncü taraf entegrasyonları için dışa açık uç noktaları sağlar. Fatura ve gider pusulası düzenleme, banka hesabı senkronizasyonu, cari hesaplar, envanter, POS işlemleri, kimlik tespiti, bildirimler ve döviz/altın kurları gibi işlemler bu API üzerinden gerçekleştirilir.",
    "contact": {
      "name": "Eksenova",
      "url": "https://eksenova.com/en/contact/",
      "email": "info@eksenova.com"
    },
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.eksenova.com"
    }
  ],
  "paths": {
    "/api/tenants/{tenantId}/users": {
      "post": {
        "tags": [
          "TenantUsers"
        ],
        "description": "Tenanta kullanıcı ekler; e-posta adresi mevcut bir hesaba aitse o hesabı tenanta bağlar.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddTenantMembershipInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddTenantMembershipInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddTenantMembershipInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AddedTenantMembershipDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddedTenantMembershipDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddedTenantMembershipDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/tenants/{tenantId}/users/{userId}/role": {
      "put": {
        "tags": [
          "TenantUsers"
        ],
        "description": "Kullanıcının bu tenanttaki rolünü değiştirir.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeTenantMembershipRoleInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeTenantMembershipRoleInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeTenantMembershipRoleInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserTenantMembershipDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserTenantMembershipDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserTenantMembershipDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/tenants/{tenantId}/users/{userId}": {
      "delete": {
        "tags": [
          "TenantUsers"
        ],
        "description": "Kullanıcının bu tenanttaki üyeliğini kaldırır.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/users": {
      "get": {
        "tags": [
          "Users"
        ],
        "description": "Kullanıcı listesini getirir.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama anahtar kelimeleri.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsActive",
            "in": "query",
            "description": "Aktif/pasif kullanıcıları filtreler.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için). Boş ise kendi tenantını filtreler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FederationId",
            "in": "query",
            "description": "Filtrelenecek bayi (host hesapları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre (kullanıcının tenant üyeliğinin şubesi).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca tenant üyeliğinde şubesi olmayan kullanıcılar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfUserDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfUserDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfUserDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "Users"
        ],
        "description": "Yeni kullanıcı oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedUserDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedUserDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedUserDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/users/{id}": {
      "put": {
        "tags": [
          "Users"
        ],
        "description": "Kullanıcı bilgilerini günceller.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "Users"
        ],
        "description": "Kullanıcıyı siler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      },
      "get": {
        "tags": [
          "Users"
        ],
        "description": "Kullanıcı bilgisini getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/users/password": {
      "put": {
        "tags": [
          "Users"
        ],
        "description": "Kullanıcıya yeni şifre atar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignPasswordDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignPasswordDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AssignPasswordDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/users/role": {
      "put": {
        "tags": [
          "Users"
        ],
        "description": "Kullanıcıya rol atar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignRoleDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignRoleDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AssignRoleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/users/reseller": {
      "put": {
        "tags": [
          "Users"
        ],
        "description": "Kullanıcıya bayi atar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignFederationDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignFederationDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AssignFederationDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/users/reset-password-sms": {
      "post": {
        "tags": [
          "Users"
        ],
        "description": "Kullanıcının şifresini SMS ile sıfırlar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordViaSmsDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordViaSmsDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordViaSmsDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/users/me": {
      "get": {
        "tags": [
          "Users"
        ],
        "description": "Giriş yapan kullanıcının profil bilgisini getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "Users"
        ],
        "description": "Giriş yapan kullanıcının profil bilgisini günceller.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProfileDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProfileDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProfileDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/users/me/tenants": {
      "get": {
        "tags": [
          "Users"
        ],
        "description": "Giriş yapan kullanıcının üyesi olduğu tenantları getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserTenantMembershipDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserTenantMembershipDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserTenantMembershipDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/users/me/password": {
      "put": {
        "tags": [
          "Users"
        ],
        "description": "Giriş yapan kullanıcının şifresini değiştirir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePasswordDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePasswordDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePasswordDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/tenant/subscription": {
      "get": {
        "tags": [
          "CurrentSubscription"
        ],
        "description": "Oturum açan tenant'ın kendi aboneliğini (plan, fiyat, durum, yenilenme tarihi ve faturalama kayıtları) getirir. Tenant'ın birden fazla aboneliği varsa aktif olan, aktif abonelik yoksa en yeni başlayan döner. Tenant'ın hiç aboneliği yoksa 204 No Content döner.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentSubscriptionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentSubscriptionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentSubscriptionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/tenant/e-document-capabilities": {
      "get": {
        "tags": [
          "TenantEDocumentCapabilities"
        ],
        "description": "Kiracının etkin e-belge türlerini ve her türü sağlayan entegratörü getirir. Host ve bayi kullanıcıları tenantId ile başka kiracıyı sorgulayabilir.",
        "parameters": [
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant ID (yalnızca host ve bayi kullanıcıları için).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantEDocumentCapabilitiesDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantEDocumentCapabilitiesDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantEDocumentCapabilitiesDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/tenant/invoice-series": {
      "get": {
        "tags": [
          "TenantInvoiceSeries"
        ],
        "description": "Oturum açan tenant'ın kendi fatura serilerini (e-Fatura / e-Arşiv) getirir.\r\n**Deprecated**: Use TenantInvoiceSettingsController (/api/tenant/invoice-settings). Kept for backward compatibility.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSeriesDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSeriesDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSeriesDto"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [ ]
      },
      "put": {
        "tags": [
          "TenantInvoiceSeries"
        ],
        "description": "Oturum açan tenant'ın kendi fatura serilerini (e-Fatura / e-Arşiv) günceller.\r\n**Deprecated**: Use TenantInvoiceSettingsController (/api/tenant/invoice-settings). Kept for backward compatibility.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantInvoiceSeriesDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantInvoiceSeriesDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantInvoiceSeriesDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSeriesDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSeriesDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSeriesDto"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [ ]
      }
    },
    "/api/tenant/invoice-settings": {
      "get": {
        "tags": [
          "TenantInvoiceSettings"
        ],
        "description": "Oturum açan tenant'ın kendi belge ayarlarını (e-Fatura / e-Arşiv / e-İrsaliye serileri ve fatura notu) getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSettingsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSettingsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSettingsDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "TenantInvoiceSettings"
        ],
        "description": "Oturum açan tenant'ın kendi belge ayarlarını günceller. Gönderilmeyen ya da boş bırakılan alan kaldırılır.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantInvoiceSettingsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantInvoiceSettingsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantInvoiceSettingsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSettingsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSettingsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantInvoiceSettingsDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/tenant/invoice-settings/issue-date-defaults": {
      "get": {
        "tags": [
          "TenantInvoiceSettings"
        ],
        "description": "Oturum açan tenant'ın fatura ve gider pusulası oluşturma ekranlarında varsayılan olarak seçili gelecek belge tarihi tercihlerini getirir. Belge oluşturan her tenant kullanıcısı okuyabilir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantIssueDateDefaultsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantIssueDateDefaultsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantIssueDateDefaultsDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/tenant-branches": {
      "get": {
        "tags": [
          "TenantBranches"
        ],
        "description": "Şube listesini getirir. Arama filtresi verildiğinde önce tam eşleşen, sonra adı arama ifadesiyle başlayan, sonra içeren şubeler sıralanır.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Şube adına göre arama. Önce tam eşleşme, sonra önek, sonra içeren adlar sıralanır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Şubeleri listelenecek tenant ID'si (host ve muhasebeci için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfTenantBranchDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfTenantBranchDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfTenantBranchDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "TenantBranches"
        ],
        "description": "Yeni bir şube oluşturur.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Şubenin açılacağı tenant ID'si (host için).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantBranchInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantBranchInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantBranchInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBranchDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBranchDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBranchDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/tenant-branches/stats": {
      "get": {
        "tags": [
          "TenantBranches"
        ],
        "description": "Verilen şubelerin istatistiklerini toplu olarak getirir.",
        "parameters": [
          {
            "name": "BranchIds",
            "in": "query",
            "description": "İstatistiği getirilecek şubelerin kimlikleri.",
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "İstatistik aralığının başlangıcı. Boşsa son 30 gün kullanılır.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "İstatistik aralığının bitişi. Boşsa şu an kullanılır.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Şubelerin bağlı olduğu tenant ID'si (host ve muhasebeci için).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TenantBranchStatsDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TenantBranchStatsDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TenantBranchStatsDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/tenant-branches/{id}": {
      "get": {
        "tags": [
          "TenantBranches"
        ],
        "description": "Belirtilen şubeyi istatistikleri, son hareketleri ve kullanıcılarıyla birlikte getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "İstatistik aralığının başlangıcı. Boşsa son 30 gün kullanılır.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "İstatistik aralığının bitişi. Boşsa şu an kullanılır.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Şubenin bağlı olduğu tenant ID'si (host ve muhasebeci için).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedTenantBranchDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedTenantBranchDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedTenantBranchDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "TenantBranches"
        ],
        "description": "Belirtilen şubeyi yeniden adlandırır.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          {
            "name": "tenantId",
            "in": "query",
            "description": "Şubenin bağlı olduğu tenant ID'si (host için).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantBranchInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantBranchInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantBranchInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBranchDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBranchDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBranchDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "TenantBranches"
        ],
        "description": "Belirtilen şubeyi siler. Tenantın son şubesi ve kayıt bağlı şubeler silinemez.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          {
            "name": "tenantId",
            "in": "query",
            "description": "Şubenin bağlı olduğu tenant ID'si (host için).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/tenant-branches/{id}/assign": {
      "post": {
        "tags": [
          "TenantBranches"
        ],
        "description": "Verilen türdeki kayıtları belirtilen şubeye atar. Türün AssignBranch yetkisi gerekir; hedef şube ve bütün kayıtlar çağıranın şube politikasında görünür olmalıdır. Kısmi uygulama yapılmaz.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          {
            "name": "tenantId",
            "in": "query",
            "description": "Şubenin bağlı olduğu tenant ID'si (host için).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignTenantBranchInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignTenantBranchInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AssignTenantBranchInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AssignedTenantBranchRecordsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssignedTenantBranchRecordsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssignedTenantBranchRecordsDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/settings/inventory/default-inventory": {
      "put": {
        "tags": [
          "InventorySettings"
        ],
        "description": "Varsayılan envanteri ayarlar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetDefaultInventoryInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetDefaultInventoryInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetDefaultInventoryInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/sanctions/v2/screen/person": {
      "post": {
        "tags": [
          "Sanctions"
        ],
        "description": "Bir kişiyi yaptırım ve PEP listelerine karşı tarar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenPersonInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenPersonInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenPersonInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SanctionsScreeningResultV2Dto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SanctionsScreeningResultV2Dto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SanctionsScreeningResultV2Dto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/sanctions/screen/entity": {
      "post": {
        "tags": [
          "Sanctions"
        ],
        "description": "Bir kuruluşu yaptırım listelerine karşı tarar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenEntityInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenEntityInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenEntityInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SanctionsScreeningResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SanctionsScreeningResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SanctionsScreeningResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/sanctions/screen/address": {
      "post": {
        "tags": [
          "Sanctions"
        ],
        "description": "Bir adresi yaptırım listelerine karşı tarar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenAddressInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenAddressInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenAddressInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SanctionsScreeningResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SanctionsScreeningResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SanctionsScreeningResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/roles": {
      "get": {
        "tags": [
          "Roles"
        ],
        "description": "Rol listesini getirir.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama anahtar kelimeleri.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için). Boş ise kendi tenantını filtreler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FederationId",
            "in": "query",
            "description": "Filtrelenecek bayi (host hesapları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfRoleDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfRoleDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfRoleDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "Roles"
        ],
        "description": "Yeni rol oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedRoleDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedRoleDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedRoleDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/roles/{id}": {
      "put": {
        "tags": [
          "Roles"
        ],
        "description": "Rolü günceller.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedRoleDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedRoleDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedRoleDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "Roles"
        ],
        "description": "Rolü siler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      },
      "get": {
        "tags": [
          "Roles"
        ],
        "description": "Rolü getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedRoleDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedRoleDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedRoleDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/roles/{id}/permissions": {
      "put": {
        "tags": [
          "Roles"
        ],
        "description": "Role yetki atar.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/roles/permissions": {
      "get": {
        "tags": [
          "Roles"
        ],
        "description": "Yetki listesini getirir.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Yetkilerde arama yapılacak metin.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPermissionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPermissionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPermissionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/roles/v2/{id}/permissions": {
      "get": {
        "tags": [
          "Roles"
        ],
        "description": "Rolün yetkilerini ve politikalarını yetki kategorisine göre gruplayarak tek çağrıda getirir. Yanıt, kategori adından (Kts.BankAccountTransactions) o kategorinin yetki ve politika durumuna eşlemedir. Politikalar da döndüğü için ayrıca politika listeleme yetkisi ister.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/RolePermissionCategoryDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/RolePermissionCategoryDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/RolePermissionCategoryDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "Roles"
        ],
        "description": "Rolün yetkilerini ve politikalarını yetki kategorisine göre tek çağrıda günceller. Gövde, kategori adından (Kts.BankAccountTransactions) o kategorinin yeni durumuna eşlemedir. Gövdede yer almayan kategoriler olduğu gibi bırakılır; gönderilen kategorilerde ise listelenmeyen yetki ve politikalar kaldırılır. Yetki gönderildiğinde yetki atama, politika gönderildiğinde politika atama yetkisi aranır.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/UpdateRolePermissionCategoryInput"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/UpdateRolePermissionCategoryInput"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/UpdateRolePermissionCategoryInput"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/role-policies/{roleId}": {
      "get": {
        "tags": [
          "RolePolicies"
        ],
        "description": "Rolün politikalarını ve yapılandırmalarını getirir.",
        "parameters": [
          {
            "name": "roleId",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RolePolicyDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RolePolicyDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RolePolicyDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "RolePolicies"
        ],
        "description": "Rolün politikalarını topluca günceller.",
        "parameters": [
          {
            "name": "roleId",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRolePoliciesInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRolePoliciesInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRolePoliciesInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/reports": {
      "post": {
        "tags": [
          "Reports"
        ],
        "description": "Yeni bir rapor oluşturma talebini sıraya alır.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QueueReportInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QueueReportInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QueueReportInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QueuedReportDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueuedReportDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueuedReportDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Rapor listesini getirir.",
        "parameters": [
          {
            "name": "Type",
            "in": "query",
            "description": "Rapor tipi.",
            "schema": {
              "enum": [
                "InvoicesByTemplate",
                "InvoicesByTimePeriod",
                "InvoicesByDocumentType",
                "InvoicesByInvoiceType",
                "InvoicesByCurrency",
                "BankTransactionsByBank",
                "BankTransactionsByDirection",
                "BankTransactionsByRiskCategory",
                "BankTransactionsByTimePeriod",
                "BankTransactionsByCurrency",
                "IdentityVerificationsByMethod",
                "IdentityVerificationsByRiskLevel",
                "IdentityVerificationsByTimePeriod",
                "IdentityVerificationsByPurpose",
                "RiskAnalysisOverview",
                "GoldDealingInvoicesByFineness",
                "InventoryStockSnapshot",
                "InventoryMovementsByTimePeriod"
              ],
              "type": "string"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "Rapor durumu.",
            "schema": {
              "enum": [
                "Pending",
                "Running",
                "Completed",
                "Failed"
              ],
              "type": "string"
            }
          },
          {
            "name": "CreatorId",
            "in": "query",
            "description": "Raporu oluşturan kullanıcı ID'si.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Rapor sahibi tenant ID'si.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Başlangıç tarihi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Bitiş tarihi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi (rapor adı).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfReportDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfReportDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfReportDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/reports/{id}": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Detaylı rapor bilgisini getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedReportDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedReportDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedReportDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "Reports"
        ],
        "description": "Raporu siler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/reports/{id}/excel": {
      "get": {
        "tags": [
          "Reports"
        ],
        "description": "Raporu Excel dosyası olarak indirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/pos-accounts": {
      "get": {
        "tags": [
          "PosAccounts"
        ],
        "description": "POS hesaplarını (üye işyerlerini) listeler",
        "parameters": [
          {
            "name": "Bank",
            "in": "query",
            "description": "Filtrenecek banka.",
            "schema": {
              "enum": [
                "GarantiBBVA",
                "Akbank",
                "QNBFinansbank",
                "YapiKredi",
                "IsBankasi",
                "ZiraatBankasi",
                "HalkBankasi",
                "VakifBank",
                "DenizBank",
                "TEB",
                "ING",
                "HSBC",
                "Enpara",
                "Kuveytturk",
                "VakifKatilim",
                "Albaraka",
                "TekstilBankasi",
                "Sekerbank",
                "TurkiyeFinans",
                "DunyaKatilim",
                "Anadolubank",
                "ZiraatKatilim",
                "TurkishBank",
                "Fibabanka",
                "Turklandbank",
                "PashaBank",
                "Alternatifbank",
                "BurganBank",
                "AktifYatirim",
                "OdeaBank",
                "ColendiBank",
                "FupsBank",
                "EmlakKatilim",
                "HayatFinans",
                "TomKatilim"
              ],
              "type": "string"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Filtrenecek para birimi.",
            "schema": {
              "enum": [
                "TRY",
                "USD",
                "EUR",
                "GBP",
                "XAU",
                "CHF",
                "CAD",
                "RUB",
                "AED",
                "AUD",
                "DKK",
                "SEK",
                "NOK",
                "JPY",
                "KWD",
                "ZAR",
                "BHD",
                "LYD",
                "SAR",
                "IQD",
                "ILS",
                "INR",
                "MXN",
                "HUF",
                "NZD",
                "BRL",
                "IDR",
                "CZK",
                "PLN",
                "RON",
                "CNY",
                "ARS",
                "ALL",
                "AZN",
                "BAM",
                "CLP",
                "COP",
                "CRC",
                "DZD",
                "EGP",
                "HKD",
                "ISK",
                "KRW",
                "KZT",
                "LBP",
                "LKR",
                "MAD",
                "MDL",
                "MKD",
                "MYR",
                "OMR",
                "PEN",
                "PHP",
                "PKR",
                "QAR",
                "RSD",
                "SGD",
                "SYP",
                "THB",
                "TWD",
                "UAH",
                "UYU",
                "GEL",
                "TND",
                "BGN"
              ],
              "type": "string"
            }
          },
          {
            "name": "IsDemo",
            "in": "query",
            "description": "Demo verisi mi?",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPosAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPosAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPosAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/pos-accounts/{id}": {
      "get": {
        "tags": [
          "PosAccounts"
        ],
        "description": "POS hesabını getirir",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "PosAccounts"
        ],
        "description": "POS hesabını siler",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/pos-accounts/{id}/synchronize": {
      "post": {
        "tags": [
          "PosAccounts"
        ],
        "description": "POS hesabının manuel senkronizasyonunu arka plan işi olarak kuyruğa alır",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QueuedPosAccountSynchronizationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueuedPosAccountSynchronizationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueuedPosAccountSynchronizationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/pos-accounts/discover": {
      "post": {
        "tags": [
          "PosAccounts"
        ],
        "description": "Kuveyt Türk üye işyeri numaralarının keşfini arka plan işi olarak kuyruğa alır. Tenant kendi hesabı için; host ve bayi tenantId belirterek çalıştırır.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/DiscoverPosMerchantsInput"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/DiscoverPosMerchantsInput"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/DiscoverPosMerchantsInput"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QueuedPosMerchantDiscoveryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueuedPosMerchantDiscoveryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueuedPosMerchantDiscoveryDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/pos-transactions": {
      "get": {
        "tags": [
          "PosTransactions"
        ],
        "description": "POS işlemlerini listeler",
        "parameters": [
          {
            "name": "IsDemo",
            "in": "query",
            "description": "Demo verisi mi?",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Filtrelenecek para birimi.",
            "schema": {
              "enum": [
                "TRY",
                "USD",
                "EUR",
                "GBP",
                "XAU",
                "CHF",
                "CAD",
                "RUB",
                "AED",
                "AUD",
                "DKK",
                "SEK",
                "NOK",
                "JPY",
                "KWD",
                "ZAR",
                "BHD",
                "LYD",
                "SAR",
                "IQD",
                "ILS",
                "INR",
                "MXN",
                "HUF",
                "NZD",
                "BRL",
                "IDR",
                "CZK",
                "PLN",
                "RON",
                "CNY",
                "ARS",
                "ALL",
                "AZN",
                "BAM",
                "CLP",
                "COP",
                "CRC",
                "DZD",
                "EGP",
                "HKD",
                "ISK",
                "KRW",
                "KZT",
                "LBP",
                "LKR",
                "MAD",
                "MDL",
                "MKD",
                "MYR",
                "OMR",
                "PEN",
                "PHP",
                "PKR",
                "QAR",
                "RSD",
                "SGD",
                "SYP",
                "THB",
                "TWD",
                "UAH",
                "UYU",
                "GEL",
                "TND",
                "BGN"
              ],
              "type": "string"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Filtrelenecek POS işlem türü (Satış/İade).",
            "schema": {
              "enum": [
                "Sale",
                "Refund"
              ],
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "UTC zaman dilimine göre filtrelenecek başlangıç tarih ve saati.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "UTC zaman dilimine göre filtrelenecek bitiş tarih ve saati.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PosAccountIds",
            "in": "query",
            "description": "Filtrelenecek POS hesabı (üye işyeri) ID'leri.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "HasInvoice",
            "in": "query",
            "description": "Faturası olan (true) veya olmayan (false) POS işlemlerini filtreler; belirtilmezse tümü getirilir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "MaxAmount",
            "in": "query",
            "description": "Filtrelenecek maksimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinAmount",
            "in": "query",
            "description": "Filtrelenecek minimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPosTransactionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPosTransactionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPosTransactionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/pos-transactions/{id}": {
      "get": {
        "tags": [
          "PosTransactions"
        ],
        "description": "POS işlemini getirir",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosTransactionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosTransactionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosTransactionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/pos-devices": {
      "get": {
        "tags": [
          "PosDevices"
        ],
        "description": "POS cihazlarını listeler.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Vendor",
            "in": "query",
            "description": "Filtrelenecek üretici.",
            "schema": {
              "enum": [
                "Pavo"
              ],
              "type": "string"
            }
          },
          {
            "name": "IsEnabled",
            "in": "query",
            "description": "Aktif/pasif duruma göre filtrele.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPosDeviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPosDeviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfPosDeviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "PosDevices"
        ],
        "description": "Yeni bir POS cihazı oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePosDeviceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePosDeviceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePosDeviceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosDeviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosDeviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosDeviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/pos-devices/{id}": {
      "get": {
        "tags": [
          "PosDevices"
        ],
        "description": "POS cihazını getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosDeviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosDeviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosDeviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "PosDevices"
        ],
        "description": "POS cihazını günceller.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePosDeviceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePosDeviceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePosDeviceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosDeviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosDeviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedPosDeviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "PosDevices"
        ],
        "description": "POS cihazını siler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/pos-devices/{id}/private-key": {
      "get": {
        "tags": [
          "PosDevices"
        ],
        "description": "POS cihazının özel anahtarını (private key) indirir. Hassas bilgi.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": { }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/permissions": {
      "get": {
        "tags": [
          "PermissionsDefinitions"
        ],
        "description": "Yetki tanımlarını modüllerine göre gruplandırarak getirir.",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/permissions/v2": {
      "get": {
        "tags": [
          "PermissionsDefinitions"
        ],
        "description": "Yetki tanımlarını ve her kategoriye bağlı politika tanımlarını yetki kategorisine göre gruplayarak getirir. Yanıt, kategori adından (Kts.BankAccountTransactions) o kategorinin tanımlarına eşlemedir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/PermissionCategoryDefinitionDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/PermissionCategoryDefinitionDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/PermissionCategoryDefinitionDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/permissions/granted": {
      "get": {
        "tags": [
          "PermissionsDefinitions"
        ],
        "description": "Giriş yapmış kullanıcının sahip olduğu yetkileri getirir.",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/notification-policies": {
      "get": {
        "tags": [
          "NotificationPolicies"
        ],
        "description": "Kapsamdaki rollerin bildirim politikası matrisini getirir.",
        "parameters": [
          {
            "name": "TenantId",
            "in": "query",
            "description": "Politikaları görüntülenecek tenant. Sadece host kullanıcıları belirtebilir.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FederationId",
            "in": "query",
            "description": "Politikaları görüntülenecek bayi. Sadece host kullanıcıları belirtebilir.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPolicyMatrixDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPolicyMatrixDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPolicyMatrixDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "NotificationPolicies"
        ],
        "description": "Kapsamdaki rollerin bildirim politikalarını günceller ve güncel matrisi döner.",
        "parameters": [
          {
            "name": "TenantId",
            "in": "query",
            "description": "Politikaları görüntülenecek tenant. Sadece host kullanıcıları belirtebilir.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FederationId",
            "in": "query",
            "description": "Politikaları görüntülenecek bayi. Sadece host kullanıcıları belirtebilir.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateNotificationPoliciesInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateNotificationPoliciesInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateNotificationPoliciesInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPolicyMatrixDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPolicyMatrixDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPolicyMatrixDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/notification-preferences": {
      "get": {
        "tags": [
          "NotificationPreferences"
        ],
        "description": "Giriş yapan kullanıcının bildirim tercih matrisini getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationPreferenceDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationPreferenceDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationPreferenceDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "NotificationPreferences"
        ],
        "description": "Giriş yapan kullanıcının bildirim tercihlerini günceller ve güncel matrisi döner.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateNotificationPreferencesInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateNotificationPreferencesInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateNotificationPreferencesInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationPreferenceDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationPreferenceDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationPreferenceDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/notifications": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "description": "Giriş yapan kullanıcının bildirimlerini listeler.",
        "parameters": [
          {
            "name": "Type",
            "in": "query",
            "description": "Bildirim tipi filtresi.",
            "schema": {
              "enum": [
                "IdentityVerificationRisk",
                "BankTransactionRisk",
                "TenantAlert",
                "SubscriptionRenewal",
                "TenantCreated",
                "TenantCommentCreated",
                "TenantRegistration",
                "ContactRequest",
                "LeadCreated",
                "LeadAlert",
                "LeadCommentCreated",
                "LeadConverted",
                "ReportGenerated",
                "BackgroundJobFailed",
                "InvoiceCreationFailed",
                "InvoiceReconciliationRequired",
                "BankTransactionImportFailed",
                "InvoiceError",
                "TenantFederationAssignmentChanged",
                "LeadResellerAssignmentChanged",
                "LowCredits",
                "BankCredentialsAccessIssue",
                "BankCredentialsAccessRestored",
                "PublicFeedUnverifiedAccess",
                "PublicFeedExcessiveUsage",
                "PublicFeedBlockedConnection",
                "TenantRegistrationAlert",
                "DespatchAdviceError",
                "InvoiceSubmissionError",
                "InvoiceSubmissionRecovered",
                "InvoiceIssuingFailed",
                "DespatchAdviceReconciliationRequired",
                "DespatchAdviceTenantError",
                "IncomingDocumentImportFailed",
                "Manual",
                "MissingInvoices",
                "SelfKycIdentityVerificationSubmitted",
                "CustodyReturnDue",
                "MissingExpenseBills",
                "Announcement",
                "IncomingBankTransaction",
                "OutgoingBankTransaction",
                "GoldDealingWholesalerLinkRequestCreated",
                "EVoucherError",
                "EVoucherTenantError",
                "EVoucherReconciliationRequired",
                "EVoucherSmsFailed"
              ],
              "type": "string"
            }
          },
          {
            "name": "Severity",
            "in": "query",
            "description": "Ciddiyet filtresi.",
            "schema": {
              "enum": [
                "Info",
                "Warning",
                "Critical"
              ],
              "type": "string"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "description": "Kategori filtresi.",
            "schema": {
              "enum": [
                "ManualReview"
              ],
              "type": "string"
            }
          },
          {
            "name": "ReferenceEntityType",
            "in": "query",
            "description": "Referans varlık tipi filtresi.",
            "schema": {
              "enum": [
                "Report",
                "IdentityVerification",
                "BankAccountTransaction",
                "Invoice",
                "InvoiceBatch",
                "DespatchAdvice",
                "Lead",
                "Tenant",
                "TenantRegistration",
                "ContactRequest",
                "TenantSubscription",
                "ExternalAccountCreditTransaction",
                "BankAccountCredential",
                "PublicFeedConnection",
                "HangfireJob",
                "InvoicePollingLane",
                "DespatchAdvicePollingLane",
                "GoldDealingWholesalerTenantLinkRequest",
                "Custody",
                "EVoucher",
                "EVoucherPollingLane"
              ],
              "type": "string"
            }
          },
          {
            "name": "IsRead",
            "in": "query",
            "description": "Okundu mu filtresi.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsDigest",
            "in": "query",
            "description": "Gruplanmış bildirim filtresi.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Başlangıç zamanı filtresi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Bitiş zamanı filtresi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfNotificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfNotificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfNotificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/notifications/{id}": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "description": "Bildirim detayını getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/notifications/{id}/mark-as-read": {
      "post": {
        "tags": [
          "Notifications"
        ],
        "description": "Bildirimi okundu olarak işaretler ve güncel okunmamış sayısını döner.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UnreadCountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnreadCountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnreadCountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/notifications/mark-all-as-read": {
      "post": {
        "tags": [
          "Notifications"
        ],
        "description": "Tüm bildirimleri okundu olarak işaretler ve güncel okunmamış sayısını döner.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UnreadCountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnreadCountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnreadCountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/notifications/unread-count": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "description": "Okunmamış bildirim sayısını getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UnreadCountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnreadCountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnreadCountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/notification-types": {
      "get": {
        "tags": [
          "NotificationTypes"
        ],
        "description": "Giriş yapan kullanıcının görebileceği bildirim tipi kataloğunu getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationTypeDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationTypeDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationTypeDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/modules/gold-dealing/wholesalers": {
      "get": {
        "tags": [
          "GoldDealingWholesalers"
        ],
        "description": "Oturum açan tenant'ın bağlı olduğu toptancıları getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoldDealingWholesalerDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoldDealingWholesalerDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoldDealingWholesalerDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/modules/gold-dealing/wholesaler-tenant-link-requests": {
      "post": {
        "tags": [
          "GoldDealingWholesalerTenantLinkRequests"
        ],
        "description": "Oturum açan toptancı için bir veya birden fazla vergi numarasına bağlantı talebi oluşturur. Sistemde kayıtlı olmayan vergi numaraları da kabul edilir; zaten bağlı olan ya da sonuçlanmamış talebi bulunan vergi numaraları yok sayılır.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGoldDealingWholesalerTenantLinkRequestsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGoldDealingWholesalerTenantLinkRequestsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGoldDealingWholesalerTenantLinkRequestsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedGoldDealingWholesalerTenantLinkRequestsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedGoldDealingWholesalerTenantLinkRequestsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedGoldDealingWholesalerTenantLinkRequestsDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "get": {
        "tags": [
          "GoldDealingWholesalerTenantLinkRequests"
        ],
        "description": "Bağlantı taleplerini listeler.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Firma unvanı veya vergi numarasına göre arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Talep durumlarına göre filtre. Birden fazla durum gönderilebilir.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "Pending",
                  "Approved",
                  "Rejected"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "WholesalerTenantId",
            "in": "query",
            "description": "Talebi oluşturan toptancıya göre filtre (yalnızca host ve bayi kullanıcıları).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Talebin oluşturulma zamanının başlangıcı.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Talebin oluşturulma zamanının bitişi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfGoldDealingWholesalerTenantLinkRequestDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfGoldDealingWholesalerTenantLinkRequestDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfGoldDealingWholesalerTenantLinkRequestDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/modules/gold-dealing/wholesaler-tenant-link-requests/{id}": {
      "get": {
        "tags": [
          "GoldDealingWholesalerTenantLinkRequests"
        ],
        "description": "Bağlantı talebinin detayını getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoldDealingWholesalerTenantLinkRequestDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoldDealingWholesalerTenantLinkRequestDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoldDealingWholesalerTenantLinkRequestDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/modules/gold-dealing/wholesaler-tenants": {
      "get": {
        "tags": [
          "GoldDealingWholesalerTenants"
        ],
        "description": "Toptancı bağlantılarını listeler.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Toptancı ya da tenant adı, unvanı ve vergi numarasına göre arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WholesalerTenantId",
            "in": "query",
            "description": "Toptancıya göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Bağlı tenant'a göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfGoldDealingWholesalerTenantDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfGoldDealingWholesalerTenantDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfGoldDealingWholesalerTenantDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "GoldDealingWholesalerTenants"
        ],
        "description": "Bir toptancı ile bir veya birden fazla tenant arasında bağlantıyı doğrudan kurar; önceden bağlantı talebi gönderilmiş olması gerekmez. Zaten bağlı tenant'lar yok sayılır.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGoldDealingWholesalerTenantsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGoldDealingWholesalerTenantsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGoldDealingWholesalerTenantsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedGoldDealingWholesalerTenantsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedGoldDealingWholesalerTenantsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedGoldDealingWholesalerTenantsDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/modules/gold-dealing/wholesaler-tenants/{id}": {
      "delete": {
        "tags": [
          "GoldDealingWholesalerTenants"
        ],
        "description": "Toptancı bağlantısını kaldırır.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/{id}": {
      "get": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Belirtilen ID'ye sahip cari kaydını detaylı olarak getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Belirtilen ID'ye sahip cari kaydını günceller.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLegalEntityInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLegalEntityInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLegalEntityInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Belirtilen ID'ye sahip cari kaydını siler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/by-entity-number/{entityNumber}": {
      "get": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Belirtilen T.C. / vergi kimlik numarasına sahip cari kaydını detaylı olarak getirir.",
        "parameters": [
          {
            "name": "entityNumber",
            "in": "path",
            "description": "T.C. / vergi kimlik numarası.",
            "required": true,
            "schema": {
              "maxLength": 11,
              "minLength": 6,
              "pattern": "^[0-9]{6,11}$",
              "type": "string",
              "description": "Vergi kimlik numarası (VKN) veya T.C. kimlik numarası (TCKN). 10 haneden kısa gönderilen VKN değerleri başına sıfır eklenerek 10 haneye tamamlanır; 11 haneli gönderilen değerler TCKN kabul edilir ve TCKN kontrol hanesi doğrulaması yapılır, bu doğrulamayı geçmeyen 11 haneli değerler reddedilir. Yanıtlarda her zaman sıfır dolgulu kanonik biçimde (VKN için 10, TCKN için 11 hane) döner.",
              "example": "1234567890"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities": {
      "get": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Cari kayıtlarının listesini getirir.",
        "parameters": [
          {
            "name": "CoreBusiness",
            "in": "query",
            "description": "Filtrelenecek faaliyet alanları. Verilen değerlerden herhangi biri cari kaydının faaliyet alanlarından biriyle eşleşirse kayıt döner.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "GoldDealing",
                  "Staff"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi (cari adı, T.C. / vergi kimlik numarası, adres vs.)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsHidden",
            "in": "query",
            "description": "Gizli kayıtlar getirilsin mi? (null: hepsi, true: sadece gizli, false: sadece görünen)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasCoreBusiness",
            "in": "query",
            "description": "Faaliyet alanı tanımlı mı? null: hepsi, true: en az bir faaliyet alanı olanlar, false: faaliyet alanı belirtilmemiş olanlar.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasRelatedRecords",
            "in": "query",
            "description": "Bağlı kayıt (banka hareketi, fatura, gider pusulası, müşteri işlemi, kimlik tespiti) durumuna göre filtre. null: hepsi, true: en az bir bağlı kaydı olanlar, false: hiç bağlı kaydı olmayanlar.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Dışa aktarımın yapılacağı tenant ID'si. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için, host ise herhangi bir tenant için kullanır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfLegalEntityDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfLegalEntityDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfLegalEntityDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Yeni bir cari kaydı oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLegalEntityInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLegalEntityInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLegalEntityInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/stats": {
      "get": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Verilen cari kayıtlarının ilişkili kayıt sayaçlarını toplu olarak getirir.",
        "parameters": [
          {
            "name": "LegalEntityIds",
            "in": "query",
            "description": "İstatistiği getirilecek cari kayıtlarının kimlikleri.",
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegalEntityStatsSummaryDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegalEntityStatsSummaryDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegalEntityStatsSummaryDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/{id}/files": {
      "post": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Belirtilen ID'ye sahip cari kaydına dosyalar ekler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddLegalEntityFilesInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddLegalEntityFilesInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddLegalEntityFilesInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/{id}/hide": {
      "post": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Belirtilen ID'ye sahip cari kaydını gizler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/{id}/show": {
      "post": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Belirtilen ID'ye sahip cari kaydını tekrar görünür yapar.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedLegalEntityDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/sync": {
      "post": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Carileri muhasebe programından çeker; eşleşenlerin muhasebe kodunu yazar, kayıtlı olmayanları açar.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LegalEntityAccountingSyncResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegalEntityAccountingSyncResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegalEntityAccountingSyncResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/import/excel": {
      "post": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Excel dosyasından toplu cari kaydını içe aktarır. Atomik: tek satır bile geçersizse hiçbir kayıt işlenmez.",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LegalEntityImportResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegalEntityImportResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegalEntityImportResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/import/template": {
      "get": {
        "tags": [
          "LegalEntities"
        ],
        "description": "Cari içe aktarma için boş Excel şablonunu indirir.",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/kvkk-consents": {
      "get": {
        "tags": [
          "KvkkConsents"
        ],
        "description": "KVKK onay kayıtlarını sayfalı şekilde listeler.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Telefon numarası araması.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ConsentStatus",
            "in": "query",
            "description": "KVKK onay durumu.",
            "schema": {
              "enum": [
                "Pending",
                "Rejected",
                "Granted",
                "Redeemed"
              ],
              "type": "string"
            }
          },
          {
            "name": "RequestReason",
            "in": "query",
            "description": "KVKK onay talebinin sebebi.",
            "schema": {
              "enum": [
                "IdentityVerification",
                "SelfKyc"
              ],
              "type": "string"
            }
          },
          {
            "name": "SmsProvider",
            "in": "query",
            "description": "SMS sağlayıcısı.",
            "schema": {
              "enum": [
                "Netgsm",
                "Verimor"
              ],
              "type": "string"
            }
          },
          {
            "name": "RequestedByUserId",
            "in": "query",
            "description": "Talep eden kullanıcı.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CreationTimeStart",
            "in": "query",
            "description": "Oluşturulma tarihi başlangıcı.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationTimeEnd",
            "in": "query",
            "description": "Oluşturulma tarihi bitişi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ConsentTimeStart",
            "in": "query",
            "description": "Onay tarihi başlangıcı.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ConsentTimeEnd",
            "in": "query",
            "description": "Onay tarihi bitişi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için). Boş ise kendi tenantını filtreler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfKvkkConsentDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfKvkkConsentDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfKvkkConsentDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/kvkk-consents/{id}": {
      "get": {
        "tags": [
          "KvkkConsents"
        ],
        "description": "Belirli bir KVKK onay kaydını getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KvkkConsentDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KvkkConsentDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KvkkConsentDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/{id}": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "description": "Belirtilen ID'ye sahip faturanın detaylı bilgilerini getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "Invoices"
        ],
        "description": "Belirtilen faturayı siler. Yalnızca taslak, kuyruğa alınmış veya gönderim hatası durumundaki (gönderimi devam etmeyen) faturalar silinebilir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/synchronize-incoming-details": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Belirtilen gelen faturaların detaylarını entegratörden senkron olarak çeker. Daha önce çekilmişse mevcut detayları döner.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SynchronizeIncomingInvoiceDetailsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SynchronizeIncomingInvoiceDetailsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SynchronizeIncomingInvoiceDetailsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeIncomingInvoiceDetailsResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeIncomingInvoiceDetailsResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeIncomingInvoiceDetailsResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "description": "Faturaların listesini getirir.",
        "parameters": [
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa boyutu.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeInventoryMovements",
            "in": "query",
            "description": "True ise her faturanın envanter hareketleri de döner. Belirtilmezse false kabul edilir ve envanter hareketleri dönmez.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için). Boş ise kendi tenantını filtreler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi (fatura numarası, düzenleyen adı veya alıcı adı)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EDocumentType",
            "in": "query",
            "description": "e-Belge türü (e-Fatura/e-Arşiv)",
            "schema": {
              "enum": [
                "EInvoice",
                "EArchiveInvoice"
              ],
              "type": "string"
            }
          },
          {
            "name": "InvoiceScenario",
            "in": "query",
            "description": "Fatura senaryosu",
            "schema": {
              "enum": [
                "TemelFatura",
                "TicariFatura"
              ],
              "type": "string"
            }
          },
          {
            "name": "InvoiceType",
            "in": "query",
            "description": "Fatura tipi",
            "schema": {
              "enum": [
                "Satis",
                "Istisna",
                "OzelMatrah",
                "Iade"
              ],
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Başlangıç zamanı",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Bitiş zamanı",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationStartTime",
            "in": "query",
            "description": "Oluşturulma başlangıç zamanı. Fatura düzenlenme tarihinden bağımsız olarak kaydın sisteme girildiği zamana göre süzer.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationEndTime",
            "in": "query",
            "description": "Oluşturulma bitiş zamanı. Fatura düzenlenme tarihinden bağımsız olarak kaydın sisteme girildiği zamana göre süzer.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaxAmount",
            "in": "query",
            "description": "Filtrelenecek maksimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinAmount",
            "in": "query",
            "description": "Filtrelenecek minimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "WithoutInvoiceNumber",
            "in": "query",
            "description": "Yalnızca fatura numarası atanmamış faturaları getir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BankTransactionStartTime",
            "in": "query",
            "description": "Banka hareketi başlangıç zamanı. Ayarlandığında yalnızca bu aralıkta banka hareketine sahip faturalar döner; banka hareketi olmayan faturalar hariç tutulur.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "BankTransactionEndTime",
            "in": "query",
            "description": "Banka hareketi bitiş zamanı. Ayarlandığında yalnızca bu aralıkta banka hareketine sahip faturalar döner; banka hareketi olmayan faturalar hariç tutulur.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "HasBankAccountTransaction",
            "in": "query",
            "description": "Banka hareketi eşleşmesine göre filtre. True ise yalnızca en az bir banka hareketi eşleştirilmiş, false ise hiç banka hareketi eşleştirilmemiş faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsDemo",
            "in": "query",
            "description": "Demo verisi mi?",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralama. Değer biçimi: Alan Adı [ASC|DESC].",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Filtrelenecek fatura statüleri (örn: Draft, Submitted, Confirmed). Birden fazla verilebilir; belirtilen statülerden herhangi birindeki faturalar döner.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CoreBusiness",
            "in": "query",
            "description": "Faturanın düzenleyen ya da alıcı carisinin faaliyet alanlarına göre filtre. Verilen değerlerden herhangi biri eşleşirse kayıt döner.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "GoldDealing",
                  "Staff"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "InvoiceTemplateId",
            "in": "query",
            "description": "Fatura şablonu ID'sine göre filtre. Belirtildiğinde yalnızca bu şablondan (örn. 22 ayar) kesilen faturalar döner.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "HasTemplate",
            "in": "query",
            "description": "Şablon kullanımına göre filtre. True ise yalnızca herhangi bir şablondan kesilen, false ise yalnızca şablon kullanılmadan kesilen faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ProductIds",
            "in": "query",
            "description": "Envanter ürün ID'lerine göre filtre. Belirtilen ürünlerden en az birini içeren faturalar döner.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Direction",
            "in": "query",
            "description": "Fatura yönü (Giden/Gelen). Belirtilmezse giden faturalar döner.",
            "schema": {
              "enum": [
                "Outgoing",
                "Incoming"
              ],
              "type": "string"
            }
          },
          {
            "name": "IsRead",
            "in": "query",
            "description": "Yalnızca okunmuş/okunmamış gelen faturaları getir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasInventoryMovements",
            "in": "query",
            "description": "Envanter hareketine göre filtre. True ise yalnızca envanter hareketi olan, false ise yalnızca envanter hareketi olmayan faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsTransferredToAccounting",
            "in": "query",
            "description": "Muhasebeye aktarım durumuna göre filtre. True ise yalnızca aktarılmış, false ise yalnızca aktarılmamış faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PaymentMethod",
            "in": "query",
            "description": "Ödeme yöntemine göre filtre (Nakit/Havale/POS). POS satışı veya banka hareketi bağlı faturalarda ödeme yöntemi bu bağlantılardan türetilir, aksi halde fatura üzerinde kayıtlı ödeme yöntemi kullanılır.",
            "schema": {
              "enum": [
                "Nakit",
                "Havale",
                "Pos"
              ],
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInvoiceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInvoiceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInvoiceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Yeni bir fatura oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/vat-summary": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "description": "Filtreye uyan faturaların toplam tutarını ve KDV oranı bazında matrah/KDV dağılımını getirir.",
        "parameters": [
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa boyutu.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "IncludeInventoryMovements",
            "in": "query",
            "description": "True ise her faturanın envanter hareketleri de döner. Belirtilmezse false kabul edilir ve envanter hareketleri dönmez.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için). Boş ise kendi tenantını filtreler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi (fatura numarası, düzenleyen adı veya alıcı adı)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EDocumentType",
            "in": "query",
            "description": "e-Belge türü (e-Fatura/e-Arşiv)",
            "schema": {
              "enum": [
                "EInvoice",
                "EArchiveInvoice"
              ],
              "type": "string"
            }
          },
          {
            "name": "InvoiceScenario",
            "in": "query",
            "description": "Fatura senaryosu",
            "schema": {
              "enum": [
                "TemelFatura",
                "TicariFatura"
              ],
              "type": "string"
            }
          },
          {
            "name": "InvoiceType",
            "in": "query",
            "description": "Fatura tipi",
            "schema": {
              "enum": [
                "Satis",
                "Istisna",
                "OzelMatrah",
                "Iade"
              ],
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Başlangıç zamanı",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Bitiş zamanı",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationStartTime",
            "in": "query",
            "description": "Oluşturulma başlangıç zamanı. Fatura düzenlenme tarihinden bağımsız olarak kaydın sisteme girildiği zamana göre süzer.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationEndTime",
            "in": "query",
            "description": "Oluşturulma bitiş zamanı. Fatura düzenlenme tarihinden bağımsız olarak kaydın sisteme girildiği zamana göre süzer.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaxAmount",
            "in": "query",
            "description": "Filtrelenecek maksimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinAmount",
            "in": "query",
            "description": "Filtrelenecek minimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "WithoutInvoiceNumber",
            "in": "query",
            "description": "Yalnızca fatura numarası atanmamış faturaları getir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BankTransactionStartTime",
            "in": "query",
            "description": "Banka hareketi başlangıç zamanı. Ayarlandığında yalnızca bu aralıkta banka hareketine sahip faturalar döner; banka hareketi olmayan faturalar hariç tutulur.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "BankTransactionEndTime",
            "in": "query",
            "description": "Banka hareketi bitiş zamanı. Ayarlandığında yalnızca bu aralıkta banka hareketine sahip faturalar döner; banka hareketi olmayan faturalar hariç tutulur.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "HasBankAccountTransaction",
            "in": "query",
            "description": "Banka hareketi eşleşmesine göre filtre. True ise yalnızca en az bir banka hareketi eşleştirilmiş, false ise hiç banka hareketi eşleştirilmemiş faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsDemo",
            "in": "query",
            "description": "Demo verisi mi?",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralama. Değer biçimi: Alan Adı [ASC|DESC].",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Filtrelenecek fatura statüleri (örn: Draft, Submitted, Confirmed). Birden fazla verilebilir; belirtilen statülerden herhangi birindeki faturalar döner.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CoreBusiness",
            "in": "query",
            "description": "Faturanın düzenleyen ya da alıcı carisinin faaliyet alanlarına göre filtre. Verilen değerlerden herhangi biri eşleşirse kayıt döner.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "GoldDealing",
                  "Staff"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "InvoiceTemplateId",
            "in": "query",
            "description": "Fatura şablonu ID'sine göre filtre. Belirtildiğinde yalnızca bu şablondan (örn. 22 ayar) kesilen faturalar döner.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "HasTemplate",
            "in": "query",
            "description": "Şablon kullanımına göre filtre. True ise yalnızca herhangi bir şablondan kesilen, false ise yalnızca şablon kullanılmadan kesilen faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ProductIds",
            "in": "query",
            "description": "Envanter ürün ID'lerine göre filtre. Belirtilen ürünlerden en az birini içeren faturalar döner.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Direction",
            "in": "query",
            "description": "Fatura yönü (Giden/Gelen). Belirtilmezse giden faturalar döner.",
            "schema": {
              "enum": [
                "Outgoing",
                "Incoming"
              ],
              "type": "string"
            }
          },
          {
            "name": "IsRead",
            "in": "query",
            "description": "Yalnızca okunmuş/okunmamış gelen faturaları getir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasInventoryMovements",
            "in": "query",
            "description": "Envanter hareketine göre filtre. True ise yalnızca envanter hareketi olan, false ise yalnızca envanter hareketi olmayan faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsTransferredToAccounting",
            "in": "query",
            "description": "Muhasebeye aktarım durumuna göre filtre. True ise yalnızca aktarılmış, false ise yalnızca aktarılmamış faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PaymentMethod",
            "in": "query",
            "description": "Ödeme yöntemine göre filtre (Nakit/Havale/POS). POS satışı veya banka hareketi bağlı faturalarda ödeme yöntemi bu bağlantılardan türetilir, aksi halde fatura üzerinde kayıtlı ödeme yöntemi kullanılır.",
            "schema": {
              "enum": [
                "Nakit",
                "Havale",
                "Pos"
              ],
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceVatSummaryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceVatSummaryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceVatSummaryDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/{id}/refund": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "İade faturası oluşturur.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/CreateRefundInput"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/CreateRefundInput"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/CreateRefundInput"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/batch-assign-numbers": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Tüm taslak faturalara toplu fatura numarası atar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchAssignInvoiceNumbersInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchAssignInvoiceNumbersInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchAssignInvoiceNumbersInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BatchAssignInvoiceNumbersResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchAssignInvoiceNumbersResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchAssignInvoiceNumbersResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/batch-pdf": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Seçilen faturaların PDF belgelerini tek bir PDF olarak birleştirir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInvoicePdfInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInvoicePdfInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInvoicePdfInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/batch-ubl": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Seçilen faturaların UBL (XML) belgelerini ZIP arşivi olarak indirir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInvoiceUblInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInvoiceUblInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInvoiceUblInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/{id}/assign-number": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Belirtilen taslak faturaya fatura numarası atar.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignInvoiceNumberInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignInvoiceNumberInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AssignInvoiceNumberInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/issue-drafts": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Tenant'a ait taslak faturaları toplu olarak resmileştirir. Belirli fatura ID'leri verilmezse tüm taslaklar işlenir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueDraftInvoicesInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueDraftInvoicesInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IssueDraftInvoicesInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IssueDraftInvoicesResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssueDraftInvoicesResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssueDraftInvoicesResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/{id}/cancel": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Belirtilen faturayı iptal eder; henüz entegratöre gönderilmemiş fatura kuyruktan çıkarılır, gönderilmiş fatura için entegratöre iptal talebi iletilir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/{id}/accept": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Belirtilen ticari gelen faturayı kabul eder.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptInvoiceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptInvoiceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptInvoiceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/{id}/reject": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Belirtilen ticari gelen faturayı reddeder.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectInvoiceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectInvoiceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RejectInvoiceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/{id}/retry-submission": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Entegratöre veya GİB'e gönderilemeyen faturaların tekrar gönderimini tetikler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedInvoiceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/{invoiceId}/poll-status": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Belirtilen gelen ya da giden faturanın durumunu entegratörden yeniden sorgulamak için sıra dışı bir sorgu tetikler. Aynı fatura için son 30 saniye içinde tetiklenmiş bir sorgu varsa yeni sorgu kuyruğa alınmaz.",
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PollInvoiceStatusResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PollInvoiceStatusResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PollInvoiceStatusResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/next-invoice-numbers": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "description": "e-Fatura ve e-Arşiv faturaları için sıradaki fatura numaralarını getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NextInvoiceNumbersDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NextInvoiceNumbersDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NextInvoiceNumbersDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/batch": {
      "delete": {
        "tags": [
          "Invoices"
        ],
        "description": "Belirtilen faturaları toplu olarak siler. Yalnızca taslak, kuyruğa alınmış veya gönderim hatası durumundaki (gönderimi devam etmeyen) faturalar silinebilir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteInvoicesBatchInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteInvoicesBatchInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteInvoicesBatchInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/{id}/bank-account-transactions": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "description": "Faturayı bir veya birden fazla banka hesap hareketi ile eşleştirir. Gelen faturalar yalnızca para çıkışı, giden faturalar yalnızca para girişi olan hareketlerle eşleştirilebilir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "Invoices"
        ],
        "description": "Faturanın banka hesap hareketi eşleşmelerini kaldırır.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/inventories/excel": {
      "get": {
        "tags": [
          "InventoryExcelExports"
        ],
        "description": "Envanterleri Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Aranacak tenant ID'si. Host hesapları herhangi bir tenant için, muhasebeciler Excel dışa aktarımında seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-products/excel": {
      "get": {
        "tags": [
          "InventoryExcelExports"
        ],
        "description": "Ürünleri Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant filtresi. Host hesapları herhangi bir tenant için, muhasebeciler Excel dışa aktarımında seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-items/excel": {
      "get": {
        "tags": [
          "InventoryExcelExports"
        ],
        "description": "Envanter kalemlerini Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "InventoryId",
            "in": "query",
            "description": "Envanter listesi. \"default\" değeri tenant'ın varsayılan envanter listesini döner.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ProductIds",
            "in": "query",
            "description": "Ürün ID listesi filtresi.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "HasNegativeStock",
            "in": "query",
            "description": "Negatif stok miktarı olan kayıtları filtreler.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsLowStock",
            "in": "query",
            "description": "Ürünün düşük stok uyarı eşiğinin altına düşen kayıtları filtreler.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant filtresi. Host hesapları herhangi bir tenant için, muhasebeciler Excel dışa aktarımında seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-movements/excel": {
      "get": {
        "tags": [
          "InventoryExcelExports"
        ],
        "description": "Envanter hareketlerini Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "InventoryId",
            "in": "query",
            "description": "Envanter listesi. \"default\" değeri tenant'ın varsayılan envanterini baz alır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InventoryMatchMode",
            "in": "query",
            "description": "Envanter listesi eşleşme modu. Varsayılan değer 'Either'dır.",
            "schema": {
              "$ref": "#/components/schemas/InventoryMatchMode"
            }
          },
          {
            "name": "ProductIds",
            "in": "query",
            "description": "Ürün ID listesi filtresi.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Oluşturulma zamanına göre başlangıç tarihi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Oluşturulma zamanına göre bitiş tarihi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MovementStartTime",
            "in": "query",
            "description": "Hareket tarihine göre başlangıç. Hareket tarihi boş olan kayıtlar bu filtre uygulandığında listelenmez.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MovementEndTime",
            "in": "query",
            "description": "Hareket tarihine göre bitiş. Hareket tarihi boş olan kayıtlar bu filtre uygulandığında listelenmez.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MovementTypes",
            "in": "query",
            "description": "Hareket türleri filtresi: Manual / Automatic.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Sources",
            "in": "query",
            "description": "Kaynak filtresi: Manual / Invoice / Expense.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant ID filtresi. Host hesapları herhangi bir tenant için, muhasebeciler Excel dışa aktarımında seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/inventories/export/settings": {
      "get": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Envanter Excel dışa aktarma sütun ayarlarını getirir.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Envanter Excel dışa aktarma sütun ayarlarını günceller.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Envanter Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-products/export/settings": {
      "get": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Ürün Excel dışa aktarma sütun ayarlarını getirir.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Ürün Excel dışa aktarma sütun ayarlarını günceller.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Ürün Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-items/export/settings": {
      "get": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Envanter kalemi Excel dışa aktarma sütun ayarlarını getirir.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Envanter kalemi Excel dışa aktarma sütun ayarlarını günceller.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Envanter kalemi Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-movements/export/settings": {
      "get": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Envanter hareketi Excel dışa aktarma sütun ayarlarını getirir.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Envanter hareketi Excel dışa aktarma sütun ayarlarını günceller.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "InventoryExcelExportSettings"
        ],
        "description": "Envanter hareketi Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-items": {
      "get": {
        "tags": [
          "InventoryItems"
        ],
        "description": "Envanter kalemleri listesini getirir.",
        "parameters": [
          {
            "name": "InventoryId",
            "in": "query",
            "description": "Envanter listesi. \"default\" değeri tenant'ın varsayılan envanter listesini döner.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ProductIds",
            "in": "query",
            "description": "Ürün ID listesi filtresi.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "HasNegativeStock",
            "in": "query",
            "description": "Negatif stok miktarı olan kayıtları filtreler.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsLowStock",
            "in": "query",
            "description": "Ürünün düşük stok uyarı eşiğinin altına düşen kayıtları filtreler.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant filtresi. Host hesapları herhangi bir tenant için, muhasebeciler Excel dışa aktarımında seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInventoryItemDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInventoryItemDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInventoryItemDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-movements": {
      "get": {
        "tags": [
          "InventoryMovements"
        ],
        "description": "Envanter hareketlerini sayfalı şekilde listeler.",
        "parameters": [
          {
            "name": "InventoryId",
            "in": "query",
            "description": "Envanter listesi. \"default\" değeri tenant'ın varsayılan envanterini baz alır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InventoryMatchMode",
            "in": "query",
            "description": "Envanter listesi eşleşme modu. Varsayılan değer 'Either'dır.",
            "schema": {
              "$ref": "#/components/schemas/InventoryMatchMode"
            }
          },
          {
            "name": "ProductIds",
            "in": "query",
            "description": "Ürün ID listesi filtresi.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Oluşturulma zamanına göre başlangıç tarihi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Oluşturulma zamanına göre bitiş tarihi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MovementStartTime",
            "in": "query",
            "description": "Hareket tarihine göre başlangıç. Hareket tarihi boş olan kayıtlar bu filtre uygulandığında listelenmez.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MovementEndTime",
            "in": "query",
            "description": "Hareket tarihine göre bitiş. Hareket tarihi boş olan kayıtlar bu filtre uygulandığında listelenmez.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MovementTypes",
            "in": "query",
            "description": "Hareket türleri filtresi: Manual / Automatic.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Sources",
            "in": "query",
            "description": "Kaynak filtresi: Manual / Invoice / Expense.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant ID filtresi. Host hesapları herhangi bir tenant için, muhasebeciler Excel dışa aktarımında seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInventoryItemMovementDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInventoryItemMovementDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInventoryItemMovementDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "InventoryMovements"
        ],
        "description": "Yeni bir envanter hareketi oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInventoryItemMovementInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInventoryItemMovementInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInventoryItemMovementInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryItemMovementDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryItemMovementDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryItemMovementDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-movements/set-stock": {
      "post": {
        "tags": [
          "InventoryMovements"
        ],
        "description": "Bir ürünün envanterdeki stok miktarını belirtilen değere ayarlar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetInventoryItemStockInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetInventoryItemStockInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetInventoryItemStockInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SetInventoryItemStockResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetInventoryItemStockResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetInventoryItemStockResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-movements/batch-from-invoices": {
      "post": {
        "tags": [
          "InventoryMovements"
        ],
        "description": "Gelen faturalardan toplu olarak, tek bir işlemde manuel envanter hareketleri oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInventoryItemMovementsFromInvoicesInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInventoryItemMovementsFromInvoicesInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInventoryItemMovementsFromInvoicesInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InventoryItemMovementDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InventoryItemMovementDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InventoryItemMovementDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-products": {
      "get": {
        "tags": [
          "InventoryProducts"
        ],
        "description": "Envanter ürünü listesini getirir.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant filtresi. Host hesapları herhangi bir tenant için, muhasebeciler Excel dışa aktarımında seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInventoryProductDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInventoryProductDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfInventoryProductDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "InventoryProducts"
        ],
        "description": "Yeni envanter ürünü oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInventoryProductInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInventoryProductInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInventoryProductInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/inventory-products/{id}": {
      "get": {
        "tags": [
          "InventoryProducts"
        ],
        "description": "Envanter ürünü bilgisini getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "InventoryProducts"
        ],
        "description": "Envanter ürününü günceller.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInventoryProductInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInventoryProductInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInventoryProductInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "InventoryProducts"
        ],
        "description": "Envanter ürününü siler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/send-kvkk-verification-code": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Kimlik tespiti için KVKK onay kodunu SMS ile gönderir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendKvkkVerificationCodeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SendKvkkVerificationCodeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SendKvkkVerificationCodeInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/verify-kvkk-code": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "SMS ile gönderilen KVKK onay kodunu doğrular ve kimlik tespitinde kullanılacak bir doğrulama tokeni döner.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyKvkkCodeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyKvkkCodeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyKvkkCodeInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KvkkVerificationTokenDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KvkkVerificationTokenDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KvkkVerificationTokenDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/verify-with-turkish-identity-card": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "T.C. Kimlik Kartı ile kimlik tespiti yapar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishIdentityCardInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishIdentityCardInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishIdentityCardInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/verify-with-turkish-drivers-license": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "T.C. Sürücü belgesi ile kimlik tespiti yapar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishDriversLicenseInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishDriversLicenseInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishDriversLicenseInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/verify-with-passport": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Pasaport ile kimlik tespiti yapar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithPassportInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithPassportInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithPassportInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/verify-with-blue-card": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Mavi Kart ile kimlik tespiti yapar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithBlueCardInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithBlueCardInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithBlueCardInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/verify-with-foreign-national": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Yabancı uyruklu kişi için yerleşim belgesi ile kimlik tespiti yapar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithForeignNationalInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithForeignNationalInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithForeignNationalInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/declaration-preview/turkish-identity-card": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "T.C. Kimlik Kartı bilgileri ile müşteri tanı formunun ÖNİZLEME filigranlı PDF önizlemesini üretir; kayıt oluşturmaz.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishIdentityCardInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishIdentityCardInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishIdentityCardInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/declaration-preview/turkish-drivers-license": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "T.C. Sürücü belgesi bilgileri ile müşteri tanı formunun ÖNİZLEME filigranlı PDF önizlemesini üretir; kayıt oluşturmaz.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishDriversLicenseInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishDriversLicenseInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithTurkishDriversLicenseInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/declaration-preview/passport": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Pasaport bilgileri ile müşteri tanı formunun ÖNİZLEME filigranlı PDF önizlemesini üretir; kayıt oluşturmaz.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithPassportInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithPassportInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithPassportInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/declaration-preview/blue-card": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Mavi Kart bilgileri ile müşteri tanı formunun ÖNİZLEME filigranlı PDF önizlemesini üretir; kayıt oluşturmaz.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithBlueCardInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithBlueCardInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithBlueCardInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/declaration-preview/foreign-national": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Yabancı uyruklu kişinin yerleşim belgesi bilgileri ile müşteri tanı formunun ÖNİZLEME filigranlı PDF önizlemesini üretir; kayıt oluşturmaz.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithForeignNationalInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithForeignNationalInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWithForeignNationalInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/{id}": {
      "get": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Kimlik tespitini getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications": {
      "get": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Kimlik tespitlerinin listesini getirir.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "UTC zaman dilimine göre filtrelenecek başlangıç tarih ve saati.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "UTC zaman dilimine göre filtrelenecek bitiş tarih ve saati.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "HasCustomerTransactions",
            "in": "query",
            "description": "Belirtildiyse (null değilse) sadece işlemleri bağlı olan (true) ya da bağlı olmayan (false) kimlik tespitlerini filtreler.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsDemo",
            "in": "query",
            "description": "Demo verisi mi?",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsRisky",
            "in": "query",
            "description": "Belirtildiyse (null değilse) sadece yaptırım riski olan (true) ya da olmayan (false) kimlik tespitlerini filtreler.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Channel",
            "in": "query",
            "description": "Kimlik tespitinin yapıldığı kanala göre filtre (Staff / SelfKyc).",
            "schema": {
              "enum": [
                "Staff",
                "SelfKyc"
              ],
              "type": "string"
            }
          },
          {
            "name": "SelfKycCode",
            "in": "query",
            "description": "Hızlı Kimlik Tespiti koduna göre filtre (ABCDEFGH ya da ABCD-EFGH).",
            "schema": {
              "maxLength": 9,
              "minLength": 0,
              "type": "string"
            }
          },
          {
            "name": "HasLivenessWarnings",
            "in": "query",
            "description": "Belirtildiyse (null değilse) sadece canlılık kontrolünde uyarı alan (true) ya da uyarı almayan (false) kimlik tespitlerini filtreler.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CoreBusiness",
            "in": "query",
            "description": "Bağlı carinin faaliyet alanlarına göre filtre. Verilen değerlerden herhangi biri carinin faaliyet alanlarından biriyle eşleşirse kayıt döner.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "GoldDealing",
                  "Staff"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfIdentityVerificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfIdentityVerificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfIdentityVerificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/batch-declaration-pdf": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Seçilen kimlik tespitlerinin beyanname belgelerini tek bir PDF olarak birleştirir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchDeclarationPdfInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchDeclarationPdfInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchDeclarationPdfInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/{id}/customer-transactions": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Kimlik doğrulama üzerinden yeni bir müşteri işlemi oluşturur.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerTransactionForIdentityVerificationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerTransactionForIdentityVerificationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerTransactionForIdentityVerificationInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedCustomerTransactionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedCustomerTransactionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedCustomerTransactionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/v1/identity-verifications/{id}/additional-documents": {
      "post": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Var olan bir kimlik tespitine ek belgeler ekler. Kimlik tespiti üzerinden 1 hafta geçtiyse belge eklenemez.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddIdentityVerificationAdditionalDocumentsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddIdentityVerificationAdditionalDocumentsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddIdentityVerificationAdditionalDocumentsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/identity-verifications/{id}/subject-tenant": {
      "put": {
        "tags": [
          "IdentityVerifications"
        ],
        "description": "Tamamlanmış bir kimlik tespitinin adına yapıldığı tenant'ı belirler. Kimlik tespitini yapan tenant işlemi yapan tenant olarak korunur.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetIdentityVerificationSubjectTenantInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetIdentityVerificationSubjectTenantInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetIdentityVerificationSubjectTenantInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedIdentityVerificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/files": {
      "post": {
        "tags": [
          "Files"
        ],
        "description": "Dosya yükler. multipart/form-data isteği dosyayı tek seferde yükler. application/octet-stream gövdesiyle gönderilen istek, dosya adını Content-Disposition başlığından alır ve Content-Range (bytes 0-<son>/<toplam>) başlığıyla en fazla 8 MiB'lık ilk parçayı yükleyerek parçalı yüklemeyi başlatır; yanıt 201 Created ve Location başlığıyla döner, kalan parçalar PUT /api/files/{fileId} ile gönderilir. İsteğe bağlı Repr-Digest (sha-256) başlığı, yükleme tamamlandığında içeriğin doğrulanmasını sağlar.",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BlobFileUploadDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobFileUploadDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobFileUploadDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/files/{fileId}": {
      "put": {
        "tags": [
          "Files"
        ],
        "description": "Parçalı yüklemesi süren dosyaya Content-Range (bytes <ilk>-<son>/<toplam>) başlığıyla belirtilen parçayı ekler (RFC 9110 partial PUT). Parça en fazla 8 MiB olabilir. Zaten yüklenmiş bir parçanın tekrar gönderilmesi güvenlidir; parça konumu sunucudaki konumla uyuşmazsa 409 Conflict ve beklenen konum (ExpectedOffset) döner. Son parçayla birlikte dosyanın SHA-256 özeti hesaplanır.",
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BlobFileUploadDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobFileUploadDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobFileUploadDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "get": {
        "tags": [
          "Files"
        ],
        "description": "Dosyayı indirir.",
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/files/{fileId}/metadata": {
      "get": {
        "tags": [
          "Files"
        ],
        "description": "Dosya meta verisini getirir.",
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BlobFileDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobFileDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobFileDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/external-accounts": {
      "get": {
        "tags": [
          "ExternalAccounts"
        ],
        "description": "Bağlı dış servis hesaplarını listeler.",
        "parameters": [
          {
            "name": "AccountType",
            "in": "query",
            "description": "Hesap türüne göre filtrele.",
            "schema": {
              "enum": [
                "Izibiz",
                "Netgsm",
                "TurkcellESirket",
                "Uyumsoft"
              ],
              "type": "string"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Ada göre arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için). Boş ise kendi tenantını filtreler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfExternalAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfExternalAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfExternalAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/external-accounts/{id}": {
      "get": {
        "tags": [
          "ExternalAccounts"
        ],
        "description": "Belirtilen dış servis hesabının detaylarını getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExternalAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExternalAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExternalAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "ExternalAccounts"
        ],
        "description": "Belirtilen servis hesabını günceller.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExternalAccountInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExternalAccountInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExternalAccountInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExternalAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExternalAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExternalAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "ExternalAccounts"
        ],
        "description": "Belirtilen dış servis hesabını siler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/external-accounts/connect-turkcell-esirket": {
      "post": {
        "tags": [
          "ExternalAccounts"
        ],
        "description": "Mevcut tenant için Turkcell e-Şirket hesabı bağlar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectTurkcellESirketInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectTurkcellESirketInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectTurkcellESirketInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/external-accounts/connect-uyumsoft": {
      "post": {
        "tags": [
          "ExternalAccounts"
        ],
        "description": "Mevcut tenant için Uyumsoft hesabı bağlar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectUyumsoftInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectUyumsoftInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectUyumsoftInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/external-accounts/connect-izibiz": {
      "post": {
        "tags": [
          "ExternalAccounts"
        ],
        "description": "Mevcut tenant için İzibiz hesabı bağlar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectIzibizInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectIzibizInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectIzibizInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/external-accounts/connect-netgsm": {
      "post": {
        "tags": [
          "ExternalAccounts"
        ],
        "description": "Mevcut tenant için Netgsm hesabı bağlar.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectNetgsmInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectNetgsmInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectNetgsmInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/external-accounts/{id}/synchronize": {
      "post": {
        "tags": [
          "ExternalAccounts"
        ],
        "description": "Belirtilen hesap için bir eşitleme tetikler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SynchronizeExternalAccountInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SynchronizeExternalAccountInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SynchronizeExternalAccountInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeExternalAccountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeExternalAccountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeExternalAccountResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/{id}": {
      "get": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Belirtilen ID'ye sahip gider pusulasını getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Belirtilen gider pusulasını siler. Silinen pusuladan sonraki tüm gider pusulalarının sıra numarası bir geri alınır ve PDF belgeleri arka planda yeniden oluşturulur.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillDeletionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillDeletionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillDeletionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills": {
      "get": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Gider pusulalarının listesini getirir.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi (tedarikçi adı veya açıklama)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant ID'si. Sadece host tarafından kullanılabilir.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Başlangıç zamanı",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Bitiş zamanı",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationStartTime",
            "in": "query",
            "description": "Oluşturulma tarihine göre başlangıç zamanı.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationEndTime",
            "in": "query",
            "description": "Oluşturulma tarihine göre bitiş zamanı.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MinAmount",
            "in": "query",
            "description": "Asgari tutar. Belirtildiğinde gider pusulası toplam tutarı (brüt) bu değerin altında olanlar hariç tutulur.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxAmount",
            "in": "query",
            "description": "Azami tutar. Belirtildiğinde gider pusulası toplam tutarı (brüt) bu değerin üzerinde olanlar hariç tutulur.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "BankTransactionStartTime",
            "in": "query",
            "description": "Banka hareketi başlangıç zamanı. Ayarlandığında yalnızca bu aralıkta banka hareketine sahip gider pusulaları döner; banka hareketi olmayan gider pusulaları hariç tutulur.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "BankTransactionEndTime",
            "in": "query",
            "description": "Banka hareketi bitiş zamanı. Ayarlandığında yalnızca bu aralıkta banka hareketine sahip gider pusulaları döner; banka hareketi olmayan gider pusulaları hariç tutulur.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "HasBankAccountTransaction",
            "in": "query",
            "description": "Banka hareketi eşleşmesine göre filtre. True ise yalnızca en az bir banka hareketi eşleştirilmiş, false ise hiç banka hareketi eşleştirilmemiş gider pusulaları döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ProductIds",
            "in": "query",
            "description": "Envanter ürün ID'lerine göre filtre. Belirtilen ürünlerden en az birini içeren gider pusulaları döner.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "HasMissingInventoryProduct",
            "in": "query",
            "description": "true ise en az bir kalemi envanter ürünüyle eşleşmemiş gider pusulaları, false ise tüm kalemleri eşleşmiş gider pusulaları döner.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsTransferredToAccounting",
            "in": "query",
            "description": "Muhasebeye aktarım durumuna göre filtre. True ise yalnızca aktarılmış, false ise yalnızca aktarılmamış gider pusulaları döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsDownloaded",
            "in": "query",
            "description": "true ise en az bir kez indirilmiş, false ise hiç indirilmemiş gider pusulaları döner.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfExpenseBillDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfExpenseBillDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfExpenseBillDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Yeni bir gider pusulası oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExpenseBillInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExpenseBillInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExpenseBillInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/batch": {
      "post": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Şablondan toplu gider pusulası oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchCreateExpenseBillInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchCreateExpenseBillInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchCreateExpenseBillInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DetailedExpenseBillDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DetailedExpenseBillDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DetailedExpenseBillDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Belirtilen gider pusulalarını toplu olarak siler. Silinen pusulalardan sonraki tüm gider pusulalarının sıra numarası bir geri alınır ve PDF belgeleri arka planda yeniden oluşturulur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteExpenseBillsBatchInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteExpenseBillsBatchInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteExpenseBillsBatchInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillDeletionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillDeletionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillDeletionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/{id}/index": {
      "put": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Belirtilen gider pusulasının sıra numarasını günceller.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExpenseBillIndexInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExpenseBillIndexInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExpenseBillIndexInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/{id}/index-shift": {
      "put": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Belirtilen gider pusulasına yeni bir sıra numarası atar ve mevcut sıra numarasından itibaren gelen tüm gider pusulalarının sıra numaralarını aynı miktarda kaydırır. Sıra numarası değişen gider pusulalarının PDF belgeleri arka planda yeniden oluşturulur.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShiftExpenseBillIndexesInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ShiftExpenseBillIndexesInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ShiftExpenseBillIndexesInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillIndexShiftDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillIndexShiftDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillIndexShiftDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/{id}/transfer-to-inventory": {
      "post": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Oluşturulurken stok ürünü seçilmemiş gider pusulası kalemlerini envanter ürünüyle eşleştirip stoğa aktarır.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferExpenseBillToInventoryInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferExpenseBillToInventoryInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TransferExpenseBillToInventoryInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedExpenseBillDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/next-index": {
      "get": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Bir sonraki gider pusulası için sıra numarasını getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillNextIndexDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillNextIndexDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExpenseBillNextIndexDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/batch-pdf": {
      "post": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Seçilen gider pusulalarının PDF belgelerini tek bir PDF olarak birleştirir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchExpenseBillPdfInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchExpenseBillPdfInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchExpenseBillPdfInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/batch-preview-pdf": {
      "post": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Seçilen gider pusulalarının önizleme PDF belgelerini tek bir PDF olarak birleştirir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchExpenseBillPdfInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchExpenseBillPdfInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchExpenseBillPdfInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/{id}/bank-account-transactions": {
      "post": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Gider pusulasını bir veya birden fazla banka hesap hareketi ile eşleştirir. Yalnızca para çıkışı olan ve başka bir gider pusulasına bağlı olmayan hareketler eşleştirilebilir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "ExpenseBills"
        ],
        "description": "Gider pusulasının banka hesap hareketi eşleşmelerini kaldırır.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-transactions/export/excel": {
      "get": {
        "tags": [
          "BankAccountTransactionExcelExport"
        ],
        "description": "Banka hesap hareketlerini Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "Bank",
            "in": "query",
            "description": "Filtrelenecek banka.",
            "schema": {
              "enum": [
                "GarantiBBVA",
                "Akbank",
                "QNBFinansbank",
                "YapiKredi",
                "IsBankasi",
                "ZiraatBankasi",
                "HalkBankasi",
                "VakifBank",
                "DenizBank",
                "TEB",
                "ING",
                "HSBC",
                "Enpara",
                "Kuveytturk",
                "VakifKatilim",
                "Albaraka",
                "TekstilBankasi",
                "Sekerbank",
                "TurkiyeFinans",
                "DunyaKatilim",
                "Anadolubank",
                "ZiraatKatilim",
                "TurkishBank",
                "Fibabanka",
                "Turklandbank",
                "PashaBank",
                "Alternatifbank",
                "BurganBank",
                "AktifYatirim",
                "OdeaBank",
                "ColendiBank",
                "FupsBank",
                "EmlakKatilim",
                "HayatFinans",
                "TomKatilim"
              ],
              "type": "string"
            }
          },
          {
            "name": "IsDemo",
            "in": "query",
            "description": "Demo kayıtlara göre filtreleme.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Filtrelenecek para birimi.",
            "schema": {
              "enum": [
                "TRY",
                "USD",
                "EUR",
                "GBP",
                "XAU",
                "CHF",
                "CAD",
                "RUB",
                "AED",
                "AUD",
                "DKK",
                "SEK",
                "NOK",
                "JPY",
                "KWD",
                "ZAR",
                "BHD",
                "LYD",
                "SAR",
                "IQD",
                "ILS",
                "INR",
                "MXN",
                "HUF",
                "NZD",
                "BRL",
                "IDR",
                "CZK",
                "PLN",
                "RON",
                "CNY",
                "ARS",
                "ALL",
                "AZN",
                "BAM",
                "CLP",
                "COP",
                "CRC",
                "DZD",
                "EGP",
                "HKD",
                "ISK",
                "KRW",
                "KZT",
                "LBP",
                "LKR",
                "MAD",
                "MDL",
                "MKD",
                "MYR",
                "OMR",
                "PEN",
                "PHP",
                "PKR",
                "QAR",
                "RSD",
                "SGD",
                "SYP",
                "THB",
                "TWD",
                "UAH",
                "UYU",
                "GEL",
                "TND",
                "BGN"
              ],
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "UTC zaman dilimine göre filtrelenecek başlangıç tarih ve saati.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "UTC zaman dilimine göre filtrelenecek bitiş tarih ve saati.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "InvoiceStartTime",
            "in": "query",
            "description": "Bağlı faturanın düzenlenme tarihine (yoksa oluşturulma tarihine) göre filtrelenecek başlangıç tarih ve saati (UTC).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "InvoiceEndTime",
            "in": "query",
            "description": "Bağlı faturanın düzenlenme tarihine (yoksa oluşturulma tarihine) göre filtrelenecek bitiş tarih ve saati (UTC).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExpenseBillStartTime",
            "in": "query",
            "description": "Bağlı gider pusulasının oluşturulma tarihine göre filtrelenecek başlangıç tarih ve saati (UTC).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExpenseBillEndTime",
            "in": "query",
            "description": "Bağlı gider pusulasının oluşturulma tarihine göre filtrelenecek bitiş tarih ve saati (UTC).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BankAccountIds",
            "in": "query",
            "description": "Filtrelenecek banka hesabı ID'leri.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "TransactionDirection",
            "in": "query",
            "description": "Filtrelenecek işlem yönü.",
            "schema": {
              "enum": [
                "MoneyIn",
                "MoneyOut"
              ],
              "type": "string"
            }
          },
          {
            "name": "TransactionType",
            "in": "query",
            "description": "Filtrelenecek işlem türü.",
            "schema": {
              "enum": [
                "None",
                "Other",
                "Havale",
                "EFT",
                "FAST",
                "PosPayment",
                "Bsmv",
                "Komisyon",
                "Masraf",
                "PosKesinti"
              ],
              "type": "string"
            }
          },
          {
            "name": "TransactionTypes",
            "in": "query",
            "description": "Filtrelenecek işlem türleri.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "None",
                  "Other",
                  "Havale",
                  "EFT",
                  "FAST",
                  "PosPayment",
                  "Bsmv",
                  "Komisyon",
                  "Masraf",
                  "PosKesinti"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsRisky",
            "in": "query",
            "description": "Riskli olarak işaretlenmiş kayıtlara göre filtreleme.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsHidden",
            "in": "query",
            "description": "True ise sadece gizlenmiş banka hesap hareketlerini getirir, false ise sadece gizlenmemişleri. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasOtherAccountOwnerName",
            "in": "query",
            "description": "Karşı taraf ismi bulunan kayıtlara göre filtreleme.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasInvoice",
            "in": "query",
            "description": "True ise sadece faturası olan banka hesap hareketlerini getirir, false ise sadece faturası olmayanları. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasActiveInvoice",
            "in": "query",
            "description": "True ise sadece iptal edilmemiş ya da reddedilmemiş en az bir faturaya bağlı banka hesap hareketlerini getirir, false ise bu durumda bir faturaya bağlı olmayanları. İptal edilmiş ya da reddedilmiş faturalar bağlantı sayılmaz. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasExpenseBill",
            "in": "query",
            "description": "True ise sadece gider faturası olan banka hesap hareketlerini getirir, false ise sadece gider faturası olmayanları. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsInvoicable",
            "in": "query",
            "description": "True ise sadece faturalandırılabilir banka hesap hareketlerini getirir, false ise sadece faturalandırılamayanları. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsExpenseBillable",
            "in": "query",
            "description": "True ise sadece gider pusulası kesilebilir banka hesap hareketlerini getirir, false ise kesilemeyenleri. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "MaxAmount",
            "in": "query",
            "description": "Filtrelenecek maksimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinAmount",
            "in": "query",
            "description": "Filtrelenecek minimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "RequiresIdentityVerification",
            "in": "query",
            "description": "True ise sadece kimlik tespiti gerektiren banka hesap hareketlerini getirir, false ise sadece gerektirmeyenleri. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CoreBusiness",
            "in": "query",
            "description": "Bağlı carinin faaliyet alanlarına göre filtre. Verilen değerlerden herhangi biri carinin faaliyet alanlarından biriyle eşleşirse kayıt döner. Boş değer (CoreBusiness=) faaliyet alanı belirtilmemiş carileri ve carisi olmayan hareketleri seçer; istenmeyen faaliyet alanları listeye eklenmeyerek elenir.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "GoldDealing",
                  "Staff"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "IsTransferredToAccounting",
            "in": "query",
            "description": "Muhasebeye aktarım durumuna göre filtre. True ise yalnızca aktarılmış, false ise yalnızca aktarılmamış hareketler döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsProcessed",
            "in": "query",
            "description": "İşlenme durumuna göre filtre. True ise yalnızca işlenmiş, false ise yalnızca işlenmemiş hareketler döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-transactions/export/settings": {
      "get": {
        "tags": [
          "BankAccountTransactionExcelExportSettings"
        ],
        "description": "Banka hesap hareketleri Excel dışa aktarma sütun ayarlarını getirir.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "BankAccountTransactionExcelExportSettings"
        ],
        "description": "Banka hesap hareketleri Excel dışa aktarma sütun ayarlarını günceller.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "BankAccountTransactionExcelExportSettings"
        ],
        "description": "Banka hesap hareketleri Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/cashbox-records/export/excel": {
      "get": {
        "tags": [
          "CashboxRecordExcelExport"
        ],
        "description": "Kasa hareketlerini Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "CashboxId",
            "in": "query",
            "description": "Kasa filtresi. \"default\" değeri tenant'ın varsayılan kasasını temsil eder.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Direction",
            "in": "query",
            "description": "Hareket yönü filtresi: In / Out.",
            "schema": {
              "enum": [
                "In",
                "Out"
              ],
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "query",
            "description": "Hareket kaynağı filtresi: Manual / Automatic.",
            "schema": {
              "enum": [
                "Manual",
                "Automatic",
                "Custody"
              ],
              "type": "string"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SourceType",
            "in": "query",
            "description": "Belge türü filtresi.",
            "schema": {
              "$ref": "#/components/schemas/CashboxRecordSourceType"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "Hareket tarihine göre başlangıç (dahil).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "Hareket tarihine göre bitiş (dahil).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Search",
            "in": "query",
            "description": "Arama filtresi. Açıklama ve cari unvanında arar.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant ID filtresi (sadece host kullanıcılar için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/cashbox-records/export/settings": {
      "get": {
        "tags": [
          "CashboxRecordExcelExportSettings"
        ],
        "description": "Kasa hareketi Excel dışa aktarma sütun ayarlarını getirir.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "CashboxRecordExcelExportSettings"
        ],
        "description": "Kasa hareketi Excel dışa aktarma sütun ayarlarını günceller.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "CashboxRecordExcelExportSettings"
        ],
        "description": "Kasa hareketi Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/despatch-advices/export/excel": {
      "get": {
        "tags": [
          "DespatchAdviceExcelExport"
        ],
        "description": "İrsaliyeleri Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant ID (yalnızca host kullanıcıları için). Boş ise kendi tenantını filtreler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Direction",
            "in": "query",
            "description": "Yön (Giden/Gelen).",
            "schema": {
              "enum": [
                "Outgoing",
                "Incoming"
              ],
              "type": "string"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Durum filtresi.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "Queued",
                  "Submitting",
                  "SentToGib",
                  "WaitingForResponse",
                  "Approved",
                  "Rejected",
                  "PartiallyAccepted",
                  "Error",
                  "SubmissionError",
                  "Cancelled"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "IsRead",
            "in": "query",
            "description": "Okundu filtresi.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama metni.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Başlangıç tarihi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Bitiş tarihi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralama. Değer biçimi: Alan Adı [ASC|DESC].",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/despatch-advices/export/settings": {
      "get": {
        "tags": [
          "DespatchAdviceExcelExportSettings"
        ],
        "description": "İrsaliye Excel dışa aktarma sütun ayarlarını getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "DespatchAdviceExcelExportSettings"
        ],
        "description": "İrsaliye Excel dışa aktarma sütun ayarlarını günceller.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "DespatchAdviceExcelExportSettings"
        ],
        "description": "İrsaliye Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/export/excel": {
      "get": {
        "tags": [
          "EVoucherExcelExport"
        ],
        "description": "e-Gider Pusulalarını Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant ID (yalnızca host ve bayi kullanıcıları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama metni (numara, ad-soyad, TCKN). LIKE deseni olarak kullanılır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Belge tipi.",
            "schema": {
              "enum": [
                "Satis",
                "Iade"
              ],
              "type": "string"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Durum filtresi.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "Queued",
                  "Submitting",
                  "Sent",
                  "Signed",
                  "ReportedToGib",
                  "SubmissionError",
                  "Error",
                  "Cancelled"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "VerificationMethod",
            "in": "query",
            "description": "Doğrulama yöntemi.",
            "schema": {
              "enum": [
                "SmsCode",
                "ReturnCode"
              ],
              "type": "string"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari (alıcı veya iade eden).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Belge tarihi başlangıcı.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Belge tarihi bitişi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralama. Değer biçimi: Alan Adı [ASC|DESC].",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/export/settings": {
      "get": {
        "tags": [
          "EVoucherExcelExportSettings"
        ],
        "description": "e-Gider Pusulası Excel dışa aktarma sütun ayarlarını getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "EVoucherExcelExportSettings"
        ],
        "description": "e-Gider Pusulası Excel dışa aktarma sütun ayarlarını günceller.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "EVoucherExcelExportSettings"
        ],
        "description": "e-Gider Pusulası Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/export/excel": {
      "get": {
        "tags": [
          "ExpenseBillExcelExport"
        ],
        "description": "Gider pusulalarını Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi (tedarikçi adı veya açıklama)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant ID'si. Sadece host tarafından kullanılabilir.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Başlangıç zamanı",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Bitiş zamanı",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationStartTime",
            "in": "query",
            "description": "Oluşturulma tarihine göre başlangıç zamanı.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationEndTime",
            "in": "query",
            "description": "Oluşturulma tarihine göre bitiş zamanı.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MinAmount",
            "in": "query",
            "description": "Asgari tutar. Belirtildiğinde gider pusulası toplam tutarı (brüt) bu değerin altında olanlar hariç tutulur.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxAmount",
            "in": "query",
            "description": "Azami tutar. Belirtildiğinde gider pusulası toplam tutarı (brüt) bu değerin üzerinde olanlar hariç tutulur.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "BankTransactionStartTime",
            "in": "query",
            "description": "Banka hareketi başlangıç zamanı. Ayarlandığında yalnızca bu aralıkta banka hareketine sahip gider pusulaları döner; banka hareketi olmayan gider pusulaları hariç tutulur.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "BankTransactionEndTime",
            "in": "query",
            "description": "Banka hareketi bitiş zamanı. Ayarlandığında yalnızca bu aralıkta banka hareketine sahip gider pusulaları döner; banka hareketi olmayan gider pusulaları hariç tutulur.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "HasBankAccountTransaction",
            "in": "query",
            "description": "Banka hareketi eşleşmesine göre filtre. True ise yalnızca en az bir banka hareketi eşleştirilmiş, false ise hiç banka hareketi eşleştirilmemiş gider pusulaları döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ProductIds",
            "in": "query",
            "description": "Envanter ürün ID'lerine göre filtre. Belirtilen ürünlerden en az birini içeren gider pusulaları döner.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "HasMissingInventoryProduct",
            "in": "query",
            "description": "true ise en az bir kalemi envanter ürünüyle eşleşmemiş gider pusulaları, false ise tüm kalemleri eşleşmiş gider pusulaları döner.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsTransferredToAccounting",
            "in": "query",
            "description": "Muhasebeye aktarım durumuna göre filtre. True ise yalnızca aktarılmış, false ise yalnızca aktarılmamış gider pusulaları döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsDownloaded",
            "in": "query",
            "description": "true ise en az bir kez indirilmiş, false ise hiç indirilmemiş gider pusulaları döner.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/expense-bills/export/settings": {
      "get": {
        "tags": [
          "ExpenseBillExcelExportSettings"
        ],
        "description": "Gider pusulası Excel dışa aktarma sütun ayarlarını getirir.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "ExpenseBillExcelExportSettings"
        ],
        "description": "Gider pusulası Excel dışa aktarma sütun ayarlarını günceller.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "ExpenseBillExcelExportSettings"
        ],
        "description": "Gider pusulası Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/export/excel": {
      "get": {
        "tags": [
          "InvoiceExcelExport"
        ],
        "description": "Faturaları Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için). Boş ise kendi tenantını filtreler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi (fatura numarası, düzenleyen adı veya alıcı adı)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EDocumentType",
            "in": "query",
            "description": "e-Belge türü (e-Fatura/e-Arşiv)",
            "schema": {
              "enum": [
                "EInvoice",
                "EArchiveInvoice"
              ],
              "type": "string"
            }
          },
          {
            "name": "InvoiceScenario",
            "in": "query",
            "description": "Fatura senaryosu",
            "schema": {
              "enum": [
                "TemelFatura",
                "TicariFatura"
              ],
              "type": "string"
            }
          },
          {
            "name": "InvoiceType",
            "in": "query",
            "description": "Fatura tipi",
            "schema": {
              "enum": [
                "Satis",
                "Istisna",
                "OzelMatrah",
                "Iade"
              ],
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Başlangıç zamanı",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Bitiş zamanı",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationStartTime",
            "in": "query",
            "description": "Oluşturulma başlangıç zamanı. Fatura düzenlenme tarihinden bağımsız olarak kaydın sisteme girildiği zamana göre süzer.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "CreationEndTime",
            "in": "query",
            "description": "Oluşturulma bitiş zamanı. Fatura düzenlenme tarihinden bağımsız olarak kaydın sisteme girildiği zamana göre süzer.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaxAmount",
            "in": "query",
            "description": "Filtrelenecek maksimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinAmount",
            "in": "query",
            "description": "Filtrelenecek minimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "WithoutInvoiceNumber",
            "in": "query",
            "description": "Yalnızca fatura numarası atanmamış faturaları getir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BankTransactionStartTime",
            "in": "query",
            "description": "Banka hareketi başlangıç zamanı. Ayarlandığında yalnızca bu aralıkta banka hareketine sahip faturalar döner; banka hareketi olmayan faturalar hariç tutulur.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "BankTransactionEndTime",
            "in": "query",
            "description": "Banka hareketi bitiş zamanı. Ayarlandığında yalnızca bu aralıkta banka hareketine sahip faturalar döner; banka hareketi olmayan faturalar hariç tutulur.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "HasBankAccountTransaction",
            "in": "query",
            "description": "Banka hareketi eşleşmesine göre filtre. True ise yalnızca en az bir banka hareketi eşleştirilmiş, false ise hiç banka hareketi eşleştirilmemiş faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsDemo",
            "in": "query",
            "description": "Demo verisi mi?",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralama. Değer biçimi: Alan Adı [ASC|DESC].",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Filtrelenecek fatura statüleri (örn: Draft, Submitted, Confirmed). Birden fazla verilebilir; belirtilen statülerden herhangi birindeki faturalar döner.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CoreBusiness",
            "in": "query",
            "description": "Faturanın düzenleyen ya da alıcı carisinin faaliyet alanlarına göre filtre. Verilen değerlerden herhangi biri eşleşirse kayıt döner.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "GoldDealing",
                  "Staff"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "InvoiceTemplateId",
            "in": "query",
            "description": "Fatura şablonu ID'sine göre filtre. Belirtildiğinde yalnızca bu şablondan (örn. 22 ayar) kesilen faturalar döner.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "HasTemplate",
            "in": "query",
            "description": "Şablon kullanımına göre filtre. True ise yalnızca herhangi bir şablondan kesilen, false ise yalnızca şablon kullanılmadan kesilen faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ProductIds",
            "in": "query",
            "description": "Envanter ürün ID'lerine göre filtre. Belirtilen ürünlerden en az birini içeren faturalar döner.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Direction",
            "in": "query",
            "description": "Fatura yönü (Giden/Gelen). Belirtilmezse giden faturalar döner.",
            "schema": {
              "enum": [
                "Outgoing",
                "Incoming"
              ],
              "type": "string"
            }
          },
          {
            "name": "IsRead",
            "in": "query",
            "description": "Yalnızca okunmuş/okunmamış gelen faturaları getir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasInventoryMovements",
            "in": "query",
            "description": "Envanter hareketine göre filtre. True ise yalnızca envanter hareketi olan, false ise yalnızca envanter hareketi olmayan faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsTransferredToAccounting",
            "in": "query",
            "description": "Muhasebeye aktarım durumuna göre filtre. True ise yalnızca aktarılmış, false ise yalnızca aktarılmamış faturalar döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PaymentMethod",
            "in": "query",
            "description": "Ödeme yöntemine göre filtre (Nakit/Havale/POS). POS satışı veya banka hareketi bağlı faturalarda ödeme yöntemi bu bağlantılardan türetilir, aksi halde fatura üzerinde kayıtlı ödeme yöntemi kullanılır.",
            "schema": {
              "enum": [
                "Nakit",
                "Havale",
                "Pos"
              ],
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/invoices/export/settings": {
      "get": {
        "tags": [
          "InvoiceExcelExportSettings"
        ],
        "description": "Fatura Excel dışa aktarma sütun ayarlarını getirir.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "InvoiceExcelExportSettings"
        ],
        "description": "Fatura Excel dışa aktarma sütun ayarlarını günceller.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "InvoiceExcelExportSettings"
        ],
        "description": "Fatura Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/export/excel": {
      "get": {
        "tags": [
          "LegalEntityExcelExport"
        ],
        "description": "Carileri Excel dosyası olarak dışa aktarır.",
        "parameters": [
          {
            "name": "CoreBusiness",
            "in": "query",
            "description": "Filtrelenecek faaliyet alanları. Verilen değerlerden herhangi biri cari kaydının faaliyet alanlarından biriyle eşleşirse kayıt döner.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "GoldDealing",
                  "Staff"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi (cari adı, T.C. / vergi kimlik numarası, adres vs.)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsHidden",
            "in": "query",
            "description": "Gizli kayıtlar getirilsin mi? (null: hepsi, true: sadece gizli, false: sadece görünen)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasCoreBusiness",
            "in": "query",
            "description": "Faaliyet alanı tanımlı mı? null: hepsi, true: en az bir faaliyet alanı olanlar, false: faaliyet alanı belirtilmemiş olanlar.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasRelatedRecords",
            "in": "query",
            "description": "Bağlı kayıt (banka hareketi, fatura, gider pusulası, müşteri işlemi, kimlik tespiti) durumuna göre filtre. null: hepsi, true: en az bir bağlı kaydı olanlar, false: hiç bağlı kaydı olmayanlar.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Dışa aktarımın yapılacağı tenant ID'si. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için, host ise herhangi bir tenant için kullanır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/legal-entities/export/settings": {
      "get": {
        "tags": [
          "LegalEntityExcelExportSettings"
        ],
        "description": "Cari Excel dışa aktarma sütun ayarlarını getirir.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "LegalEntityExcelExportSettings"
        ],
        "description": "Cari Excel dışa aktarma sütun ayarlarını günceller.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExcelExportSettingInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "LegalEntityExcelExportSettings"
        ],
        "description": "Cari Excel dışa aktarma sütun ayarlarını varsayılana sıfırlar.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "Ayarların ait olduğu mükellef. Muhasebeci seçili mükellef yerine açıkça bir mükellef belirtmek için kullanır.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExcelExportSettingDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "e-Gider Pusulası listesini getirir.",
        "parameters": [
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant ID (yalnızca host ve bayi kullanıcıları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama metni (numara, ad-soyad, TCKN). LIKE deseni olarak kullanılır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Belge tipi.",
            "schema": {
              "enum": [
                "Satis",
                "Iade"
              ],
              "type": "string"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Durum filtresi.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "Queued",
                  "Submitting",
                  "Sent",
                  "Signed",
                  "ReportedToGib",
                  "SubmissionError",
                  "Error",
                  "Cancelled"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "VerificationMethod",
            "in": "query",
            "description": "Doğrulama yöntemi.",
            "schema": {
              "enum": [
                "SmsCode",
                "ReturnCode"
              ],
              "type": "string"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari (alıcı veya iade eden).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Belge tarihi başlangıcı.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Belge tarihi bitişi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfEVoucherDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfEVoucherDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfEVoucherDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "EVouchers"
        ],
        "description": "Yeni bir e-Gider Pusulası oluşturur ve entegratöre gönderim için kuyruğa alır.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEVoucherInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEVoucherInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEVoucherInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/totals": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "Filtreye uyan e-Gider Pusulalarının (iptaller hariç) sayısını ve toplamlarını getirir.",
        "parameters": [
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant ID (yalnızca host ve bayi kullanıcıları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama metni (numara, ad-soyad, TCKN). LIKE deseni olarak kullanılır.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Belge tipi.",
            "schema": {
              "enum": [
                "Satis",
                "Iade"
              ],
              "type": "string"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Durum filtresi.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "Queued",
                  "Submitting",
                  "Sent",
                  "Signed",
                  "ReportedToGib",
                  "SubmissionError",
                  "Error",
                  "Cancelled"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "VerificationMethod",
            "in": "query",
            "description": "Doğrulama yöntemi.",
            "schema": {
              "enum": [
                "SmsCode",
                "ReturnCode"
              ],
              "type": "string"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari (alıcı veya iade eden).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Belge tarihi başlangıcı.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Belge tarihi bitişi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralama. Değer biçimi: Alan Adı [ASC|DESC].",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherTotalsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherTotalsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherTotalsDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/next-number": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "Tahmini sıradaki e-Gider Pusulası numarasını getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherNextNumberDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherNextNumberDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherNextNumberDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/returnable-invoices": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "Belirtilen TCKN/VKN'ye kesilmiş, iade edilebilir e-Arşiv faturaları getirir.",
        "parameters": [
          {
            "name": "Identifier",
            "in": "query",
            "description": "Faturanın kesildiği TCKN/VKN.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant ID (yalnızca host ve bayi kullanıcıları için).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReturnableEArchiveInvoiceDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReturnableEArchiveInvoiceDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReturnableEArchiveInvoiceDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/verification-providers": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "Doğrulama sağlayıcılarını getirir (bilgi amaçlı; sağlayıcıyı sunucu seçer).",
        "parameters": [
          {
            "name": "method",
            "in": "query",
            "description": "Doğrulama yöntemi filtresi.",
            "schema": {
              "enum": [
                "SmsCode",
                "ReturnCode"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EVoucherVerificationProviderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EVoucherVerificationProviderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EVoucherVerificationProviderDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/cargo-companies": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "Tanımlı kargo firmalarını getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EVoucherCargoCompanyDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EVoucherCargoCompanyDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EVoucherCargoCompanyDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/{id}": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "Belirtilen e-Gider Pusulasının detaylarını getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/{id}/sms-history": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "Belirtilen e-Gider Pusulasının doğrulama SMS gönderim geçmişini (en yeni önce) getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EVoucherSmsHistoryItemDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EVoucherSmsHistoryItemDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EVoucherSmsHistoryItemDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/verification-codes": {
      "post": {
        "tags": [
          "EVouchers"
        ],
        "description": "Belgeyi imzalayacak kişinin (iade eden ya da alıcı) telefonuna 6 haneli doğrulama kodunu SMS ile gönderir. Kod hiçbir yanıtta yer almaz.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendEVoucherVerificationCodeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SendEVoucherVerificationCodeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SendEVoucherVerificationCodeInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherVerificationCodeDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherVerificationCodeDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherVerificationCodeDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/verification-codes/verify": {
      "post": {
        "tags": [
          "EVouchers"
        ],
        "description": "SMS ile gönderilen doğrulama kodunu doğrular ve e-Gider Pusulası oluştururken kullanılacak tek kullanımlık belirteci döner.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyEVoucherVerificationCodeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyEVoucherVerificationCodeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyEVoucherVerificationCodeInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherVerificationTokenDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherVerificationTokenDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherVerificationTokenDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/preview": {
      "post": {
        "tags": [
          "EVouchers"
        ],
        "description": "Oluşturulacak e-Gider Pusulasının HTML önizlemesini kiracının XSLT şablonuyla üretir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewEVoucherInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewEVoucherInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewEVoucherInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/{id}/retry-submission": {
      "post": {
        "tags": [
          "EVouchers"
        ],
        "description": "Hata durumundaki e-Gider Pusulasının gönderimini yeniden dener.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/{id}/cancel": {
      "post": {
        "tags": [
          "EVouchers"
        ],
        "description": "Belirtilen e-Gider Pusulasını entegratörde iptal eder.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedEVoucherDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/batch-retry-submission": {
      "post": {
        "tags": [
          "EVouchers"
        ],
        "description": "Seçilen e-Gider Pusulalarının gönderimini yeniden dener.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherBatchResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherBatchResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherBatchResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/batch-cancel": {
      "post": {
        "tags": [
          "EVouchers"
        ],
        "description": "Seçilen e-Gider Pusulalarını iptal eder.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherBatchResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherBatchResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EVoucherBatchResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/{id}/pdf": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "Belirtilen e-Gider Pusulasının PDF çıktısını indirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/{id}/html": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "Belirtilen e-Gider Pusulasının imzalı UBL'inden HTML görünümünü getirir. İmzalı UBL henüz alınmadıysa 409 döner.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/{id}/xml": {
      "get": {
        "tags": [
          "EVouchers"
        ],
        "description": "Belirtilen e-Gider Pusulasının entegratörden alınan imzalı UBL (XML) belgesini indirir. İmzalı UBL henüz alınmadıysa 409 döner.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/batch-pdf": {
      "post": {
        "tags": [
          "EVouchers"
        ],
        "description": "Seçilen e-Gider Pusulalarının PDF belgelerini tek bir PDF olarak birleştirir. X-Included-Count ve X-Skipped-Ids başlıkları döner.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/e-vouchers/batch-xml": {
      "post": {
        "tags": [
          "EVouchers"
        ],
        "description": "Seçilen e-Gider Pusulalarının imzalı UBL (XML) belgelerini ZIP arşivi olarak indirir. İmzalı UBL'i olmayanlar atlanır.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EVoucherIdsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/despatch-advices": {
      "get": {
        "tags": [
          "DespatchAdvices"
        ],
        "description": "E-İrsaliye listesini getirir.",
        "parameters": [
          {
            "name": "TenantId",
            "in": "query",
            "description": "Tenant ID (yalnızca host kullanıcıları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Direction",
            "in": "query",
            "description": "Yön (Giden/Gelen).",
            "schema": {
              "enum": [
                "Outgoing",
                "Incoming"
              ],
              "type": "string"
            }
          },
          {
            "name": "Statuses",
            "in": "query",
            "description": "Durum filtresi.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "Queued",
                  "Submitting",
                  "SentToGib",
                  "WaitingForResponse",
                  "Approved",
                  "Rejected",
                  "PartiallyAccepted",
                  "Error",
                  "SubmissionError",
                  "Cancelled"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "IsRead",
            "in": "query",
            "description": "Okundu filtresi.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama metni.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Başlangıç tarihi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Bitiş tarihi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfDespatchAdviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfDespatchAdviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfDespatchAdviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "DespatchAdvices"
        ],
        "description": "Yeni bir giden e-İrsaliye oluşturur ve gönderir.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDespatchAdviceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDespatchAdviceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDespatchAdviceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/despatch-advices/{id}": {
      "get": {
        "tags": [
          "DespatchAdvices"
        ],
        "description": "Belirtilen e-İrsaliyenin detaylarını getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "DespatchAdvices"
        ],
        "description": "Belirtilen giden e-İrsaliyeyi günceller ve yeniden gönderir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDespatchAdviceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDespatchAdviceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDespatchAdviceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/despatch-advices/{id}/respond": {
      "post": {
        "tags": [
          "DespatchAdvices"
        ],
        "description": "Gelen bir e-İrsaliyeye yanıt (kabul/red/kısmi kabul) gönderir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RespondToDespatchAdviceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RespondToDespatchAdviceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RespondToDespatchAdviceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/despatch-advices/{id}/retry-submission": {
      "post": {
        "tags": [
          "DespatchAdvices"
        ],
        "description": "Hata durumundaki e-İrsaliyenin gönderimini yeniden dener.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/despatch-advices/{id}/cancel": {
      "post": {
        "tags": [
          "DespatchAdvices"
        ],
        "description": "Belirtilen e-İrsaliyeyi iptal eder.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedDespatchAdviceDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/despatch-advices/{id}/pdf": {
      "get": {
        "tags": [
          "DespatchAdvices"
        ],
        "description": "Belirtilen e-İrsaliyenin PDF çıktısını indirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/data-table-preferences": {
      "get": {
        "tags": [
          "DataTablePreferences"
        ],
        "description": "Kullanıcının erişebildiği tablo tanımlarını getirir.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DataTableDefinitionDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DataTableDefinitionDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DataTableDefinitionDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/data-table-preferences/{table}": {
      "get": {
        "tags": [
          "DataTablePreferences"
        ],
        "description": "Bir tablonun koddaki varsayılan ayarlarını ve kullanıcıya uygulanacak nihai ayarlarını getirir.",
        "parameters": [
          {
            "name": "table",
            "in": "path",
            "description": "Tablo türü.",
            "required": true,
            "schema": {
              "enum": [
                "BankTransactions",
                "Invoices",
                "ExpenseBills",
                "LegalEntities",
                "Tenants",
                "CashboxRecords"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "DataTablePreferences"
        ],
        "description": "Giriş yapan kullanıcının tablo tercihlerini kaydeder.",
        "parameters": [
          {
            "name": "table",
            "in": "path",
            "description": "Tablo türü.",
            "required": true,
            "schema": {
              "enum": [
                "BankTransactions",
                "Invoices",
                "ExpenseBills",
                "LegalEntities",
                "Tenants",
                "CashboxRecords"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetDataTablePreferenceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetDataTablePreferenceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetDataTablePreferenceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "DataTablePreferences"
        ],
        "description": "Giriş yapan kullanıcının tablo tercihlerini siler.",
        "parameters": [
          {
            "name": "table",
            "in": "path",
            "description": "Tablo türü.",
            "required": true,
            "schema": {
              "enum": [
                "BankTransactions",
                "Invoices",
                "ExpenseBills",
                "LegalEntities",
                "Tenants",
                "CashboxRecords"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/data-table-preferences/{table}/scope-default": {
      "put": {
        "tags": [
          "DataTablePreferences"
        ],
        "description": "Kullanıcının kapsamı (tenant, bayi veya host) için varsayılan tablo ayarlarını kaydeder.",
        "parameters": [
          {
            "name": "table",
            "in": "path",
            "description": "Tablo türü.",
            "required": true,
            "schema": {
              "enum": [
                "BankTransactions",
                "Invoices",
                "ExpenseBills",
                "LegalEntities",
                "Tenants",
                "CashboxRecords"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetDataTablePreferenceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetDataTablePreferenceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetDataTablePreferenceInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "DataTablePreferences"
        ],
        "description": "Kullanıcının kapsamı için tanımlı varsayılan tablo ayarlarını siler.",
        "parameters": [
          {
            "name": "table",
            "in": "path",
            "description": "Tablo türü.",
            "required": true,
            "schema": {
              "enum": [
                "BankTransactions",
                "Invoices",
                "ExpenseBills",
                "LegalEntities",
                "Tenants",
                "CashboxRecords"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataTableStateDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/customer-transactions/{id}": {
      "get": {
        "tags": [
          "CustomerTransactions"
        ],
        "description": "Belirtilen ID'ye sahip müşteri işleminin detaylı bilgilerini getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedCustomerTransactionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedCustomerTransactionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedCustomerTransactionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "CustomerTransactions"
        ],
        "description": "Belirtilen ID'ye sahip müşteri işlemini siler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/customer-transactions": {
      "get": {
        "tags": [
          "CustomerTransactions"
        ],
        "description": "Müşteri işlemlerinin listesini getirir.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi (Ad, soyad, açıklama veya kimlik numarası).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TransactionType",
            "in": "query",
            "description": "İşlem tipi filtresi.",
            "schema": {
              "enum": [
                "GoodsSold",
                "GoodsPurchased"
              ],
              "type": "string"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Para birimi filtresi.",
            "schema": {
              "enum": [
                "TRY",
                "USD",
                "EUR",
                "GBP",
                "XAU",
                "CHF",
                "CAD",
                "RUB",
                "AED",
                "AUD",
                "DKK",
                "SEK",
                "NOK",
                "JPY",
                "KWD",
                "ZAR",
                "BHD",
                "LYD",
                "SAR",
                "IQD",
                "ILS",
                "INR",
                "MXN",
                "HUF",
                "NZD",
                "BRL",
                "IDR",
                "CZK",
                "PLN",
                "RON",
                "CNY",
                "ARS",
                "ALL",
                "AZN",
                "BAM",
                "CLP",
                "COP",
                "CRC",
                "DZD",
                "EGP",
                "HKD",
                "ISK",
                "KRW",
                "KZT",
                "LBP",
                "LKR",
                "MAD",
                "MDL",
                "MKD",
                "MYR",
                "OMR",
                "PEN",
                "PHP",
                "PKR",
                "QAR",
                "RSD",
                "SGD",
                "SYP",
                "THB",
                "TWD",
                "UAH",
                "UYU",
                "GEL",
                "TND",
                "BGN"
              ],
              "type": "string"
            }
          },
          {
            "name": "IdentityVerificationId",
            "in": "query",
            "description": "Kimlik doğrulama ID filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "Başlangıç tarihi filtresi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "Bitiş tarihi filtresi.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "IsDemo",
            "in": "query",
            "description": "Demo verisi mi?",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "NationalIdentityNumber",
            "in": "query",
            "description": "Filtrelenecek T.C. kimlik numarası.",
            "schema": {
              "maxLength": 11,
              "minLength": 11,
              "type": "string"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfCustomerTransactionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfCustomerTransactionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfCustomerTransactionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "CustomerTransactions"
        ],
        "description": "Kimlik doğrulamasına bağlı olmayan bir müşteri işlemi oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerTransactionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerTransactionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerTransactionInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedCustomerTransactionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedCustomerTransactionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedCustomerTransactionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/currency-rates/latest": {
      "get": {
        "tags": [
          "CurrencyRates"
        ],
        "description": "En güncel döviz ve altın kurlarını getirir. 'at' parametresi verilirse o tarih/saatte bilinen en güncel kurlar döndürülür.",
        "parameters": [
          {
            "name": "at",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LatestCurrencyRatesDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LatestCurrencyRatesDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LatestCurrencyRatesDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/currency-rates/history": {
      "get": {
        "tags": [
          "CurrencyRates"
        ],
        "description": "Bir kurun seçilen aralıktaki OHLC geçmişini getirir. Kareler 'interval' saniyelik kovalara toplanır; açılış/en yüksek/en düşük/kapanış satış kurundan, alış/satış çifti kova kapanışından gelir.",
        "parameters": [
          {
            "name": "Code",
            "in": "query",
            "description": "Kur kodu (döviz ya da altın ürünü).",
            "schema": {
              "maxLength": 20,
              "minLength": 0,
              "type": "string"
            }
          },
          {
            "name": "From",
            "in": "query",
            "description": "Aralık başlangıcı (UTC). Belirtilmezse bitişten 24 saat öncesi kullanılır.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "To",
            "in": "query",
            "description": "Aralık bitişi (UTC). Belirtilmezse şu an kullanılır.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "IntervalSeconds",
            "in": "query",
            "description": "Kare çözünürlüğü (saniye). En küçük değer 60'tır; aralık kare sınırını aşarsa yukarı yuvarlanır.",
            "schema": {
              "maximum": 604800,
              "minimum": 60,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CurrencyRateHistoryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrencyRateHistoryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrencyRateHistoryDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-accounts/{id}": {
      "get": {
        "tags": [
          "BankAccounts"
        ],
        "description": "Belirtilen ID'ye sahip banka hesabının detaylı bilgilerini getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "BankAccounts"
        ],
        "description": "Belirtilen ID'ye sahip banka hesabını günceller.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "BankAccounts"
        ],
        "description": "Belirtilen ID'ye sahip banka hesabını siler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-accounts": {
      "get": {
        "tags": [
          "BankAccounts"
        ],
        "description": "Banka hesaplarının listesini getirir.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Para birimi.",
            "schema": {
              "enum": [
                "TRY",
                "USD",
                "EUR",
                "GBP",
                "XAU",
                "CHF",
                "CAD",
                "RUB",
                "AED",
                "AUD",
                "DKK",
                "SEK",
                "NOK",
                "JPY",
                "KWD",
                "ZAR",
                "BHD",
                "LYD",
                "SAR",
                "IQD",
                "ILS",
                "INR",
                "MXN",
                "HUF",
                "NZD",
                "BRL",
                "IDR",
                "CZK",
                "PLN",
                "RON",
                "CNY",
                "ARS",
                "ALL",
                "AZN",
                "BAM",
                "CLP",
                "COP",
                "CRC",
                "DZD",
                "EGP",
                "HKD",
                "ISK",
                "KRW",
                "KZT",
                "LBP",
                "LKR",
                "MAD",
                "MDL",
                "MKD",
                "MYR",
                "OMR",
                "PEN",
                "PHP",
                "PKR",
                "QAR",
                "RSD",
                "SGD",
                "SYP",
                "THB",
                "TWD",
                "UAH",
                "UYU",
                "GEL",
                "TND",
                "BGN"
              ],
              "type": "string"
            }
          },
          {
            "name": "Bank",
            "in": "query",
            "description": "Banka.",
            "schema": {
              "enum": [
                "GarantiBBVA",
                "Akbank",
                "QNBFinansbank",
                "YapiKredi",
                "IsBankasi",
                "ZiraatBankasi",
                "HalkBankasi",
                "VakifBank",
                "DenizBank",
                "TEB",
                "ING",
                "HSBC",
                "Enpara",
                "Kuveytturk",
                "VakifKatilim",
                "Albaraka",
                "TekstilBankasi",
                "Sekerbank",
                "TurkiyeFinans",
                "DunyaKatilim",
                "Anadolubank",
                "ZiraatKatilim",
                "TurkishBank",
                "Fibabanka",
                "Turklandbank",
                "PashaBank",
                "Alternatifbank",
                "BurganBank",
                "AktifYatirim",
                "OdeaBank",
                "ColendiBank",
                "FupsBank",
                "EmlakKatilim",
                "HayatFinans",
                "TomKatilim"
              ],
              "type": "string"
            }
          },
          {
            "name": "IsDemo",
            "in": "query",
            "description": "Demo verisi mi?",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasErrors",
            "in": "query",
            "description": "Hesabın kendi senkronizasyon hatası ya da bağlı kimlik bilgisinde devre dışı bırakılma durumu var mı?",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için). Boş ise kendi tenantını filtreler.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfBankAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfBankAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfBankAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "BankAccounts"
        ],
        "description": "Yeni bir banka hesabı oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBankAccountInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBankAccountInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBankAccountInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-accounts/update-display-orders": {
      "post": {
        "tags": [
          "BankAccounts"
        ],
        "description": "Banka hesaplarının display order değerlerini toplu olarak günceller.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountDisplayOrdersInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountDisplayOrdersInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountDisplayOrdersInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-accounts/{id}/synchronize": {
      "post": {
        "tags": [
          "BankAccounts"
        ],
        "description": "Belirtilen ID'ye sahip banka hesabını eşitler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SynchronizeBankAccountInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SynchronizeBankAccountInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SynchronizeBankAccountInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeBankAccountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeBankAccountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeBankAccountResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-accounts/synchronize-all": {
      "post": {
        "tags": [
          "BankAccounts"
        ],
        "description": "Tenant'ın senkronize edilebilir tüm banka hesaplarını arka planda eşitlenmek üzere kuyruğa alır.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeAllBankAccountsResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeAllBankAccountsResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SynchronizeAllBankAccountsResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-transactions": {
      "get": {
        "tags": [
          "BankAccountTransactions"
        ],
        "description": "Banka hesap hareketlerini listeler",
        "parameters": [
          {
            "name": "Bank",
            "in": "query",
            "description": "Filtrelenecek banka.",
            "schema": {
              "enum": [
                "GarantiBBVA",
                "Akbank",
                "QNBFinansbank",
                "YapiKredi",
                "IsBankasi",
                "ZiraatBankasi",
                "HalkBankasi",
                "VakifBank",
                "DenizBank",
                "TEB",
                "ING",
                "HSBC",
                "Enpara",
                "Kuveytturk",
                "VakifKatilim",
                "Albaraka",
                "TekstilBankasi",
                "Sekerbank",
                "TurkiyeFinans",
                "DunyaKatilim",
                "Anadolubank",
                "ZiraatKatilim",
                "TurkishBank",
                "Fibabanka",
                "Turklandbank",
                "PashaBank",
                "Alternatifbank",
                "BurganBank",
                "AktifYatirim",
                "OdeaBank",
                "ColendiBank",
                "FupsBank",
                "EmlakKatilim",
                "HayatFinans",
                "TomKatilim"
              ],
              "type": "string"
            }
          },
          {
            "name": "IsDemo",
            "in": "query",
            "description": "Demo kayıtlara göre filtreleme.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Filtrelenecek para birimi.",
            "schema": {
              "enum": [
                "TRY",
                "USD",
                "EUR",
                "GBP",
                "XAU",
                "CHF",
                "CAD",
                "RUB",
                "AED",
                "AUD",
                "DKK",
                "SEK",
                "NOK",
                "JPY",
                "KWD",
                "ZAR",
                "BHD",
                "LYD",
                "SAR",
                "IQD",
                "ILS",
                "INR",
                "MXN",
                "HUF",
                "NZD",
                "BRL",
                "IDR",
                "CZK",
                "PLN",
                "RON",
                "CNY",
                "ARS",
                "ALL",
                "AZN",
                "BAM",
                "CLP",
                "COP",
                "CRC",
                "DZD",
                "EGP",
                "HKD",
                "ISK",
                "KRW",
                "KZT",
                "LBP",
                "LKR",
                "MAD",
                "MDL",
                "MKD",
                "MYR",
                "OMR",
                "PEN",
                "PHP",
                "PKR",
                "QAR",
                "RSD",
                "SGD",
                "SYP",
                "THB",
                "TWD",
                "UAH",
                "UYU",
                "GEL",
                "TND",
                "BGN"
              ],
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "description": "UTC zaman dilimine göre filtrelenecek başlangıç tarih ve saati.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "description": "UTC zaman dilimine göre filtrelenecek bitiş tarih ve saati.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "InvoiceStartTime",
            "in": "query",
            "description": "Bağlı faturanın düzenlenme tarihine (yoksa oluşturulma tarihine) göre filtrelenecek başlangıç tarih ve saati (UTC).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "InvoiceEndTime",
            "in": "query",
            "description": "Bağlı faturanın düzenlenme tarihine (yoksa oluşturulma tarihine) göre filtrelenecek bitiş tarih ve saati (UTC).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExpenseBillStartTime",
            "in": "query",
            "description": "Bağlı gider pusulasının oluşturulma tarihine göre filtrelenecek başlangıç tarih ve saati (UTC).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExpenseBillEndTime",
            "in": "query",
            "description": "Bağlı gider pusulasının oluşturulma tarihine göre filtrelenecek bitiş tarih ve saati (UTC).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BankAccountIds",
            "in": "query",
            "description": "Filtrelenecek banka hesabı ID'leri.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "TransactionDirection",
            "in": "query",
            "description": "Filtrelenecek işlem yönü.",
            "schema": {
              "enum": [
                "MoneyIn",
                "MoneyOut"
              ],
              "type": "string"
            }
          },
          {
            "name": "TransactionType",
            "in": "query",
            "description": "Filtrelenecek işlem türü.",
            "schema": {
              "enum": [
                "None",
                "Other",
                "Havale",
                "EFT",
                "FAST",
                "PosPayment",
                "Bsmv",
                "Komisyon",
                "Masraf",
                "PosKesinti"
              ],
              "type": "string"
            }
          },
          {
            "name": "TransactionTypes",
            "in": "query",
            "description": "Filtrelenecek işlem türleri.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "None",
                  "Other",
                  "Havale",
                  "EFT",
                  "FAST",
                  "PosPayment",
                  "Bsmv",
                  "Komisyon",
                  "Masraf",
                  "PosKesinti"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsRisky",
            "in": "query",
            "description": "Riskli olarak işaretlenmiş kayıtlara göre filtreleme.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsHidden",
            "in": "query",
            "description": "True ise sadece gizlenmiş banka hesap hareketlerini getirir, false ise sadece gizlenmemişleri. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasOtherAccountOwnerName",
            "in": "query",
            "description": "Karşı taraf ismi bulunan kayıtlara göre filtreleme.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasInvoice",
            "in": "query",
            "description": "True ise sadece faturası olan banka hesap hareketlerini getirir, false ise sadece faturası olmayanları. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasActiveInvoice",
            "in": "query",
            "description": "True ise sadece iptal edilmemiş ya da reddedilmemiş en az bir faturaya bağlı banka hesap hareketlerini getirir, false ise bu durumda bir faturaya bağlı olmayanları. İptal edilmiş ya da reddedilmiş faturalar bağlantı sayılmaz. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "HasExpenseBill",
            "in": "query",
            "description": "True ise sadece gider faturası olan banka hesap hareketlerini getirir, false ise sadece gider faturası olmayanları. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsInvoicable",
            "in": "query",
            "description": "True ise sadece faturalandırılabilir banka hesap hareketlerini getirir, false ise sadece faturalandırılamayanları. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsExpenseBillable",
            "in": "query",
            "description": "True ise sadece gider pusulası kesilebilir banka hesap hareketlerini getirir, false ise kesilemeyenleri. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "MaxAmount",
            "in": "query",
            "description": "Filtrelenecek maksimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinAmount",
            "in": "query",
            "description": "Filtrelenecek minimum tutar.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "RequiresIdentityVerification",
            "in": "query",
            "description": "True ise sadece kimlik tespiti gerektiren banka hesap hareketlerini getirir, false ise sadece gerektirmeyenleri. Null ise hepsini getirir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CoreBusiness",
            "in": "query",
            "description": "Bağlı carinin faaliyet alanlarına göre filtre. Verilen değerlerden herhangi biri carinin faaliyet alanlarından biriyle eşleşirse kayıt döner. Boş değer (CoreBusiness=) faaliyet alanı belirtilmemiş carileri ve carisi olmayan hareketleri seçer; istenmeyen faaliyet alanları listeye eklenmeyerek elenir.",
            "schema": {
              "type": "array",
              "items": {
                "enum": [
                  "GoldDealing",
                  "Staff"
                ],
                "type": "string"
              }
            }
          },
          {
            "name": "IsTransferredToAccounting",
            "in": "query",
            "description": "Muhasebeye aktarım durumuna göre filtre. True ise yalnızca aktarılmış, false ise yalnızca aktarılmamış hareketler döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsProcessed",
            "in": "query",
            "description": "İşlenme durumuna göre filtre. True ise yalnızca işlenmiş, false ise yalnızca işlenmemiş hareketler döner. Belirtilmezse filtre uygulanmaz.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "BranchId",
            "in": "query",
            "description": "Şube ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WithoutBranch",
            "in": "query",
            "description": "true ise yalnızca şubesi olmayan kayıtlar döner. BranchId ile birlikte verilirse BranchId geçerlidir.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfBankAccountTransactionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfBankAccountTransactionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfBankAccountTransactionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-transactions/{id}": {
      "get": {
        "tags": [
          "BankAccountTransactions"
        ],
        "description": "Banka hesap hareketini getirir",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountTransactionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountTransactionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountTransactionDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-transactions/set-hidden-state": {
      "post": {
        "tags": [
          "BankAccountTransactions"
        ],
        "description": "Banka hesap hareketlerinin gizlilik durumunu toplu günceller",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetBankAccountTransactionsHiddenInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetBankAccountTransactionsHiddenInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetBankAccountTransactionsHiddenInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-transactions/set-procession-state": {
      "post": {
        "tags": [
          "BankAccountTransactions"
        ],
        "description": "Banka hesap hareketlerinin işlenme durumunu ve notunu toplu günceller",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetBankAccountTransactionsProcessionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetBankAccountTransactionsProcessionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetBankAccountTransactionsProcessionInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-transactions/{id}/documents": {
      "post": {
        "tags": [
          "BankAccountTransactions"
        ],
        "description": "Banka hesap hareketini bir veya birden fazla fatura ya da gider pusulası ile eşleştirir. Para çıkışı olan hareketler gelen faturalar ve gider pusulaları ile, para girişi olan hareketler giden faturalar ile eşleştirilebilir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionDocumentsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionDocumentsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionDocumentsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "BankAccountTransactions"
        ],
        "description": "Banka hesap hareketinin fatura ya da gider pusulası eşleşmelerini kaldırır.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionDocumentsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionDocumentsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountTransactionDocumentsInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-transaction-classifications": {
      "get": {
        "tags": [
          "TenantBankAccountTransactionClassifications"
        ],
        "description": "Banka hesap hareketi sınıflandırma kurallarını listeler",
        "parameters": [
          {
            "name": "TenantId",
            "in": "query",
            "description": "Filtrelenecek tenant (sadece host hesapları için).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RuleType",
            "in": "query",
            "description": "Kural türüne göre filtreleme.",
            "schema": {
              "enum": [
                "AutoHide"
              ],
              "type": "string"
            }
          },
          {
            "name": "MatchType",
            "in": "query",
            "description": "Eşleşme türüne göre filtreleme.",
            "schema": {
              "enum": [
                "EntityNumber",
                "OwnerName",
                "Iban",
                "DescriptionRegex",
                "DescriptionContains",
                "PaymentRefunds",
                "InternalTransfer"
              ],
              "type": "string"
            }
          },
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Sınıflandırma adı veya eşleşme değerine göre arama filtresi.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfTenantBankAccountTransactionClassificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfTenantBankAccountTransactionClassificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfTenantBankAccountTransactionClassificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "TenantBankAccountTransactionClassifications"
        ],
        "description": "Banka hesap hareketi otomatik gizleme kuralı oluşturur",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantBankAccountTransactionClassificationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantBankAccountTransactionClassificationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantBankAccountTransactionClassificationInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBankAccountTransactionClassificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBankAccountTransactionClassificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBankAccountTransactionClassificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-transaction-classifications/{id}": {
      "put": {
        "tags": [
          "TenantBankAccountTransactionClassifications"
        ],
        "description": "Banka hesap hareketi sınıflandırma kuralını günceller",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantBankAccountTransactionClassificationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantBankAccountTransactionClassificationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantBankAccountTransactionClassificationInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBankAccountTransactionClassificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBankAccountTransactionClassificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBankAccountTransactionClassificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "TenantBankAccountTransactionClassifications"
        ],
        "description": "Banka hesap hareketi sınıflandırma kuralını siler",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-transaction-classifications/{id}/is-enabled": {
      "put": {
        "tags": [
          "TenantBankAccountTransactionClassifications"
        ],
        "description": "Banka hesap hareketi sınıflandırma kuralını etkinleştirir veya devre dışı bırakır",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetTenantBankAccountTransactionClassificationEnabledInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetTenantBankAccountTransactionClassificationEnabledInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetTenantBankAccountTransactionClassificationEnabledInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBankAccountTransactionClassificationDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBankAccountTransactionClassificationDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBankAccountTransactionClassificationDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-infos/{id}": {
      "get": {
        "tags": [
          "BankAccountInfos"
        ],
        "description": "Belirtilen ID'ye sahip banka hesap bilgisini getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "put": {
        "tags": [
          "BankAccountInfos"
        ],
        "description": "Belirtilen ID'ye sahip banka hesap bilgisini günceller.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountInfoInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountInfoInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountInfoInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "delete": {
        "tags": [
          "BankAccountInfos"
        ],
        "description": "Belirtilen ID'ye sahip banka hesap bilgisini siler.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-infos/by-iban/{iban}": {
      "get": {
        "tags": [
          "BankAccountInfos"
        ],
        "description": "Belirtilen IBAN'a sahip banka hesap bilgisini getirir.",
        "parameters": [
          {
            "name": "iban",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 0,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-infos/by-entity-number/{entityNumber}": {
      "get": {
        "tags": [
          "BankAccountInfos"
        ],
        "description": "Belirtilen T.C. / vergi kimlik numarasına sahip banka hesap bilgilerini getirir.",
        "parameters": [
          {
            "name": "entityNumber",
            "in": "path",
            "description": "T.C. / vergi kimlik numarası.",
            "required": true,
            "schema": {
              "maxLength": 11,
              "minLength": 6,
              "pattern": "^[0-9]{6,11}$",
              "type": "string",
              "description": "Vergi kimlik numarası (VKN) veya T.C. kimlik numarası (TCKN). 10 haneden kısa gönderilen VKN değerleri başına sıfır eklenerek 10 haneye tamamlanır; 11 haneli gönderilen değerler TCKN kabul edilir ve TCKN kontrol hanesi doğrulaması yapılır, bu doğrulamayı geçmeyen 11 haneli değerler reddedilir. Yanıtlarda her zaman sıfır dolgulu kanonik biçimde (VKN için 10, TCKN için 11 hane) döner.",
              "example": "1234567890"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BankAccountInfoDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BankAccountInfoDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BankAccountInfoDto"
                  }
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-infos": {
      "get": {
        "tags": [
          "BankAccountInfos"
        ],
        "description": "Banka hesap bilgilerinin listesini getirir.",
        "parameters": [
          {
            "name": "SearchFilter",
            "in": "query",
            "description": "Arama filtresi (IBAN, hesap sahibi adı, T.C. / vergi kimlik numarası vs.)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LegalEntityId",
            "in": "query",
            "description": "Cari ID'sine göre filtre.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfBankAccountInfoDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfBankAccountInfoDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfBankAccountInfoDto"
                }
              }
            }
          }
        },
        "security": [ ]
      },
      "post": {
        "tags": [
          "BankAccountInfos"
        ],
        "description": "Yeni bir banka hesap bilgisi oluşturur.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBankAccountInfoInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBankAccountInfoInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBankAccountInfoInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-infos/{id}/legal-entity": {
      "post": {
        "tags": [
          "BankAccountInfos"
        ],
        "description": "Banka hesap bilgisini bir cariye bağlar, cari yoksa oluşturur ve ilgili hesap hareketlerine cariyi arka planda geriye dönük atar.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountInfoLegalEntityInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountInfoLegalEntityInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LinkBankAccountInfoLegalEntityInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/api/bank-account-infos/quick-assign-legal-entity": {
      "post": {
        "tags": [
          "BankAccountInfos"
        ],
        "description": "Bir hesap hareketinin karşı tarafını cariye bağlar: hareketin IBAN'ı varsa hesap bilgisini oluşturur veya bulur ve aynı IBAN'lı geçmiş hareketlerle belgelerine cariyi arka planda geriye dönük atar; IBAN yoksa yalnız bu harekete atar. Cari verilmediyse T.C. / vergi kimlik numarasından bulunur veya oluşturulur. Banka maskeli kimlik numarası bildirdiyse seçilen ya da girilen numara maskeyle doğrulanır.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuickAssignBankAccountInfoLegalEntityInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuickAssignBankAccountInfoLegalEntityInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuickAssignBankAccountInfoLegalEntityInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuickAssignLegalEntityResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuickAssignLegalEntityResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuickAssignLegalEntityResultDto"
                }
              }
            }
          }
        },
        "security": [ ]
      }
    },
    "/connect/userinfo": {
      "get": {
        "tags": [
          "OpenID Connect ile Yetkilendirme"
        ],
        "summary": "Kullanıcı bilgisi uç noktası",
        "description": "Erişim tokenındaki scope'lara göre oturum açmış kullanıcının claimlerini döner. 'is_demo' claimi kullanıcının tenant'ı demo modundaysa true olur.",
        "operationId": "connectUserinfo",
        "responses": {
          "200": {
            "description": "Verilen scope'lara göre kullanıcı claimleri.",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "sub"
                  ],
                  "type": "object",
                  "properties": {
                    "sub": {
                      "type": "string",
                      "description": "Kullanıcı kimliği.",
                      "format": "ulid"
                    },
                    "is_demo": {
                      "type": "boolean",
                      "description": "Kullanıcı bir tenant kullanıcısıysa ve tenant demo modundaysa true."
                    },
                    "name": {
                      "type": "string",
                      "description": "Ad soyad ('profile' scope'u)."
                    },
                    "preferred_username": {
                      "type": "string",
                      "description": "Kullanıcı adı ('profile' scope'u)."
                    },
                    "email": {
                      "type": "string",
                      "description": "E-posta adresi ('email' scope'u)."
                    },
                    "phone_number": {
                      "type": "string",
                      "description": "Telefon numarası ('phone' scope'u)."
                    },
                    "role": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Kullanıcının rolleri ('roles' scope'u)."
                    },
                    "tenant_id": {
                      "type": "string",
                      "description": "Tenant kimliği ('tenant' scope'u).",
                      "format": "ulid"
                    },
                    "tenant_name": {
                      "type": "string",
                      "description": "Tenant adı ('tenant' scope'u)."
                    },
                    "is_host": {
                      "type": "string",
                      "description": "Kullanıcı host kullanıcısıysa 'true' ('tenant' scope'u)."
                    },
                    "federation_id": {
                      "type": "string",
                      "description": "Bayi kimliği ('tenant' scope'u).",
                      "format": "ulid"
                    },
                    "federation_name": {
                      "type": "string",
                      "description": "Bayi adı ('tenant' scope'u)."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Erişim tokenı geçersiz veya süresi dolmuş."
          }
        },
        "security": [
          { },
          { }
        ]
      }
    },
    "/api/provinces": {
      "get": {
        "tags": [
          "Provinces"
        ],
        "description": "İl listesini getirir.",
        "parameters": [
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfProvinceDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfProvinceDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfProvinceDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/provinces/{id}/districts": {
      "get": {
        "tags": [
          "Provinces"
        ],
        "description": "Bir ile bağlı ilçe listesini getirir.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 26,
              "minLength": 26,
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          {
            "name": "Sorting",
            "in": "query",
            "description": "Sıralanacak alan ve sıralama yönü (biçim: <Alan Adı> [ASC|DESC], varsayılan: CreationTime DESC).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipCount",
            "in": "query",
            "description": "Atlanacak kayıt sayısı (genelde ([sayfa numarası] - 1) * [sayfa boyutu] olarak hesaplanır).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MaxResultCount",
            "in": "query",
            "description": "Sayfa başına getirilecek maksimum kayıt sayısı.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfDistrictDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfDistrictDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedListDtoOfDistrictDto"
                }
              }
            }
          }
        }
      }
    },
    "/connect/authorize": {
      "get": {
        "tags": [
          "OpenID Connect ile Yetkilendirme"
        ],
        "summary": "Yetkilendirme uç noktası",
        "description": "OpenID Connect authorization code (PKCE zorunlu) akışını başlatır. Oturum yoksa kullanıcıyı giriş ekranına, onay gerekiyorsa onay ekranına yönlendirir; başarılı olduğunda yetkilendirme kodu ile redirect_uri'ye döner.",
        "operationId": "connectAuthorize",
        "parameters": [
          {
            "name": "response_type",
            "in": "query",
            "description": "Yanıt türü. Yalnızca 'code' desteklenir.",
            "required": true,
            "schema": {
              "enum": [
                "code"
              ],
              "type": "string"
            }
          },
          {
            "name": "client_id",
            "in": "query",
            "description": "İstemci kimliği.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "redirect_uri",
            "in": "query",
            "description": "Yetkilendirme kodunun döneceği, istemcide kayıtlı URI.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uri"
            }
          },
          {
            "name": "scope",
            "in": "query",
            "description": "Boşlukla ayrılmış scope listesi (örn. 'openid profile email offline_access').",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "CSRF koruması için istemcinin ürettiği ve aynen geri dönen değer.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "code_challenge",
            "in": "query",
            "description": "PKCE code challenge değeri.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "code_challenge_method",
            "in": "query",
            "description": "PKCE challenge yöntemi.",
            "required": true,
            "schema": {
              "enum": [
                "S256"
              ],
              "type": "string"
            }
          },
          {
            "name": "nonce",
            "in": "query",
            "description": "id_token'a aynen yansıtılan tekrar oynatma koruması değeri.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "prompt",
            "in": "query",
            "description": "Kullanıcı etkileşimi davranışı (örn. 'login', 'consent', 'none').",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "max_age",
            "in": "query",
            "description": "Saniye cinsinden azami oturum yaşı; aşılmışsa yeniden giriş istenir.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Yetkilendirme kodu ile redirect_uri'ye ya da giriş/onay ekranına yönlendirme."
          },
          "400": {
            "description": "Geçersiz istek (tanınmayan istemci, eksik veya hatalı parametre)."
          }
        }
      }
    },
    "/connect/token": {
      "post": {
        "tags": [
          "OpenID Connect ile Yetkilendirme"
        ],
        "summary": "Token uç noktası",
        "description": "Erişim, kimlik ve yenileme tokenlarını üretir. Desteklenen grant türleri: password, authorization_code (PKCE), refresh_token, tenant_impersonation (yalnızca host kullanıcıları; zorunlu 'tenant_id' parametresi ile) ve host_return (aktif bir impersonation access tokenı ile host bağlamına dönüş).",
        "operationId": "connectToken",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "required": [
                  "grant_type",
                  "client_id"
                ],
                "type": "object",
                "properties": {
                  "grant_type": {
                    "enum": [
                      "password",
                      "authorization_code",
                      "refresh_token",
                      "tenant_impersonation",
                      "host_return",
                      "tenant_selection"
                    ],
                    "type": "string",
                    "description": "Kullanılacak grant türü."
                  },
                  "client_id": {
                    "type": "string",
                    "description": "İstemci kimliği."
                  },
                  "client_secret": {
                    "type": "string",
                    "description": "Gizli (confidential) istemciler için istemci parolası."
                  },
                  "username": {
                    "type": "string",
                    "description": "password grant: kullanıcının e-posta adresi veya GSM numarası."
                  },
                  "password": {
                    "type": "string",
                    "description": "password grant: kullanıcının parolası."
                  },
                  "code": {
                    "type": "string",
                    "description": "authorization_code grant: authorize uç noktasından alınan kod."
                  },
                  "redirect_uri": {
                    "type": "string",
                    "description": "authorization_code grant: kod isteğinde kullanılan redirect_uri.",
                    "format": "uri"
                  },
                  "code_verifier": {
                    "type": "string",
                    "description": "authorization_code grant: PKCE code verifier değeri."
                  },
                  "refresh_token": {
                    "type": "string",
                    "description": "refresh_token grant: geçerli yenileme tokenı."
                  },
                  "scope": {
                    "type": "string",
                    "description": "Boşlukla ayrılmış scope listesi."
                  },
                  "tenant_id": {
                    "type": "string",
                    "description": "tenant_impersonation grant: impersonate edilecek tenant kimliği. tenant_selection grant: seçilecek tenant kimliği.",
                    "format": "ulid"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Token üretildi.",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "access_token",
                    "token_type"
                  ],
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string",
                      "description": "JWT erişim tokenı."
                    },
                    "token_type": {
                      "type": "string",
                      "description": "Token türü, her zaman 'Bearer'."
                    },
                    "expires_in": {
                      "type": "integer",
                      "description": "Erişim tokenının saniye cinsinden geçerlilik süresi."
                    },
                    "refresh_token": {
                      "type": "string",
                      "description": "Yenileme tokenı ('offline_access' scope'u verildiyse)."
                    },
                    "id_token": {
                      "type": "string",
                      "description": "Kimlik tokenı ('openid' scope'u verildiyse)."
                    },
                    "scope": {
                      "type": "string",
                      "description": "Verilen scope listesi."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Geçersiz istek veya grant (OAuth 2.0 hata gövdesi).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "OAuth 2.0 hata kodu."
                    },
                    "error_description": {
                      "type": "string",
                      "description": "Hata açıklaması."
                    },
                    "error_uri": {
                      "type": "string",
                      "description": "Hata hakkında ayrıntı sayfası.",
                      "format": "uri"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi (hatalı kimlik bilgileri, pasif kullanıcı vb.).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "OAuth 2.0 hata kodu."
                    },
                    "error_description": {
                      "type": "string",
                      "description": "Hata açıklaması."
                    },
                    "error_uri": {
                      "type": "string",
                      "description": "Hata hakkında ayrıntı sayfası.",
                      "format": "uri"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/connect/logout": {
      "post": {
        "tags": [
          "OpenID Connect ile Yetkilendirme"
        ],
        "summary": "Oturum sonlandırma uç noktası",
        "description": "Erişim tokenını iptal eder, ilişkili oturumu sonlandırır ve IdP oturum çerezini siler.",
        "operationId": "connectLogout",
        "responses": {
          "302": {
            "description": "Oturum sonlandırıldı; ana sayfaya yönlendirme."
          },
          "401": {
            "description": "Erişim tokenı geçersiz veya süresi dolmuş."
          }
        },
        "security": [
          { },
          { }
        ]
      }
    },
    "/.well-known/openid-configuration": {
      "get": {
        "tags": [
          "OpenID Connect ile Yetkilendirme"
        ],
        "summary": "OpenID Connect discovery belgesi",
        "description": "Sunucunun uç noktalarını, desteklenen grant türlerini ve veritabanında tanımlı scope'ları içeren discovery belgesini döner.",
        "operationId": "openIdConfiguration",
        "responses": {
          "200": {
            "description": "OpenID Connect discovery belgesi.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/jwks": {
      "get": {
        "tags": [
          "OpenID Connect ile Yetkilendirme"
        ],
        "summary": "JSON Web Key Set",
        "description": "Token imzalarını doğrulamak için kullanılan açık anahtarları döner.",
        "operationId": "openIdJwks",
        "responses": {
          "200": {
            "description": "JSON Web Key Set belgesi.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AcceptInvoiceInput": {
        "type": "object",
        "properties": {
          "message": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kabul yanıtına eklenecek açıklama mesajı (opsiyonel)."
          }
        }
      },
      "AccountingCountersDto": {
        "required": [
          "invoiceCount",
          "expenseBillCount",
          "unbookedTransactionCount"
        ],
        "type": "object",
        "properties": {
          "invoiceCount": {
            "type": "integer",
            "description": "Aktif muhasebe döneminde kesilen fatura sayısı.",
            "format": "int32"
          },
          "expenseBillCount": {
            "type": "integer",
            "description": "Aktif muhasebe döneminde düzenlenen gider pusulası sayısı.",
            "format": "int32"
          },
          "unbookedTransactionCount": {
            "type": "integer",
            "description": "Aktif muhasebe döneminde belgeye bağlanmamış banka hareketi sayısı.",
            "format": "int32"
          }
        }
      },
      "AddedTenantMembershipDto": {
        "required": [
          "membership",
          "user",
          "isLinkedExistingUser"
        ],
        "type": "object",
        "properties": {
          "membership": {
            "description": "Üyelik bilgisi.",
            "$ref": "#/components/schemas/UserTenantMembershipDto"
          },
          "user": {
            "description": "Üyelik eklenen kullanıcı.",
            "$ref": "#/components/schemas/BasicUserDto"
          },
          "isLinkedExistingUser": {
            "type": "boolean",
            "description": "Var olan bir hesabın bu tenanta bağlanıp bağlanmadığı."
          },
          "password": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yeni oluşturulan kullanıcının şifresi. Var olan hesap bağlandığında boştur."
          }
        }
      },
      "AddIdentityVerificationAdditionalDocumentsInput": {
        "required": [
          "documents"
        ],
        "type": "object",
        "properties": {
          "documents": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalDocumentInput"
            },
            "description": "Eklenecek ek belgeler."
          }
        }
      },
      "AdditionalDocumentInput": {
        "required": [
          "documentFileId",
          "documentType"
        ],
        "type": "object",
        "properties": {
          "documentFileId": {
            "type": "string",
            "description": "Daha önce yüklenmiş olan belge dosyasının kimliği.",
            "format": "uuid"
          },
          "documentType": {
            "enum": [
              "CertificateOfCommencement",
              "TaxPlate",
              "CertificateOfActivity",
              "SignatureCircular",
              "TradeRegistryGazette",
              "Other"
            ],
            "type": "string"
          }
        }
      },
      "AddLegalEntityFilesInput": {
        "required": [
          "files"
        ],
        "type": "object",
        "properties": {
          "files": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalEntityFileInput"
            },
            "description": "Eklenecek dosyalar."
          }
        }
      },
      "AddTenantMembershipInput": {
        "required": [
          "fullName",
          "roleId"
        ],
        "type": "object",
        "properties": {
          "fullName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Kullanıcı adı."
          },
          "emailAddress": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcı e-posta adresi. Telefon numarası verildiyse boş bırakılabilir."
          },
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcı telefon numarası. Var olan bir hesap bağlanırken boş bırakılabilir."
          },
          "roleId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcının bu tenanttaki rolü.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcının bu tenanttaki şubesi. Boşsa çağıranın şubesi kullanılır.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "AppliedCurrencyRateDto": {
        "required": [
          "id",
          "currencyCode",
          "goldProductCode",
          "buying",
          "selling",
          "change",
          "sourceTimestamp",
          "capturedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "currencyCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "goldProductCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "buying": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "selling": {
            "type": "number",
            "format": "double"
          },
          "change": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "sourceTimestamp": {
            "type": "string",
            "format": "date-time"
          },
          "capturedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "AssignedInvoiceNumberDto": {
        "required": [
          "invoiceId",
          "invoiceNumber",
          "eDocumentType"
        ],
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "Fatura kimliği."
          },
          "invoiceNumber": {
            "type": "string",
            "description": "Faturaya atanan fatura numarası."
          },
          "eDocumentType": {
            "type": "string",
            "description": "e-Belge tipi."
          }
        }
      },
      "AssignedTenantBranchRecordsDto": {
        "required": [
          "updatedCount"
        ],
        "type": "object",
        "properties": {
          "updatedCount": {
            "type": "integer",
            "description": "Şubesi güncellenen kayıt sayısı.",
            "format": "int32"
          }
        }
      },
      "AssignFederationDto": {
        "required": [
          "userId",
          "roleId"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Bayi ataması yapılacak kullanıcı.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "federationId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcıya atanacak bayi (boş bırakılırsa mevcut bayi ataması kaldırılır).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "roleId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcıya atanacak rol.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "AssignInvoiceNumberInput": {
        "required": [
          "invoiceNumber",
          "eDocumentType"
        ],
        "type": "object",
        "properties": {
          "invoiceNumber": {
            "maxLength": 16,
            "minLength": 16,
            "type": "string",
            "description": "Atanacak fatura numarası."
          },
          "eDocumentType": {
            "type": "string",
            "description": "e-Belge tipi (EInvoice veya EArchiveInvoice)."
          }
        }
      },
      "AssignPasswordDto": {
        "required": [
          "password",
          "userId"
        ],
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "description": "Kullanıcıya atanacak yeni şifre."
          },
          "userId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Şifresi atanacak kullanıcı.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "AssignRoleDto": {
        "required": [
          "roleId",
          "userId"
        ],
        "type": "object",
        "properties": {
          "roleId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcıya atanacak rol.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "userId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Rol atanacak kullanıcı.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "AssignTenantBranchInput": {
        "required": [
          "entityType",
          "ids"
        ],
        "type": "object",
        "properties": {
          "entityType": {
            "enum": [
              "User",
              "Invoice",
              "ExpenseBill",
              "EVoucher",
              "CustomerTransaction",
              "BankAccount",
              "IdentityVerification",
              "PosDevice",
              "PosSale",
              "Cashbox",
              "DespatchAdvice",
              "Custody",
              "SelfKycCode",
              "Inventory"
            ],
            "type": "string"
          },
          "ids": {
            "maxItems": 500,
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Şubeye atanacak kayıtların kimlikleri. Kullanıcı türünde kullanıcı kimlikleridir."
          }
        }
      },
      "BankAccountCredentialsBody": {
        "required": [
          "credentialsMode"
        ],
        "type": "object",
        "anyOf": [
          {
            "$ref": "#/components/schemas/BankAccountCredentialsBodyNoBankAccountCredentialsBody"
          },
          {
            "$ref": "#/components/schemas/BankAccountCredentialsBodyExistingBankAccountCredentialsBody"
          },
          {
            "$ref": "#/components/schemas/BankAccountCredentialsBodyNewBankAccountCredentialsBody"
          }
        ],
        "discriminator": {
          "propertyName": "credentialsMode",
          "mapping": {
            "None": "#/components/schemas/BankAccountCredentialsBodyNoBankAccountCredentialsBody",
            "Existing": "#/components/schemas/BankAccountCredentialsBodyExistingBankAccountCredentialsBody",
            "New": "#/components/schemas/BankAccountCredentialsBodyNewBankAccountCredentialsBody"
          }
        }
      },
      "BankAccountCredentialsBodyExistingBankAccountCredentialsBody": {
        "required": [
          "bankAccountCredentialsId"
        ],
        "properties": {
          "credentialsMode": {
            "enum": [
              "Existing"
            ],
            "type": "string"
          },
          "bankAccountCredentialsId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Mevcut banka hesap erişim bilgileri ID'si.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "BankAccountCredentialsBodyNewBankAccountCredentialsBody": {
        "required": [
          "credentials"
        ],
        "properties": {
          "credentialsMode": {
            "enum": [
              "New"
            ],
            "type": "string"
          },
          "credentials": {
            "description": "Bankaya göre değişen yeni erişim bilgileri girdisi.",
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInput"
          }
        }
      },
      "BankAccountCredentialsBodyNoBankAccountCredentialsBody": {
        "properties": {
          "credentialsMode": {
            "enum": [
              "None"
            ],
            "type": "string"
          }
        }
      },
      "BankAccountDto": {
        "required": [
          "id",
          "creationTime",
          "iban",
          "accountName",
          "currency",
          "bank",
          "isDemo",
          "displayOrder",
          "lastSynchronizationFailed",
          "tenant",
          "hasErrors",
          "isSynchronizable"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Banka hesabını oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "Banka hesabı kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Banka hesabının oluşturulma zamanı.",
            "format": "date-time"
          },
          "iban": {
            "type": "string",
            "description": "Banka hesabı IBAN numarası."
          },
          "accountName": {
            "type": "string",
            "description": "Banka hesabı adı."
          },
          "accountingCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Banka hesabının muhasebe kodu."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          },
          "isDemo": {
            "type": "boolean",
            "description": "Banka hesabının demo hesap olup olmadığı."
          },
          "displayOrder": {
            "type": "integer",
            "description": "Banka hesabının listede görüneceği sıra. Küçük değerler önce gelir.",
            "format": "int32"
          },
          "balance": {
            "type": [
              "null",
              "number"
            ],
            "description": "Kts.BankAccounts.ViewBalance yetkisini gerektirir.",
            "format": "double"
          },
          "lastSynchronizationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Banka hesabının son senkronizasyon zamanı.",
            "format": "date-time"
          },
          "lastSynchronizationFailed": {
            "type": "boolean",
            "description": "Son senkronizasyon denemesinin başarısız olup olmadığı."
          },
          "synchronizationThrottledTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Senkronizasyonun kısıtlandığı zaman.",
            "format": "date-time"
          },
          "tenant": {
            "description": "Banka hesabının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "hasErrors": {
            "type": "boolean",
            "description": "Banka hesabında hata bulunup bulunmadığı."
          },
          "synchronizationError": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kts.BankAccounts.ViewErrorDetails yetkisini gerektirir.",
                "$ref": "#/components/schemas/BankAccountSynchronizationErrorDto"
              }
            ]
          },
          "isSynchronizable": {
            "type": "boolean",
            "description": "Banka hesabının senkronize edilebilir olup olmadığı."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "BankAccountInfoDto": {
        "required": [
          "tenant",
          "id",
          "creationTime",
          "iban",
          "ownerName"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "description": "Banka hesabının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "id": {
            "type": "string",
            "description": "Banka hesabı kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "lastModificationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kaydın son değiştirilme zamanı.",
            "format": "date-time"
          },
          "iban": {
            "type": "string",
            "description": "Banka hesabı IBAN numarası."
          },
          "ownerName": {
            "type": "string",
            "description": "Hesap sahibinin adı."
          },
          "entityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap sahibinin vergi kimlik veya TC kimlik numarası."
          },
          "name": {
            "type": [
              "null",
              "string"
            ],
            "description": "Banka hesabına verilen isim."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesabın bağlı olduğu tüzel/gerçek kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          }
        }
      },
      "BankAccountReferenceDto": {
        "required": [
          "id",
          "iban",
          "bank"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Banka hesabı kimliği."
          },
          "iban": {
            "type": "string",
            "description": "Banka hesabı IBAN numarası."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          }
        }
      },
      "BankAccountSynchronizationErrorDto": {
        "required": [
          "credentialsEnabled"
        ],
        "type": "object",
        "properties": {
          "lastSynchronizationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Son senkronizasyon zamanı.",
            "format": "date-time"
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Senkronizasyon hata mesajı."
          },
          "errorResponse": {
            "type": [
              "null",
              "string"
            ],
            "description": "Senkronizasyon hatasına ait yanıt."
          },
          "lastResponse": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bankadan alınan son yanıt."
          },
          "throttledTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bağlantının kısıtlandığı zaman.",
            "format": "date-time"
          },
          "credentialsEnabled": {
            "type": "boolean",
            "description": "Banka kimlik bilgilerinin etkin olma durumu."
          },
          "credentialsAccessIssueKind": {
            "enum": [
              "InvalidCredentialsOrDefinition",
              "AccessRevoked"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "credentialsAccessIssueReason": {
            "type": [
              "null",
              "string"
            ],
            "description": "Banka kimlik bilgilerine erişim sorununun nedeni."
          },
          "credentialsAccessIssueDetectedTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Banka kimlik bilgilerine erişim sorununun tespit edildiği zaman.",
            "format": "date-time"
          },
          "credentialsLastStatusChangeTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Banka kimlik bilgilerinin son durum değişikliği zamanı.",
            "format": "date-time"
          }
        }
      },
      "BankAccountTransactionDto": {
        "required": [
          "id",
          "creationTime",
          "transactionAmount",
          "currency",
          "direction",
          "otherBankAccountOwnerName",
          "isDemo",
          "isHidden",
          "isProcessed",
          "isTransferredToAccounting",
          "description",
          "transactionType",
          "ownBankAccount",
          "invoices"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Banka hesap hareketinin ID'si."
          },
          "transactionTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlemin gerçekleştiği zaman.",
            "format": "date-time"
          },
          "creationTime": {
            "type": "string",
            "description": "Hesap hareketin sisteme kaydedilme zamanı.",
            "format": "date-time"
          },
          "transactionAmount": {
            "type": "number",
            "description": "Hesap hareketinin tutarı.",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "balance": {
            "type": [
              "null",
              "number"
            ],
            "description": "Kts.BankAccounts.ViewBalance yetkisini gerektirir.",
            "format": "double"
          },
          "direction": {
            "enum": [
              "MoneyIn",
              "MoneyOut"
            ],
            "type": "string"
          },
          "otherBankAccountBank": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı tarafın bankasının bankadan geldiği haliyle adı."
          },
          "otherBank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "otherBankAccountIban": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı tarafın IBAN numarası."
          },
          "otherBankAccountOwnerName": {
            "type": "string",
            "description": "Karşı taraf hesap sahibinin adı."
          },
          "otherBankAccountOwnerEntityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı taraf hesap sahibinin vergi kimlik veya TC kimlik numarası."
          },
          "descriptionEntityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketi açıklamasından çıkarılan vergi kimlik veya TC kimlik numarası."
          },
          "otherBankAccountOwnerEntityNumberMask": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bankanın maskeleyerek gönderdiği karşı taraf T.C. kimlik numarası (örn. 157******78). Yalnız ilk üç ve son iki hane bilinir."
          },
          "descriptionTckn": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketi açıklamasından çıkarılan TC kimlik numarası."
          },
          "hasEntityNumberMismatch": {
            "type": "boolean",
            "description": "Karşı taraf hesap sahibinin kimlik numarası ile açıklamadan çıkarılan kimlik numarasının ikisinin de dolu ve farklı olup olmadığı. True ise gider pusulası oluşturulurken tedarikçi kimlik numarası bu ikisinden biri seçilerek onaylanmalıdır."
          },
          "referenceNo": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bankanın hareket için verdiği referans numarası."
          },
          "isDemo": {
            "type": "boolean",
            "description": "Hesap hareketinin demo veri olup olmadığı."
          },
          "isHidden": {
            "type": "boolean",
            "description": "Hesap hareketinin listelerde gizlenip gizlenmediği."
          },
          "isProcessed": {
            "type": "boolean",
            "description": "Hesap hareketinin işlenmiş olarak işaretlenip işaretlenmediği."
          },
          "processionNote": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketinin işlenme notu."
          },
          "isTransferredToAccounting": {
            "type": "boolean",
            "description": "Hesap hareketinin muhasebe programına aktarılıp aktarılmadığı."
          },
          "accountingTransferTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketinin muhasebe programına aktarıldığı zaman.",
            "format": "date-time"
          },
          "transactionId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bankadaki işlem kimliği."
          },
          "description": {
            "type": "string",
            "description": "Hesap hareketinin banka ekstresindeki açıklaması."
          },
          "transactionType": {
            "enum": [
              "None",
              "Other",
              "Havale",
              "EFT",
              "FAST",
              "PosPayment",
              "Bsmv",
              "Komisyon",
              "Masraf",
              "PosKesinti"
            ],
            "type": "string"
          },
          "riskCategory": {
            "enum": [
              "None",
              "Low",
              "Medium",
              "High"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "riskScore": {
            "type": [
              "null",
              "number"
            ],
            "description": "Hesap hareketinin risk skoru.",
            "format": "double"
          },
          "riskReasons": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Hesap hareketinin  riskli bulunma sebepleri."
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketi oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "customerTransaction": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketinin eşleştiği cari işlem.",
                "$ref": "#/components/schemas/BasicCustomerTransactionDto"
              }
            ]
          },
          "ownBankAccount": {
            "description": "Hesap hareketinin gerçekleştiği kendi banka hesabı.",
            "$ref": "#/components/schemas/BasicBankAccountDto"
          },
          "expenseBill": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketle ilişkilendirilen gider pusulası.",
                "$ref": "#/components/schemas/ExpenseBillDto"
              }
            ]
          },
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceDto"
            },
            "description": "Hesap hareketle ilişkilendirilen faturalar."
          },
          "invoice": {
            "description": "Hesap hareketle ilişkilendirilen ilk geçerli fatura.",
            "$ref": "#/components/schemas/InvoiceDto"
          },
          "isInvoicable": {
            "type": "boolean",
            "description": "Hesap hareketi için fatura kesilebilir olup olmadığı."
          },
          "isExpenseBillable": {
            "type": "boolean",
            "description": "Hesap hareketi için gider pusulası kesilebilir olup olmadığı."
          },
          "eVoucherId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketine bağlı, iptal edilmemiş en güncel e-Gider Pusulası ID."
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketin bağlı olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "sanctionMatches": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/SanctionedPersonMatchDto"
            },
            "description": "Hareketle eşleşen yaptırım listesi kayıtları."
          },
          "identityVerifications": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/BasicIdentityVerificationDto"
            },
            "description": "Hesap hareketle ilişkili kimlik doğrulamaları."
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketle ilişkilendirilen tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "appliedCurrencyRate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketi için uygulanan döviz kuru.",
                "$ref": "#/components/schemas/AppliedCurrencyRateDto"
              }
            ]
          },
          "currencyRateId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketine atanmış referans kur kaydının kimliği. Boşsa harekete referans kur atanamamıştır."
          },
          "requiresIdentityVerification": {
            "type": "boolean",
            "description": "Hesap hareketi için kimlik doğrulaması gerekip gerekmediği."
          },
          "hasCashboxRecord": {
            "type": "boolean",
            "description": "Banka hesap hareketine bağlı canlı bir kasa hareketi olup olmadığı."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube (banka hesabının şubesi). Şubesiz hesaplarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "BankTransactionTypeOptionDto": {
        "required": [
          "transactionType",
          "displayName"
        ],
        "type": "object",
        "properties": {
          "transactionType": {
            "enum": [
              "None",
              "Other",
              "Havale",
              "EFT",
              "FAST",
              "PosPayment",
              "Bsmv",
              "Komisyon",
              "Masraf",
              "PosKesinti"
            ],
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "description": "İşlem türünün görünen adı."
          }
        }
      },
      "BaseCreateBankCredentialsInput": {
        "required": [
          "bankApi"
        ],
        "type": "object",
        "anyOf": [
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateVakifBankCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateAlbarakaCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateIsBankasiCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateZiraatBankasiCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateTebCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateQnbFinansbankCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateQnbFinansbankRestCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateEnparaCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateVakifKatilimCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateGarantiBbvaCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateYapiKrediCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateHalkbankCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateAkbankCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputConnectKuveytturkCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateDunyaKatilimCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateTurkiyeFinansCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateDenizBankCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateAnadolubankCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateSekerbankCredentialsInput"
          },
          {
            "$ref": "#/components/schemas/BaseCreateBankCredentialsInputCreateZiraatKatilimCredentialsInput"
          }
        ],
        "discriminator": {
          "propertyName": "bankApi",
          "mapping": {
            "VakifBankSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateVakifBankCredentialsInput",
            "AlbarakaSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateAlbarakaCredentialsInput",
            "IsBankasiFormApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateIsBankasiCredentialsInput",
            "ZiraatBankasiSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateZiraatBankasiCredentialsInput",
            "TebSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateTebCredentialsInput",
            "QnbFinansbankSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateQnbFinansbankCredentialsInput",
            "QnbFinansbankRestfulApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateQnbFinansbankRestCredentialsInput",
            "EnparaRestfulApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateEnparaCredentialsInput",
            "VakifKatilimSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateVakifKatilimCredentialsInput",
            "GarantiBbvaRestfulApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateGarantiBbvaCredentialsInput",
            "YapiKrediSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateYapiKrediCredentialsInput",
            "HalkBankasiSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateHalkbankCredentialsInput",
            "AkbankSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateAkbankCredentialsInput",
            "KuveytturkRestfulApi": "#/components/schemas/BaseCreateBankCredentialsInputConnectKuveytturkCredentialsInput",
            "DunyaKatilimRestfulApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateDunyaKatilimCredentialsInput",
            "TurkiyeFinansSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateTurkiyeFinansCredentialsInput",
            "DenizBankRestfulApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateDenizBankCredentialsInput",
            "AnadolubankRestfulApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateAnadolubankCredentialsInput",
            "SekerbankSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateSekerbankCredentialsInput",
            "ZiraatKatilimSoapApi": "#/components/schemas/BaseCreateBankCredentialsInputCreateZiraatKatilimCredentialsInput"
          }
        }
      },
      "BaseCreateBankCredentialsInputConnectKuveytturkCredentialsInput": {
        "required": [
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "KuveytturkRestfulApi"
            ],
            "type": "string"
          },
          "returnUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yetkilendirme tamamlandıktan sonra kullanıcının yönlendirileceği URL."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateAkbankCredentialsInput": {
        "required": [
          "userName",
          "password",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "AkbankSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Akbank'a ait elektronik hesap özeti kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Akbank'a ait elektronik hesap özeti kullanıcı şifresi."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateAlbarakaCredentialsInput": {
        "required": [
          "userName",
          "password",
          "customerNo",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "AlbarakaSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Albaraka hesabına ait kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Albaraka hesabına ait şifre."
          },
          "customerNo": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Albaraka müşteri numarası."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateAnadolubankCredentialsInput": {
        "required": [
          "key",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "AnadolubankRestfulApi"
            ],
            "type": "string"
          },
          "key": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Anadolubank gateway servisleri için tanımlanmış API anahtarı (Key)."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateDenizBankCredentialsInput": {
        "required": [
          "userName",
          "password",
          "accountNumber",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "DenizBankRestfulApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "DenizBank elektronik hesap özetine ait kullanıcı adı (channel)."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "DenizBank elektronik hesap özetine ait şifre (appKey)."
          },
          "accountNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "DenizBank müşteri numarası."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateDunyaKatilimCredentialsInput": {
        "required": [
          "userName",
          "password",
          "companyId",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "DunyaKatilimRestfulApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Dünya Katılım bankasına ait elektronik hesap özeti kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Dünya Katılım bankasına ait elektronik hesap özeti şifre."
          },
          "companyId": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Dünya Katılım bankasına ait elektronik hesap özeti firma ID."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateEnparaCredentialsInput": {
        "required": [
          "accessToken",
          "refreshToken",
          "clientId",
          "clientSecret",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "EnparaRestfulApi"
            ],
            "type": "string"
          },
          "accessToken": {
            "type": "string",
            "description": "Enpara'ya ait erişim belirteci (access token)."
          },
          "refreshToken": {
            "type": "string",
            "description": "Enpara'ya ait yenileme belirteci (refresh token)."
          },
          "clientId": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Enpara'ya ait istemci kimliği (client ID)."
          },
          "clientSecret": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Enpara'ya ait istemci parolası (client secret)."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateGarantiBbvaCredentialsInput": {
        "required": [
          "consentId",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "GarantiBbvaRestfulApi"
            ],
            "type": "string"
          },
          "consentId": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string",
            "description": "GarantiBBVA bankasına ait tanım numarası (consent ID)."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateHalkbankCredentialsInput": {
        "required": [
          "userName",
          "password",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "HalkBankasiSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Halkbank ait elektronik hesap özeti kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Halkbank ait elektronik hesap özeti kullanıcı şifresi."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateIsBankasiCredentialsInput": {
        "required": [
          "userName",
          "password",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "IsBankasiFormApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "İş Bankası hesabına ait kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "İş Bankası hesabına ait şifre."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateQnbFinansbankCredentialsInput": {
        "required": [
          "userName",
          "password",
          "wsdlUrl",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "QnbFinansbankSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Qnb Finansbank'a ait elektronik hesap özeti kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Qnb Finansbank'a ait elektronik hesap özeti kullanıcı şifresi."
          },
          "wsdlUrl": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Qnb Finansbank'a ait elektronik hesap özeti wsdl adresi."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateQnbFinansbankRestCredentialsInput": {
        "required": [
          "accessToken",
          "refreshToken",
          "clientId",
          "clientSecret",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "QnbFinansbankRestfulApi"
            ],
            "type": "string"
          },
          "accessToken": {
            "type": "string",
            "description": "Qnb Finansbank'a ait erişim belirteci (access token)."
          },
          "refreshToken": {
            "type": "string",
            "description": "Qnb Finansbank'a ait yenileme belirteci (refresh token)."
          },
          "clientId": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Qnb Finansbank'a ait istemci kimliği (client ID)."
          },
          "clientSecret": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Qnb Finansbank'a ait istemci parolası (client secret)."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateSekerbankCredentialsInput": {
        "required": [
          "userName",
          "password",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "SekerbankSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Şekerbank'a ait elektronik hesap özeti kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Şekerbank'a ait elektronik hesap özeti kullanıcı şifresi."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateTebCredentialsInput": {
        "required": [
          "companyCode",
          "companyKey",
          "branchCode",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "TebSoapApi"
            ],
            "type": "string"
          },
          "companyCode": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "TEB'e ait elektronik hesap özeti firma adı."
          },
          "companyKey": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "TEB'e ait elektronik hesap özeti firma anahtarı."
          },
          "branchCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "TEB'e ait elektronik hesap özeti şube numarası."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateTurkiyeFinansCredentialsInput": {
        "required": [
          "userName",
          "password",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "TurkiyeFinansSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Türkiye Finans Katılım Bankasına ait elektronik hesap özeti kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Türkiye Finans Katılım Bankasına ait elektronik hesap özeti şifre."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateVakifBankCredentialsInput": {
        "required": [
          "userName",
          "password",
          "customerNo",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "VakifBankSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Vakıfbank hesabına ait kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Vakıfbank hesabına ait şifre."
          },
          "customerNo": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Vakıfbank müşteri numarası."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateVakifKatilimCredentialsInput": {
        "required": [
          "userName",
          "password",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "VakifKatilimSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Vakıf Katılım elektronik hesap özetine ait kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Vakıf Katılım elektronik hesap özetine ait şifre."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateYapiKrediCredentialsInput": {
        "required": [
          "userName",
          "password",
          "companyCode",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "YapiKrediSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "YapıKredi bankasına ait elektronik hesap özeti kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "YapıKredi bankasına ait elektronik hesap özeti kullanıcı şifresi."
          },
          "companyCode": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string",
            "description": "YapıKredi elektronik hesap özeti firma kodu."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateZiraatBankasiCredentialsInput": {
        "required": [
          "userName",
          "password",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "ZiraatBankasiSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Ziraat Bankasına ait elektronik hesap özeti kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Ziraat Bankasına ait elektronik hesap özeti kullanıcı şifresi."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BaseCreateBankCredentialsInputCreateZiraatKatilimCredentialsInput": {
        "required": [
          "userName",
          "password",
          "associationCode",
          "name"
        ],
        "properties": {
          "bankApi": {
            "enum": [
              "ZiraatKatilimSoapApi"
            ],
            "type": "string"
          },
          "userName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Ziraat Katılım Bankasına ait elektronik hesap özeti kullanıcı adı."
          },
          "password": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Ziraat Katılım Bankasına ait elektronik hesap özeti şifresi."
          },
          "associationCode": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Ziraat Katılım Bankasına ait elektronik hesap özeti ilişkilendirme kodu."
          },
          "name": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Erişim bilgilerin ayırt edilebilmesi için kullanılacak tekil ad."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesap bilgilerin ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Erişim bilgilerinin aktif olup olmadığı. Belirtilmezse true olarak ayarlanır."
          }
        }
      },
      "BasicBankAccountCredentialsDto": {
        "required": [
          "id",
          "name",
          "bank"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Banka bağlantısı kimliği."
          },
          "name": {
            "type": "string",
            "description": "Banka bağlantısı adı."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          }
        }
      },
      "BasicBankAccountDto": {
        "required": [
          "id",
          "iban",
          "accountName",
          "bank",
          "currency"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Banka hesabı kimliği."
          },
          "iban": {
            "type": "string",
            "description": "Banka hesabı IBAN numarası."
          },
          "accountName": {
            "type": "string",
            "description": "Banka hesabı adı."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "balance": {
            "type": [
              "null",
              "number"
            ],
            "description": "Kts.BankAccounts.ViewBalance yetkisini gerektirir.",
            "format": "double"
          }
        }
      },
      "BasicBankAccountTransactionDto": {
        "required": [
          "id",
          "creationTime",
          "transactionAmount",
          "currency",
          "direction",
          "otherBankAccountOwnerName",
          "transactionType",
          "ownBankAccount",
          "ownBankAccountBank",
          "referenceNo",
          "transactionId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Banka hareketinin ID'si."
          },
          "creationTime": {
            "type": "string",
            "description": "Hesap hareketinin sisteme kaydedilme zamanı.",
            "format": "date-time"
          },
          "transactionTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketin banka tarafından gerçekleştiği zaman.",
            "format": "date-time"
          },
          "transactionAmount": {
            "type": "number",
            "description": "Hesap hareketi tutarı.",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "balance": {
            "type": [
              "null",
              "number"
            ],
            "description": "Kts.BankAccounts.ViewBalance yetkisini gerektirir.",
            "format": "double"
          },
          "direction": {
            "enum": [
              "MoneyIn",
              "MoneyOut"
            ],
            "type": "string"
          },
          "otherBankAccountBank": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı tarafın bankasının bankadan geldiği haliyle adı."
          },
          "otherBank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "otherBankAccountIban": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı tarafın IBAN numarası."
          },
          "otherBankAccountOwnerName": {
            "type": "string",
            "description": "Karşı taraf hesap sahibinin adı."
          },
          "transactionType": {
            "enum": [
              "None",
              "Other",
              "Havale",
              "EFT",
              "FAST",
              "PosPayment",
              "Bsmv",
              "Komisyon",
              "Masraf",
              "PosKesinti"
            ],
            "type": "string"
          },
          "ownBankAccount": {
            "description": "Hesap hareketinin gerçekleştiği kendi banka hesabı.",
            "$ref": "#/components/schemas/BasicBankAccountDto"
          },
          "ownBankAccountBank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          },
          "referenceNo": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bankanın hesap hareketi için verdiği referans numarası."
          },
          "transactionId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bankadaki işlem kimliği."
          }
        }
      },
      "BasicCrmStatusDto": {
        "required": [
          "id",
          "name",
          "color"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Müşteri durumu kimliği."
          },
          "name": {
            "type": "string",
            "description": "Müşteri durumu adı."
          },
          "color": {
            "type": "string",
            "description": "Müşteri durumuna ait renk kodu."
          }
        }
      },
      "BasicCustomerTransactionDto": {
        "required": [
          "id",
          "creationTime",
          "customerFirstName",
          "customerLastName",
          "description",
          "transactionType",
          "currency",
          "totalAmount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Müşteri işlemi kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "İşlemin oluşturulma zamanı.",
            "format": "date-time"
          },
          "customerFirstName": {
            "type": "string",
            "description": "Müşterinin adı."
          },
          "customerLastName": {
            "type": "string",
            "description": "Müşterinin soyadı."
          },
          "description": {
            "type": "string",
            "description": "İşlem açıklaması."
          },
          "invoiceNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlemle ilişkili fatura numarası."
          },
          "transactionType": {
            "enum": [
              "GoodsSold",
              "GoodsPurchased"
            ],
            "type": "string"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "totalAmount": {
            "type": "number",
            "description": "İşlemin toplam tutarı.",
            "format": "double"
          }
        }
      },
      "BasicExpenseBillDto": {
        "required": [
          "id",
          "creationTime",
          "supplierName",
          "index",
          "description",
          "gross"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gider pusulası kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "supplierName": {
            "type": "string",
            "description": "Tedarikçi adı."
          },
          "index": {
            "type": "integer",
            "description": "Gider pusulası sıra numarası.",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "description": "Gider pusulası açıklaması."
          },
          "gross": {
            "type": "number",
            "description": "Gider pusulası toplam tutarı (KDV dahil).",
            "format": "double"
          }
        }
      },
      "BasicExpenseBillTemplateDto": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gider pusulası şablonu kimliği."
          },
          "name": {
            "type": "string",
            "description": "Gider pusulası şablonu adı."
          }
        }
      },
      "BasicExternalAccountDto": {
        "required": [
          "id",
          "name",
          "accountType",
          "remainingCredits"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Harici hesabın ID'si."
          },
          "name": {
            "type": "string",
            "description": "Hesap adı."
          },
          "accountType": {
            "enum": [
              "Izibiz",
              "Netgsm",
              "TurkcellESirket",
              "Uyumsoft"
            ],
            "type": "string"
          },
          "remainingCredits": {
            "type": "integer",
            "description": "Kalan kontör sayısı.",
            "format": "int32"
          }
        }
      },
      "BasicFederationDto": {
        "required": [
          "id",
          "type",
          "name",
          "companyName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Bayi kimliği."
          },
          "type": {
            "enum": [
              "Reseller",
              "Accountant"
            ],
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Bayi adı."
          },
          "companyName": {
            "type": "string",
            "description": "Bayi şirket unvanı."
          }
        }
      },
      "BasicIdentityVerificationDto": {
        "required": [
          "id",
          "firstName",
          "lastName",
          "nationality"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Kimlik doğrulama kaydının benzersiz kimliği."
          },
          "firstName": {
            "type": "string",
            "description": "Kişinin adı."
          },
          "lastName": {
            "type": "string",
            "description": "Kişinin soyadı."
          },
          "nationality": {
            "type": "string",
            "description": "Kişinin uyruğu."
          },
          "nationalIdentityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kişinin T.C. kimlik numarası."
          }
        }
      },
      "BasicInventoryDto": {
        "required": [
          "id",
          "name",
          "isDefault"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Envanter listesi kimliği."
          },
          "name": {
            "type": "string",
            "description": "Envanter listesi adı."
          },
          "isDefault": {
            "type": "boolean",
            "description": "Varsayılan envater listesi olma durumu."
          }
        }
      },
      "BasicInventoryProductDto": {
        "required": [
          "id",
          "name",
          "unit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Envanter ürünü kimliği."
          },
          "name": {
            "type": "string",
            "description": "Envanter ürünü adı."
          },
          "unit": {
            "enum": [
              "Gr",
              "Item",
              "NIU",
              "KGM",
              "R9",
              "LTR",
              "MTR",
              "SET"
            ],
            "type": "string"
          },
          "sku": {
            "type": [
              "null",
              "string"
            ],
            "description": "Envanter ürünü stok kodu."
          },
          "accountingCode": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "BasicInvoiceDto": {
        "required": [
          "id",
          "invoiceScenario",
          "invoiceType",
          "creationTime",
          "gross",
          "currency",
          "taxCurrency"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fatura kimliği."
          },
          "invoiceNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura numarası."
          },
          "eDocumentType": {
            "enum": [
              "EInvoice",
              "EArchiveInvoice"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceScenario": {
            "enum": [
              "TemelFatura",
              "TicariFatura"
            ],
            "type": "string"
          },
          "invoiceType": {
            "enum": [
              "Satis",
              "Istisna",
              "OzelMatrah",
              "Iade"
            ],
            "type": "string"
          },
          "creationTime": {
            "type": "string",
            "description": "Faturanın oluşturulma zamanı.",
            "format": "date-time"
          },
          "gross": {
            "type": "number",
            "description": "Fatura toplam tutarı (KDV dahil).",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "taxCurrency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "issueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturanın düzenlenme zamanı.",
            "format": "date-time"
          },
          "invoiceNumberAssignmentTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura numarasının atandığı zaman.",
            "format": "date-time"
          }
        }
      },
      "BasicInvoiceTemplateDto": {
        "required": [
          "id",
          "name",
          "invoiceScenario",
          "invoiceType",
          "currency",
          "tenant",
          "appModule"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fatura şablonu kimliği."
          },
          "name": {
            "type": "string",
            "description": "Fatura şablonu adı."
          },
          "invoiceScenario": {
            "enum": [
              "TemelFatura",
              "TicariFatura"
            ],
            "type": "string"
          },
          "invoiceType": {
            "enum": [
              "Satis",
              "Istisna",
              "OzelMatrah",
              "Iade"
            ],
            "type": "string"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "tenant": {
            "description": "Şablonun ait olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "appModule": {
            "enum": [
              "GoldDealing",
              "StandardInvoicing"
            ],
            "type": "string"
          }
        }
      },
      "BasicLegalEntityDto": {
        "required": [
          "id",
          "entityNumber",
          "isHidden",
          "coreBusiness"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Cari kaydının kimliği."
          },
          "entityNumber": {
            "description": "Cari kaydının T.C. kimlik veya vergi numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "fullName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının adı soyadı veya unvanı."
          },
          "taxOffice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının bağlı olduğu vergi dairesi."
          },
          "province": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının bağlı olduğu il."
          },
          "district": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının bağlı olduğu ilçe."
          },
          "address": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının adres bilgisi."
          },
          "emailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının e-posta adresi."
          },
          "note": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydına ait not."
          },
          "isHidden": {
            "type": "boolean",
            "description": "Cari kaydının gizlenip gizlenmediği."
          },
          "coreBusiness": {
            "type": "array",
            "items": {
              "enum": [
                "GoldDealing",
                "Staff"
              ],
              "type": "string"
            },
            "description": "Cari kaydının faaliyet alanları."
          }
        }
      },
      "BasicPosAccountDto": {
        "required": [
          "id",
          "merchantNumber",
          "bank",
          "currency"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "POS hesabının ID'si."
          },
          "merchantNumber": {
            "type": "string",
            "description": "Banka tarafından atanan üye işyeri numarası."
          },
          "merchantName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Üye işyeri adı."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          }
        }
      },
      "BasicPosSaleDto": {
        "required": [
          "id",
          "creationTime",
          "recipientName",
          "totalPrice",
          "currency",
          "saleTime"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "POS satışı kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "recipientName": {
            "type": "string",
            "description": "Alıcının adı soyadı."
          },
          "totalPrice": {
            "type": "number",
            "description": "Satışın toplam tutarı.",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "saleTime": {
            "type": "string",
            "description": "Satışın gerçekleştiği zaman.",
            "format": "date-time"
          }
        }
      },
      "BasicRoleDto": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Rolün kimliği."
          },
          "name": {
            "type": "string",
            "description": "Rolün adı."
          }
        }
      },
      "BasicSubscriptionProductDto": {
        "required": [
          "id",
          "name",
          "category"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Abonelik ürünü kimliği."
          },
          "name": {
            "type": "string",
            "description": "Abonelik ürünü adı."
          },
          "category": {
            "enum": [
              "Software",
              "Service",
              "Addon",
              "Support"
            ],
            "type": "string"
          }
        }
      },
      "BasicTenantBranchDto": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Şube kimliği."
          },
          "name": {
            "type": "string",
            "description": "Şube adı."
          }
        }
      },
      "BasicTenantDto": {
        "required": [
          "id",
          "name",
          "isActive",
          "types"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Tenant kimliği."
          },
          "name": {
            "type": "string",
            "description": "Tenant adı."
          },
          "isActive": {
            "type": "boolean",
            "description": "Tenantın aktif olma durumu."
          },
          "types": {
            "type": "array",
            "items": {
              "enum": [
                "GoldDealer",
                "GoldWholesaler"
              ],
              "type": "string"
            },
            "description": "Tenant tipleri."
          }
        }
      },
      "BasicUserDto": {
        "required": [
          "id",
          "fullName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Kullanıcı kimliği."
          },
          "emailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının e-posta adresi."
          },
          "phoneNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının telefon numarası."
          },
          "fullName": {
            "type": "string",
            "description": "Kullanıcının tam adı."
          },
          "lastActivityTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının son aktif olduğu zaman.",
            "format": "date-time"
          }
        }
      },
      "BasicXsltTemplateDto": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "XSLT şablonunun kimliği."
          },
          "name": {
            "type": "string",
            "description": "Şablon adı."
          }
        }
      },
      "BatchAssignInvoiceNumbersInput": {
        "required": [
          "eInvoiceStartNumber",
          "eArchiveStartNumber"
        ],
        "type": "object",
        "properties": {
          "eInvoiceStartNumber": {
            "maxLength": 16,
            "minLength": 16,
            "type": "string",
            "description": "e-Fatura için başlangıç fatura numarası."
          },
          "eArchiveStartNumber": {
            "maxLength": 16,
            "minLength": 16,
            "type": "string",
            "description": "e-Arşiv fatura için başlangıç fatura numarası."
          }
        }
      },
      "BatchAssignInvoiceNumbersResultDto": {
        "required": [
          "eInvoiceAssignedCount",
          "eArchiveAssignedCount",
          "assignedInvoices"
        ],
        "type": "object",
        "properties": {
          "eInvoiceAssignedCount": {
            "type": "integer",
            "description": "Atanan e-Fatura numarası sayısı.",
            "format": "int32"
          },
          "eArchiveAssignedCount": {
            "type": "integer",
            "description": "Atanan e-Arşiv fatura numarası sayısı.",
            "format": "int32"
          },
          "assignedInvoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssignedInvoiceNumberDto"
            },
            "description": "Numara ataması yapılan faturaların listesi."
          }
        }
      },
      "BatchCreateExpenseBillInput": {
        "required": [
          "expenseBills"
        ],
        "type": "object",
        "properties": {
          "expenseBills": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateExpenseBillInput"
            },
            "description": "Şablondan oluşturulacak gider pusulası listesi."
          }
        }
      },
      "BatchDeclarationPdfInput": {
        "required": [
          "identityVerificationIds"
        ],
        "type": "object",
        "properties": {
          "identityVerificationIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Beyanname belgeleri birleştirilecek kimlik tespiti ID'leri."
          }
        }
      },
      "BatchExpenseBillPdfInput": {
        "required": [
          "expenseBillIds"
        ],
        "type": "object",
        "properties": {
          "expenseBillIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "PDF belgeleri birleştirilecek gider pusulası ID'leri."
          }
        }
      },
      "BatchInvoicePdfInput": {
        "required": [
          "invoiceIds"
        ],
        "type": "object",
        "properties": {
          "invoiceIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "PDF belgeleri birleştirilecek fatura ID'leri."
          }
        }
      },
      "BatchInvoiceUblInput": {
        "required": [
          "invoiceIds"
        ],
        "type": "object",
        "properties": {
          "invoiceIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "UBL belgeleri indirilecek fatura ID'leri."
          }
        }
      },
      "BlobFileDto": {
        "required": [
          "id",
          "fileName",
          "fileSize",
          "contentType",
          "creationTime",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Dosyanın kimliği (ETTN)."
          },
          "fileName": {
            "type": "string",
            "description": "Dosyanın adı."
          },
          "fileSize": {
            "type": "integer",
            "description": "Dosyanın boyutu (byte).",
            "format": "int64"
          },
          "contentType": {
            "type": "string",
            "description": "Dosyanın içerik türü (MIME type)."
          },
          "creationTime": {
            "type": "string",
            "description": "Dosyanın oluşturulma zamanı.",
            "format": "date-time"
          },
          "url": {
            "type": "string",
            "description": "Dosyaya erişim adresi."
          },
          "sha256": {
            "type": [
              "null",
              "string"
            ],
            "description": "Dosya içeriğinin onaltılık (hex) SHA-256 özeti. Eski dosyalarda ve yüklemesi sürenlerde boştur."
          }
        }
      },
      "BlobFileUploadDto": {
        "required": [
          "uploadedBytes",
          "isCompleted",
          "id",
          "fileName",
          "fileSize",
          "contentType",
          "creationTime",
          "url"
        ],
        "type": "object",
        "properties": {
          "uploadedBytes": {
            "type": "integer",
            "description": "Sunucuya ulaşmış bayt sayısı. Parçalı yükleme bu konumdan devam eder.",
            "format": "int64"
          },
          "isCompleted": {
            "type": "boolean",
            "description": "Dosyanın tüm içeriği yüklendiyse true."
          },
          "id": {
            "type": "string",
            "description": "Dosyanın kimliği (ETTN)."
          },
          "fileName": {
            "type": "string",
            "description": "Dosyanın adı."
          },
          "fileSize": {
            "type": "integer",
            "description": "Dosyanın boyutu (byte).",
            "format": "int64"
          },
          "contentType": {
            "type": "string",
            "description": "Dosyanın içerik türü (MIME type)."
          },
          "creationTime": {
            "type": "string",
            "description": "Dosyanın oluşturulma zamanı.",
            "format": "date-time"
          },
          "url": {
            "type": "string",
            "description": "Dosyaya erişim adresi."
          },
          "sha256": {
            "type": [
              "null",
              "string"
            ],
            "description": "Dosya içeriğinin onaltılık (hex) SHA-256 özeti. Eski dosyalarda ve yüklemesi sürenlerde boştur."
          }
        }
      },
      "BlueCardDetailedDto": {
        "required": [
          "nationalIdentityNumber",
          "documentNumber",
          "expiryDate"
        ],
        "type": "object",
        "properties": {
          "nationalIdentityNumber": {
            "type": "string",
            "description": "Kişinin mavi kart kimlik numarası."
          },
          "documentNumber": {
            "type": "string",
            "description": "Mavi kart seri numarası."
          },
          "expiryDate": {
            "type": "string",
            "description": "Mavi kartın son geçerlilik tarihi.",
            "format": "date"
          },
          "motherName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kişinin anne adı."
          },
          "fatherName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kişinin baba adı."
          }
        }
      },
      "BlueCardDto": {
        "required": [
          "nationalIdentityNumber",
          "documentNumber"
        ],
        "type": "object",
        "properties": {
          "nationalIdentityNumber": {
            "type": "string",
            "description": "Kişinin mavi kart kimlik numarası."
          },
          "documentNumber": {
            "type": "string",
            "description": "Mavi kart seri numarası."
          }
        }
      },
      "CashboxRecordSourceType": {
        "enum": [
          "Invoice",
          "ExpenseBill",
          "BankAccountTransaction",
          "BillingRecord",
          "PosSale",
          "Custody"
        ]
      },
      "ChangePasswordDto": {
        "required": [
          "currentPassword",
          "newPassword"
        ],
        "type": "object",
        "properties": {
          "currentPassword": {
            "type": "string",
            "description": "Kullanıcının mevcut şifresi."
          },
          "newPassword": {
            "type": "string",
            "description": "Kullanıcının yeni şifresi."
          }
        }
      },
      "ChangeTenantMembershipRoleInput": {
        "required": [
          "roleId"
        ],
        "type": "object",
        "properties": {
          "roleId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcının bu tenanttaki yeni rolü.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ClassificationMatchDto": {
        "required": [
          "$type"
        ],
        "type": "object",
        "anyOf": [
          {
            "$ref": "#/components/schemas/ClassificationMatchDtoEntityNumberClassificationMatchDto"
          },
          {
            "$ref": "#/components/schemas/ClassificationMatchDtoOwnerNameClassificationMatchDto"
          },
          {
            "$ref": "#/components/schemas/ClassificationMatchDtoIbanClassificationMatchDto"
          },
          {
            "$ref": "#/components/schemas/ClassificationMatchDtoDescriptionRegexClassificationMatchDto"
          },
          {
            "$ref": "#/components/schemas/ClassificationMatchDtoDescriptionContainsClassificationMatchDto"
          },
          {
            "$ref": "#/components/schemas/ClassificationMatchDtoPaymentRefundsClassificationMatchDto"
          },
          {
            "$ref": "#/components/schemas/ClassificationMatchDtoInternalTransferClassificationMatchDto"
          }
        ],
        "discriminator": {
          "propertyName": "$type",
          "mapping": {
            "EntityNumber": "#/components/schemas/ClassificationMatchDtoEntityNumberClassificationMatchDto",
            "OwnerName": "#/components/schemas/ClassificationMatchDtoOwnerNameClassificationMatchDto",
            "Iban": "#/components/schemas/ClassificationMatchDtoIbanClassificationMatchDto",
            "DescriptionRegex": "#/components/schemas/ClassificationMatchDtoDescriptionRegexClassificationMatchDto",
            "DescriptionContains": "#/components/schemas/ClassificationMatchDtoDescriptionContainsClassificationMatchDto",
            "PaymentRefunds": "#/components/schemas/ClassificationMatchDtoPaymentRefundsClassificationMatchDto",
            "InternalTransfer": "#/components/schemas/ClassificationMatchDtoInternalTransferClassificationMatchDto"
          }
        }
      },
      "ClassificationMatchDtoDescriptionContainsClassificationMatchDto": {
        "required": [
          "value"
        ],
        "properties": {
          "$type": {
            "enum": [
              "DescriptionContains"
            ],
            "type": "string"
          },
          "value": {
            "type": "string",
            "description": "Açıklama alanında aranacak metin."
          }
        }
      },
      "ClassificationMatchDtoDescriptionRegexClassificationMatchDto": {
        "required": [
          "pattern"
        ],
        "properties": {
          "$type": {
            "enum": [
              "DescriptionRegex"
            ],
            "type": "string"
          },
          "pattern": {
            "type": "string",
            "description": "Açıklama alanına uygulanacak regex deseni."
          }
        }
      },
      "ClassificationMatchDtoEntityNumberClassificationMatchDto": {
        "required": [
          "value"
        ],
        "properties": {
          "$type": {
            "enum": [
              "EntityNumber"
            ],
            "type": "string"
          },
          "value": {
            "type": "string",
            "description": "Eşleştirilecek TCKN/VKN değeri."
          }
        }
      },
      "ClassificationMatchDtoIbanClassificationMatchDto": {
        "required": [
          "value"
        ],
        "properties": {
          "$type": {
            "enum": [
              "Iban"
            ],
            "type": "string"
          },
          "value": {
            "type": "string",
            "description": "Eşleştirilecek IBAN değeri."
          }
        }
      },
      "ClassificationMatchDtoInternalTransferClassificationMatchDto": {
        "properties": {
          "$type": {
            "enum": [
              "InternalTransfer"
            ],
            "type": "string"
          }
        }
      },
      "ClassificationMatchDtoOwnerNameClassificationMatchDto": {
        "required": [
          "isContains",
          "value"
        ],
        "properties": {
          "$type": {
            "enum": [
              "OwnerName"
            ],
            "type": "string"
          },
          "isContains": {
            "type": "boolean",
            "description": "Ünvan değerinin tam eşleşme yerine içerip içermeyeceği."
          },
          "value": {
            "type": "string",
            "description": "Eşleştirilecek ünvan değeri."
          }
        }
      },
      "ClassificationMatchDtoPaymentRefundsClassificationMatchDto": {
        "properties": {
          "$type": {
            "enum": [
              "PaymentRefunds"
            ],
            "type": "string"
          }
        }
      },
      "ConnectIzibizInput": {
        "required": [
          "name",
          "userName",
          "password"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Hesap adı."
          },
          "userName": {
            "type": "string",
            "description": "İzibiz kullanıcı adı."
          },
          "password": {
            "type": "string",
            "description": "İzibiz şifresi."
          },
          "isSynchronizationEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Hesap oluşturulduğunda senkronizasyonun etkin olup olmayacağını belirler."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Hesabın bağlanacağı tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ConnectNetgsmInput": {
        "required": [
          "name",
          "userName",
          "password",
          "originator"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Hesap adı."
          },
          "userName": {
            "type": "string",
            "description": "Netgsm kullanıcı adı."
          },
          "password": {
            "type": "string",
            "description": "Netgsm şifresi."
          },
          "originator": {
            "type": "string",
            "description": "Netgsm originator bilgisi."
          },
          "isSynchronizationEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Hesap oluşturulduğunda senkronizasyonun etkin olup olmayacağını belirler."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Hesabın bağlanacağı tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ConnectTurkcellESirketInput": {
        "required": [
          "name",
          "apiKey"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Hesap adı."
          },
          "apiKey": {
            "type": "string",
            "description": "Turkcell e-Şirket API anahtarı."
          },
          "isSynchronizationEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Hesap oluşturulduğunda senkronizasyonun etkin olup olmayacağı belirler."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Hesabın bağlanacağı tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ConnectUyumsoftInput": {
        "required": [
          "name",
          "userName",
          "password"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Hesap adı."
          },
          "userName": {
            "type": "string",
            "description": "Uyumsoft kullanıcı adı."
          },
          "password": {
            "type": "string",
            "description": "Uyumsoft şifresi."
          },
          "isSynchronizationEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Hesap oluşturulduğunda senkronizasyonun etkin olup olmayacağını belirler."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Hesabın bağlanacağı tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateBankAccountInfoInput": {
        "required": [
          "iban",
          "ownerName"
        ],
        "type": "object",
        "properties": {
          "iban": {
            "maxLength": 34,
            "minLength": 0,
            "type": "string",
            "description": "IBAN numarası."
          },
          "ownerName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Hesap sahibi adı."
          },
          "entityNumber": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap sahibinin T.C. / vergi kimlik numarası.",
                "$ref": "#/components/schemas/TurkishEntityNumber"
              }
            ]
          },
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap için kısa ad / rumuz."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateBankAccountInput": {
        "required": [
          "iban",
          "accountName",
          "currency",
          "bank"
        ],
        "type": "object",
        "properties": {
          "iban": {
            "maxLength": 34,
            "minLength": 0,
            "type": "string",
            "description": "IBAN numarası."
          },
          "accountName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Hesap adı (rumuz)."
          },
          "accountingCode": {
            "maxLength": 20,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Muhasebe hesap kodu."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          },
          "credentials": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Banka hesabı için kullanılacak erişim bilgileri modu. Belirtilmezse, geriye dönük uyumluluk için BankAccountCredentialsId alanı dikkate alınır; o da boşsa erişim bilgisi atanmaz.",
                "$ref": "#/components/schemas/BankAccountCredentialsBody"
              }
            ]
          },
          "bankAccountCredentialsId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "[Geriye dönük uyumluluk] Mevcut banka hesap erişim bilgileri ID'si. Yeni entegrasyonlar için Credentials alanını kullanın.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "displayOrder": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Banka hesabının listede görüneceği sıra. Küçük değerler önce gelir.",
            "format": "int32"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Banka hesabın ait olacağı tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateCustomerTransactionForIdentityVerificationInput": {
        "required": [
          "transactionType",
          "currency",
          "totalAmount"
        ],
        "type": "object",
        "properties": {
          "transactionType": {
            "enum": [
              "GoodsSold",
              "GoodsPurchased"
            ],
            "type": "string"
          },
          "description": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Açıklama."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "totalAmount": {
            "type": "number",
            "description": "Toplam tutar.",
            "format": "double"
          },
          "invoiceNumber": {
            "maxLength": 16,
            "minLength": 16,
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura numarası."
          },
          "bankAccountTransactions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/CreateRelatedBankAccountTransactionInput"
            },
            "description": "Banka hesap hareketleri."
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateCustomerTransactionInput": {
        "required": [
          "customerFirstName",
          "customerLastName",
          "transactionType",
          "currency",
          "totalAmount"
        ],
        "type": "object",
        "properties": {
          "customerFirstName": {
            "maxLength": 24,
            "minLength": 2,
            "type": "string",
            "description": "Müşteri adı."
          },
          "customerLastName": {
            "maxLength": 24,
            "minLength": 2,
            "type": "string",
            "description": "Müşteri soyadı."
          },
          "customerNationality": {
            "maxLength": 3,
            "minLength": 3,
            "type": [
              "null",
              "string"
            ],
            "description": "Müşteri vatandaşlığı (üç harfli ülke kodu, örn: TUR). Boş bırakılırsa TUR varsayılır."
          },
          "customerNationalIdentityNumber": {
            "maxLength": 11,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Müşteri kimlik numarası."
          },
          "transactionType": {
            "enum": [
              "GoodsSold",
              "GoodsPurchased"
            ],
            "type": "string"
          },
          "description": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Açıklama."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "totalAmount": {
            "type": "number",
            "description": "Toplam tutar.",
            "format": "double"
          },
          "invoiceNumber": {
            "maxLength": 16,
            "minLength": 16,
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura numarası."
          },
          "bankAccountTransactionIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "İlişkilendirilecek mevcut banka hesap hareketi ID'leri."
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateDespatchAdviceInput": {
        "required": [
          "deliveryName",
          "deliveryTaxNumber",
          "deliveryAddress",
          "deliveryPostalCode",
          "deliveryProvinceId",
          "deliveryDistrictId",
          "deliveryTaxOffice",
          "items"
        ],
        "type": "object",
        "properties": {
          "deliveryName": {
            "type": "string",
            "description": "Malları teslim alan tarafın ünvanı."
          },
          "deliveryTaxNumber": {
            "description": "Teslim alan tarafın VKN/TCKN değeri.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "deliveryAddress": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string",
            "description": "Teslim adresi."
          },
          "deliveryPostalCode": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Teslim adresi posta kodu."
          },
          "deliveryProvinceId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Teslim adresi ili.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "deliveryDistrictId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Teslim adresi ilçesi.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "deliveryTaxOffice": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Teslim alan tarafın vergi dairesi."
          },
          "items": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateDespatchAdviceItemInput"
            },
            "description": "İrsaliye kalemleri."
          },
          "despatchTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fiili sevk zamanı.",
            "format": "date-time"
          },
          "vehicles": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/DespatchVehicleInput"
            },
            "description": "Araç ve dorse bilgileri."
          },
          "drivers": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/DespatchDriverInput"
            },
            "description": "Şoför bilgileri."
          },
          "carrierName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Taşıyıcı firma ünvanı."
          },
          "carrierTaxNumber": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Taşıyıcı firma VKN değeri.",
                "$ref": "#/components/schemas/TurkishEntityNumber"
              }
            ]
          },
          "note": {
            "maxLength": 1000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye notu."
          },
          "orderReferenceId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sipariş numarası."
          },
          "orderReferenceDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sipariş tarihi.",
            "format": "date-time"
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateDespatchAdviceItemInput": {
        "required": [
          "name",
          "unit",
          "deliveredQuantity"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string",
            "description": "İrsaliye kalemi adı."
          },
          "unit": {
            "enum": [
              "Gr",
              "Item",
              "NIU",
              "KGM",
              "R9",
              "LTR",
              "MTR",
              "SET"
            ],
            "type": "string"
          },
          "deliveredQuantity": {
            "maximum": 79228162514264337593543950335,
            "minimum": 0,
            "type": "number",
            "description": "Gönderilen miktar.",
            "format": "double"
          },
          "outstandingQuantity": {
            "type": [
              "null",
              "number"
            ],
            "description": "Bekleyen (kısmi gönderim) miktarı.",
            "format": "double"
          },
          "sellerItemId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Satıcı stok kodu."
          }
        }
      },
      "CreatedGoldDealingWholesalerTenantLinkRequestsDto": {
        "required": [
          "items",
          "skippedTaxNumbers"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GoldDealingWholesalerTenantLinkRequestDto"
            },
            "description": "Oluşturulan bağlantı talepleri."
          },
          "skippedTaxNumbers": {
            "type": "array",
            "description": "Zaten bağlı olduğu ya da sonuçlanmamış bir talebi bulunduğu için atlanan vergi numaraları."
          }
        }
      },
      "CreatedGoldDealingWholesalerTenantsDto": {
        "required": [
          "items",
          "skippedTenantIds"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GoldDealingWholesalerTenantDto"
            },
            "description": "Yeni kurulan bağlantılar."
          },
          "skippedTenantIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Zaten bağlı olduğu için atlanan tenant kimlikleri."
          }
        }
      },
      "CreatedUserDto": {
        "required": [
          "id",
          "fullName",
          "creationTime",
          "isActive",
          "isRootUser"
        ],
        "type": "object",
        "properties": {
          "password": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının oluşturulan şifresi. Var olan bir hesap bağlandığında boştur."
          },
          "isLinkedExistingUser": {
            "type": "boolean",
            "description": "Var olan bir hesabın bu tenanta bağlanıp bağlanmadığı."
          },
          "id": {
            "type": "string",
            "description": "Kullanıcı kimliği."
          },
          "emailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının e-posta adresi."
          },
          "phoneNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının telefon numarası."
          },
          "fullName": {
            "type": "string",
            "description": "Kullanıcının tam adı."
          },
          "creationTime": {
            "type": "string",
            "description": "Kullanıcının oluşturulma zamanı.",
            "format": "date-time"
          },
          "lastActivityTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının son aktif olduğu zaman.",
            "format": "date-time"
          },
          "isActive": {
            "type": "boolean",
            "description": "Kullanıcının aktif olup olmadığı."
          },
          "isRootUser": {
            "type": "boolean",
            "description": "Kullanıcının kök (root) kullanıcı olup olmadığı."
          },
          "role": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kullanıcının kapsamdaki tenanttaki rolü.",
                "$ref": "#/components/schemas/BasicRoleDto"
              }
            ]
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kullanıcının kapsamdaki tenantı.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kullanıcının kapsamdaki tenant üyeliğinin şubesi.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          },
          "tenants": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/UserTenantMembershipDto"
            },
            "description": "Kullanıcının tüm işletme üyelikleri. Yalnızca host ve bayi çağıranlara doldurulur."
          },
          "federation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kullanıcının bağlı olduğu bayi.",
                "$ref": "#/components/schemas/BasicFederationDto"
              }
            ]
          }
        }
      },
      "CreateEVoucherInput": {
        "required": [
          "type",
          "issueTime",
          "customer",
          "lines"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "Satis",
              "Iade"
            ],
            "type": "string"
          },
          "issueTime": {
            "type": "string",
            "description": "Belge tarihi (UTC).",
            "format": "date-time"
          },
          "customer": {
            "description": "Alıcı (satıcı veya iadede orijinal alıcı).",
            "$ref": "#/components/schemas/EVoucherPartyInput"
          },
          "customerLegalEntityId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Alıcının cari kaydı.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "returner": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Alıcıdan farklı iade eden kişi.",
                "$ref": "#/components/schemas/EVoucherPartyInput"
              }
            ]
          },
          "returnerLegalEntityId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "İade edenin cari kaydı.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "verification": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Doğrulama. SMS ile: { method: SmsCode, phone, verificationToken } (belirteç /verification-codes/verify yanıtından). İade kodu ile: { method: ReturnCode, returnCode }.",
                "$ref": "#/components/schemas/EVoucherVerificationInput"
              }
            ]
          },
          "returnReference": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İade belge bilgisi (yalnız İADE).",
                "$ref": "#/components/schemas/EVoucherReturnReferenceInput"
              }
            ]
          },
          "cargo": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kargo bilgisi (yalnız kargo ile İADE).",
                "$ref": "#/components/schemas/EVoucherCargoInput"
              }
            ]
          },
          "lines": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EVoucherLineInput"
            },
            "description": "Kalemler."
          },
          "note": {
            "maxLength": 1000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Not."
          },
          "contentTemplateId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanılan içerik şablonu ID.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "bankTransactionId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "e-Gider Pusulasının düzenlendiği banka hareketi ID. Birden fazla hareket için BankTransactionIds kullanın.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "bankTransactionIds": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "items": {
              "type": "string"
            },
            "description": "e-Gider Pusulasının düzenlendiği banka hareketleri. Bir hareket en fazla bir (iptal edilmemiş) e-Gider Pusulasına bağlanabilir.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "updateLegalEntityFromDocument": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Cari kaydı verilmemiş alıcı (ve iade eden) için T.C. kimlik / vergi numarasıyla bulunan ya da oluşturulan carinin adresi bu belgeden güncellensin mi? Belirtilmezse true kabul edilir."
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateExpenseBillInput": {
        "required": [
          "templateId",
          "supplierName",
          "supplierTaxNumber",
          "items",
          "index"
        ],
        "type": "object",
        "properties": {
          "templateId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanılacak şablonun ID değeri.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "supplierName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Tedarikçi adı."
          },
          "supplierAddressLine": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Tedarikçi adresi. Girilmezse kimlik doğrulama veya tenant il bilgisinden alınır."
          },
          "supplierTaxNumber": {
            "description": "Tedarikçi vergi numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "description": {
            "maxLength": 2000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Açıklama."
          },
          "items": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateExpenseBillItemInput"
            },
            "description": "Gider pusulası kalemleri."
          },
          "index": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Gider pusulası sıra numarası.",
            "format": "int32"
          },
          "updateLegalEntityFromDocument": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Tedarikçinin cari kaydındaki adres bilgisi bu gider pusulasından güncellensin mi? Belirtilmezse true kabul edilir."
          },
          "issueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gider pusulası tarihi. Boş bırakılabilir; banka hesap hareketi ilişkilendirilmişse hareketin işlem zamanı, ilişkilendirilmemişse bugünün tarihi kullanılır.",
            "format": "date-time"
          },
          "bankAccountTransactionIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Gider pusulası ile ilişkili banka hesap hareketleri."
          },
          "bankAccountTransactionId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Gider pusulası ile ilişkili banka hesap hareketi.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateExpenseBillItemInput": {
        "required": [
          "name",
          "unit",
          "unitPrice",
          "quantity",
          "vatRate"
        ],
        "type": "object",
        "properties": {
          "expenseBillContentTemplateItemId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kalemin türetildiği içerik şablonu kalemi kimliği.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Kalem adı."
          },
          "unit": {
            "enum": [
              "Gr",
              "Item"
            ],
            "type": "string"
          },
          "unitPrice": {
            "minimum": 0.01,
            "type": "number",
            "description": "Birim fiyat.",
            "format": "double"
          },
          "quantity": {
            "minimum": 0.001,
            "type": "number",
            "description": "Miktar.",
            "format": "double"
          },
          "vatRate": {
            "maximum": 100,
            "minimum": 0,
            "type": "number",
            "description": "KDV oranı.",
            "format": "double"
          },
          "inventoryProductId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Bağlı envanter ürünü kimliği.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateGoldDealingWholesalerTenantLinkRequestsInput": {
        "required": [
          "entries"
        ],
        "type": "object",
        "properties": {
          "entries": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GoldDealingWholesalerTenantLinkRequestEntryInput"
            },
            "description": "Bağlantı kurulmak istenen firmalar."
          }
        }
      },
      "CreateGoldDealingWholesalerTenantsInput": {
        "required": [
          "wholesalerTenantId",
          "tenantIds"
        ],
        "type": "object",
        "properties": {
          "wholesalerTenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Bağlantının kurulacağı toptancı tenant. Kuyumcu toptancısı tipinde olmalıdır.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "tenantIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Toptancıya bağlanacak tenant kimlikleri. Zaten bağlı olan tenant'lar yok sayılır."
          }
        }
      },
      "CreateInventoryItemMovementFromInvoiceEntry": {
        "required": [
          "invoiceId",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "Hareketin bağlanacağı fatura. Hareketin yönü (gelen fatura → giriş, giden fatura → çıkış) faturanın yönünden türetilir. Aynı fatura için aynı envanter listesinde yalnızca bir hareket oluşturulabilir.",
            "format": "uuid"
          },
          "inventoryItemId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Hareketin uygulanacağı envanter kalemi. Ürün ve envanter listesi bu kalemden çözümlenir. Verildiğinde inventoryProductId ve inventoryId verilemez; verilmediğinde inventoryProductId zorunludur.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "inventoryProductId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Hareketin uygulanacağı envanter ürünü. inventoryItemId verilmediğinde zorunludur. Ürünün envanter listesinde kalemi yoksa otomatik oluşturulur.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "inventoryId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hareketin uygulanacağı envanter listesi. Yalnızca inventoryProductId ile birlikte verilebilir; verilmezse tenant'ın varsayılan envanter listesi kullanılır. \"default\" değeri varsayılan envanter listesini temsil eder."
          },
          "quantity": {
            "minimum": 0.0001,
            "type": "number",
            "description": "Hareket miktarı. Envanter ürününün birimi cinsindendir, faturanın birimi cinsinden değildir.",
            "format": "double"
          },
          "comment": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Açıklama."
          }
        }
      },
      "CreateInventoryItemMovementInput": {
        "required": [
          "productId",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "productId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Hareketin uygulanacağı ürün.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "fromInventoryId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Çıkış envanteri. \"default\" değeri tenant'ın varsayılan envanterini temsil eder."
          },
          "toInventoryId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Giriş envanteri. \"default\" değeri tenant'ın varsayılan envanterini temsil eder."
          },
          "quantity": {
            "minimum": 0.0001,
            "type": "number",
            "description": "Hareket miktarı.",
            "format": "double"
          },
          "comment": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Açıklama."
          },
          "movementTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hareketin fiilen gerçekleştiği zaman. Geçmişe dönük kayıt için kullanılır; verilmezse boş bırakılır ve yalnız oluşturulma zamanı tutulur.",
            "format": "date-time"
          }
        }
      },
      "CreateInventoryItemMovementsFromInvoicesInput": {
        "required": [
          "movements"
        ],
        "type": "object",
        "properties": {
          "movements": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateInventoryItemMovementFromInvoiceEntry"
            },
            "description": "Faturalardan oluşturulacak envanter hareketleri."
          }
        }
      },
      "CreateInventoryProductInput": {
        "required": [
          "name",
          "unit"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Ürün adı."
          },
          "sku": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Stok kodu (SKU)."
          },
          "unit": {
            "enum": [
              "Gr",
              "Item",
              "NIU",
              "KGM",
              "R9",
              "LTR",
              "MTR",
              "SET"
            ],
            "type": "string"
          },
          "displayOrder": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "Sıralama indeksi.",
            "format": "int32"
          },
          "lowStockQuantity": {
            "minimum": 0,
            "type": [
              "null",
              "number"
            ],
            "description": "Düşük stok uyarı eşiği.",
            "format": "double"
          },
          "accountingCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Muhasebe kodu."
          }
        }
      },
      "CreateInvoiceCurrencyRateInput": {
        "required": [
          "currency",
          "rate"
        ],
        "type": "object",
        "properties": {
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "PureGoldGr"
            ],
            "type": "string"
          },
          "rate": {
            "minimum": 0.01,
            "type": "number",
            "description": "Kur oranı.",
            "format": "double"
          },
          "rateDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kurun ait olduğu referans günü. Dövizli faturalarda TCMB döviz alış kurunun tarihidir.",
            "format": "date"
          }
        }
      },
      "CreateInvoiceInput": {
        "required": [
          "recipientName",
          "recipientTaxNumber",
          "items",
          "totalPrice"
        ],
        "type": "object",
        "properties": {
          "templateId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanılacak tek şablonun ID değeri. Birden fazla şablon için TemplateIds kullanın.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "templateIds": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "items": {
              "type": "string"
            },
            "description": "Fatura ile ilişkilendirilecek şablonların ID değerleri. Verildiğinde TemplateId yok sayılır.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "invoiceScenario": {
            "enum": [
              "TemelFatura",
              "TicariFatura"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceType": {
            "enum": [
              "Satis",
              "Istisna",
              "OzelMatrah",
              "Iade"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "appModule": {
            "enum": [
              "GoldDealing",
              "StandardInvoicing"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "recipientName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Alıcı adı."
          },
          "recipientAddress": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Alıcı adresi."
          },
          "recipientPhoneNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Alıcı telefon numarası."
          },
          "recipientEmailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Alıcı e-posta adresi."
          },
          "recipientTaxNumber": {
            "description": "Alıcı vergi numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "recipientTaxOffice": {
            "maxLength": 30,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Alıcı vergi dairesi."
          },
          "description": {
            "maxLength": 2000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Açıklama."
          },
          "items": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateInvoiceItemInput"
            },
            "description": "Fatura kalemleri."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "extraData": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "description": "Ekstra veriler."
          },
          "totalPrice": {
            "type": "number",
            "description": "Toplam fiyat.",
            "format": "double"
          },
          "bankAccountTransactionIds": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "items": {
              "type": "string"
            },
            "description": "Fatura ile ilişkili banka hesap hareketleri.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "posTransactionIds": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "items": {
              "type": "string"
            },
            "description": "Fatura ile ilişkili POS işlemleri.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "currencyRates": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/CreateInvoiceCurrencyRateInput"
            },
            "description": "Fatura ile ilişkili döviz kurları."
          },
          "paymentMethod": {
            "enum": [
              "Nakit",
              "Havale",
              "Pos"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "updateLegalEntityFromDocument": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Alıcının cari kaydındaki adres ve e-posta bilgisi bu faturadan güncellensin mi? Belirtilmezse true kabul edilir."
          },
          "issueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura düzenlenme zamanı (UTC).",
            "format": "date-time"
          },
          "refundedInvoiceId": {
            "type": [
              "null",
              "string"
            ],
            "description": "İade faturasında iade edilen orijinal faturanın ID değeri. Fatura tipi İade olduğunda zorunludur.",
            "format": "uuid"
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateInvoiceItemInput": {
        "type": "object",
        "properties": {
          "invoiceTemplateItemId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kalem şablon ID.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Kalem adı."
          },
          "sku": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Stok kodu."
          },
          "unit": {
            "enum": [
              "Gr",
              "Item",
              "NIU",
              "KGM",
              "R9",
              "LTR",
              "MTR",
              "SET"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "unitPrice": {
            "minimum": 0.0001,
            "type": [
              "null",
              "number"
            ],
            "description": "Birim fiyat.",
            "format": "double"
          },
          "quantity": {
            "minimum": 0.0001,
            "type": [
              "null",
              "number"
            ],
            "description": "Miktar.",
            "format": "double"
          },
          "vatRate": {
            "maximum": 100,
            "minimum": 0,
            "type": [
              "null",
              "number"
            ],
            "description": "KDV oranı.",
            "format": "double"
          },
          "discountRate": {
            "maximum": 100,
            "minimum": 0,
            "type": [
              "null",
              "number"
            ],
            "description": "İskonto oranı (%).",
            "format": "double"
          },
          "vatExcemptionCode": {
            "enum": [
              "Ki230",
              "Om805",
              "Om808"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "extraData": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "description": "Ekstra veriler."
          },
          "inventoryProductId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Bağlı envanter ürünü kimliği.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateLegalEntityInput": {
        "required": [
          "entityNumber",
          "fullName"
        ],
        "type": "object",
        "properties": {
          "entityNumber": {
            "description": "Cari T.C. / vergi kimlik numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "fullName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Cari adı / unvanı."
          },
          "taxOffice": {
            "maxLength": 30,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Vergi dairesi."
          },
          "provinceId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "İl ID'si.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "districtId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "İlçe ID'si.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "address": {
            "maxLength": 255,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Adres."
          },
          "emailAddress": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "E-posta adresi."
          },
          "note": {
            "maxLength": 2000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Notlar."
          },
          "customerAccountingCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Müşteri cari hesap kodu. Satış tarafındaki evraklarda (giden fatura, para girişi) kullanılır."
          },
          "supplierAccountingCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Tedarikçi hesap kodu. Alış tarafındaki evraklarda (gelen fatura, gider pusulası, para çıkışı) kullanılır."
          },
          "coreBusiness": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "enum": [
                "GoldDealing",
                "Staff"
              ],
              "type": "string"
            },
            "description": "Faaliyet alanları."
          }
        }
      },
      "CreatePosDeviceInput": {
        "required": [
          "vendor",
          "serialNumber",
          "name"
        ],
        "type": "object",
        "properties": {
          "vendor": {
            "enum": [
              "Pavo"
            ],
            "type": "string"
          },
          "serialNumber": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "POS cihazı seri numarası."
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "POS cihazı adı."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Cihazın atanacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateRefundInput": {
        "type": "object",
        "properties": {
          "issueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "İade faturası düzenlenme zamanı (UTC). Belirtilmezse o anki zaman kullanılır.",
            "format": "date-time"
          }
        }
      },
      "CreateRelatedBankAccountTransactionInput": {
        "required": [
          "ownBankAccountId",
          "transactionAmount",
          "currency",
          "direction",
          "otherBankAccountOwnerName"
        ],
        "type": "object",
        "properties": {
          "ownBankAccountId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Tenant'a ait banka hesabı ID.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "transactionAmount": {
            "minimum": 0,
            "type": "number",
            "description": "İşlem tutarı.",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "direction": {
            "enum": [
              "MoneyIn",
              "MoneyOut"
            ],
            "type": "string"
          },
          "otherBankAccountIban": {
            "maxLength": 34,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı tarafın IBAN numarası."
          },
          "otherBankAccountOwnerName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Karşı tarafın adı soyadı ya da ünvanı."
          },
          "otherBankAccountBank": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı banka."
          }
        }
      },
      "CreateRoleDto": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Rol adı."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Rolün bağlı olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "federationId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Rolün bağlı olduğu bayi ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateTenantBankAccountTransactionClassificationInput": {
        "required": [
          "name",
          "ruleType",
          "match"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Sınıflandırma adı."
          },
          "ruleType": {
            "enum": [
              "AutoHide"
            ],
            "type": "string"
          },
          "match": {
            "description": "Eşleşme kuralı. $type alanı ile tipi belirtilir: EntityNumber | OwnerName | Iban | DescriptionRegex | DescriptionContains. PaymentRefunds ve InternalTransfer sistem tanımlıdır, oluşturulamaz.",
            "$ref": "#/components/schemas/ClassificationMatchDto"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Kuralın etkin olup olmadığı. Gönderilmezse kural etkin olarak oluşturulur."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Sınıflandırmanın ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CreateTenantBranchInput": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Şube adı."
          }
        }
      },
      "CreateUserDto": {
        "required": [
          "roleId",
          "fullName"
        ],
        "type": "object",
        "properties": {
          "roleId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcı rolü.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "fullName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Kullanıcı adı."
          },
          "emailAddress": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcı e-posta adresi. Telefon numarası verildiyse boş bırakılabilir."
          },
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcı telefon numarası."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcının ait olduğu tenant ID'si (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "federationId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcının bağlı olduğu bayi ID'si (sadece host bayisi hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "isActive": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Kullanıcı aktif mi?"
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcının tenanttaki şubesi. Boşsa çağıranın şubesi kullanılır; tenant bağlamı olmayan kullanıcılarda yok sayılır.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "CurrencyRateDto": {
        "required": [
          "code",
          "displayName",
          "symbol",
          "buying",
          "selling",
          "change",
          "change24h"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "buying": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "selling": {
            "type": "number",
            "format": "double"
          },
          "change": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "change24h": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          }
        }
      },
      "CurrencyRateFrameDto": {
        "required": [
          "timestamp",
          "open",
          "high",
          "low",
          "close",
          "buying",
          "selling"
        ],
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "open": {
            "type": "number",
            "format": "double"
          },
          "high": {
            "type": "number",
            "format": "double"
          },
          "low": {
            "type": "number",
            "format": "double"
          },
          "close": {
            "type": "number",
            "format": "double"
          },
          "buying": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "selling": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "CurrencyRateHistoryDto": {
        "required": [
          "code",
          "intervalSeconds",
          "from",
          "to",
          "frames"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "intervalSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "frames": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyRateFrameDto"
            }
          }
        }
      },
      "CurrentSubscriptionBillingRecordDto": {
        "required": [
          "id",
          "billingCycle",
          "periodStart",
          "periodEnd",
          "isPaid",
          "creationTime"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fatura kaydının kimliği."
          },
          "billingCycle": {
            "enum": [
              "Monthly",
              "Quarterly",
              "SemiAnnual",
              "Yearly",
              "OneTime",
              "Custom"
            ],
            "type": "string"
          },
          "amount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Fatura tutarı. Abonelik fiyatı müşteriye gizliyse (müşteri bazındaki ayar, yoksa planın ayarı) null döner.",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "periodStart": {
            "type": "string",
            "description": "Faturalandırma döneminin başlangıç tarihi.",
            "format": "date-time"
          },
          "periodEnd": {
            "type": "string",
            "description": "Faturalandırma döneminin bitiş tarihi.",
            "format": "date-time"
          },
          "isPaid": {
            "type": "boolean",
            "description": "Faturanın ödenip ödenmediği."
          },
          "paymentTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturanın ödendiği zaman.",
            "format": "date-time"
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          }
        }
      },
      "CurrentSubscriptionDto": {
        "required": [
          "id",
          "subscriptionPlan",
          "billingCycle",
          "isPriceVisible",
          "status",
          "startDate",
          "autoRenew",
          "creationTime",
          "billingRecords"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Tenant aboneliği kimliği."
          },
          "subscriptionPlan": {
            "description": "Aboneliğin bağlı olduğu plan.",
            "$ref": "#/components/schemas/CurrentSubscriptionPlanDto"
          },
          "billingCycle": {
            "enum": [
              "Monthly",
              "Quarterly",
              "SemiAnnual",
              "Yearly",
              "OneTime",
              "Custom"
            ],
            "type": "string"
          },
          "isPriceVisible": {
            "type": "boolean",
            "description": "Abonelik fiyatının tenant'a gösterilip gösterilmediği."
          },
          "price": {
            "type": [
              "null",
              "number"
            ],
            "description": "Tenant'a uygulanan abonelik fiyatı. Fiyat görünürlüğü kapalıysa null döner.",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "enum": [
              "Active",
              "Expired",
              "Cancelled",
              "PendingRenewal",
              "Suspended"
            ],
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "description": "Aboneliğin başlangıç tarihi.",
            "format": "date-time"
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Aboneliğin bitiş tarihi.",
            "format": "date-time"
          },
          "nextRenewalDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Aboneliğin bir sonraki yenilenme tarihi.",
            "format": "date-time"
          },
          "autoRenew": {
            "type": "boolean",
            "description": "Aboneliğin otomatik olarak yenilenip yenilenmeyeceği."
          },
          "creationTime": {
            "type": "string",
            "description": "Aboneliğin oluşturulma zamanı.",
            "format": "date-time"
          },
          "billingRecords": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrentSubscriptionBillingRecordDto"
            },
            "description": "Aboneliğe ait faturalama kayıtları. En yeni kayıt başta olacak şekilde sıralanır."
          }
        }
      },
      "CurrentSubscriptionPlanDto": {
        "required": [
          "id",
          "name",
          "licenseType"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Abonelik planı kimliği."
          },
          "name": {
            "type": "string",
            "description": "Abonelik planı adı."
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Abonelik planı açıklaması."
          },
          "licenseType": {
            "enum": [
              "Saas",
              "Perpetual",
              "MaintenanceFee",
              "Trial",
              "Enterprise"
            ],
            "type": "string"
          },
          "subscriptionProduct": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Abonelik planına bağlı abonelik ürünü.",
                "$ref": "#/components/schemas/BasicSubscriptionProductDto"
              }
            ]
          }
        }
      },
      "CustodyGroupSummaryDto": {
        "required": [
          "kind",
          "direction",
          "totalRemaining",
          "custodyCount",
          "overdueCount"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "enum": [
              "Currency",
              "Gold",
              "Product",
              "FreeText"
            ],
            "type": "string"
          },
          "direction": {
            "enum": [
              "Taken",
              "Given"
            ],
            "type": "string"
          },
          "currency": {
            "type": [
              "null",
              "string"
            ],
            "description": "Döviz emanetlerinde para birimi kodu."
          },
          "fineness": {
            "type": [
              "null",
              "number"
            ],
            "description": "Altın emanetlerinde milyem ayarı.",
            "format": "double"
          },
          "totalRemaining": {
            "type": "number",
            "description": "Gruptaki emanetlerin toplam kalan miktarı.",
            "format": "double"
          },
          "pureGoldEquivalent": {
            "type": [
              "null",
              "number"
            ],
            "description": "Altın gruplarında toplam has (saf altın) karşılığı.",
            "format": "double"
          },
          "custodyCount": {
            "type": "integer",
            "description": "Gruptaki emanet sayısı.",
            "format": "int32"
          },
          "overdueCount": {
            "type": "integer",
            "description": "Gruptaki gecikmiş emanet sayısı.",
            "format": "int32"
          }
        }
      },
      "CustomerTransactionDto": {
        "required": [
          "tenant",
          "actingTenant",
          "id",
          "creationTime",
          "customerFirstName",
          "customerLastName",
          "customerNationality",
          "transactionType",
          "description",
          "currency",
          "totalAmount",
          "isDemo"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşlemi oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "description": "İşlemin ait olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "actingTenant": {
            "description": "İşlemi gerçekleştiren tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "identityVerification": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşlemle ilişkili kimlik doğrulama kaydı.",
                "$ref": "#/components/schemas/BasicIdentityVerificationDto"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "Müşteri işlemi kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "İşlemin oluşturulma zamanı.",
            "format": "date-time"
          },
          "customerFirstName": {
            "type": "string",
            "description": "Müşterinin adı."
          },
          "customerLastName": {
            "type": "string",
            "description": "Müşterinin soyadı."
          },
          "customerNationality": {
            "type": "string",
            "description": "Müşterinin uyruğu."
          },
          "invoiceNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlemle ilişkili fatura numarası."
          },
          "customerNationalIdentityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Müşterinin kimlik numarası."
          },
          "transactionType": {
            "enum": [
              "GoodsSold",
              "GoodsPurchased"
            ],
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "İşlem açıklaması."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "totalAmount": {
            "type": "number",
            "description": "İşlemin toplam tutarı.",
            "format": "double"
          },
          "isDemo": {
            "type": "boolean",
            "description": "İşlemin demo veri olup olmadığı."
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşlemin bağlı olduğu tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "appliedCurrencyRate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşleme uygulanan kur bilgisi.",
                "$ref": "#/components/schemas/AppliedCurrencyRateDto"
              }
            ]
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DataTableColumnDefaultDto": {
        "required": [
          "displayName",
          "order",
          "isHidden",
          "isSortable",
          "isAlwaysVisible",
          "isVisibleOnIntroduction",
          "pinned"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "Sütunun kullanıcıya gösterilen adı."
          },
          "order": {
            "type": "integer",
            "description": "Sütunun varsayılan sırası (0 tabanlı).",
            "format": "int32"
          },
          "isHidden": {
            "type": "boolean",
            "description": "Sütun varsayılan olarak gizli mi."
          },
          "isSortable": {
            "type": "boolean",
            "description": "Bu sütuna göre sıralama yapılabilir mi."
          },
          "isAlwaysVisible": {
            "type": "boolean",
            "description": "Sütun her zaman görünür mü (kullanıcı gizleyemez)."
          },
          "isVisibleOnIntroduction": {
            "type": "boolean",
            "description": "Sisteme sonradan eklenen bu sütun mevcut tercihlerde otomatik görünür mü."
          },
          "width": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Sütunun varsayılan piksel genişliği.",
            "format": "int32"
          },
          "pinned": {
            "enum": [
              "none",
              "left",
              "right"
            ],
            "type": "string"
          }
        }
      },
      "DataTableColumnStateDto": {
        "required": [
          "order",
          "isHidden",
          "pinned"
        ],
        "type": "object",
        "properties": {
          "order": {
            "type": "integer",
            "description": "Sütunun sırası (0 tabanlı).",
            "format": "int32"
          },
          "isHidden": {
            "type": "boolean",
            "description": "Sütun gizli mi."
          },
          "width": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Sütunun piksel genişliği.",
            "format": "int32"
          },
          "pinned": {
            "enum": [
              "none",
              "left",
              "right"
            ],
            "type": "string"
          }
        }
      },
      "DataTableDefaultsDto": {
        "required": [
          "clientId",
          "columns"
        ],
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Bu varsayılanların tanımlı olduğu istemci kimliği."
          },
          "sorting": {
            "type": [
              "null",
              "string"
            ],
            "description": "Varsayılan sıralama (biçim: <sütun> [asc|desc])."
          },
          "queryFilters": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Varsayılan filtreler. Tarih alanları göreceli ifade içerebilir.",
                "$ref": "#/components/schemas/JsonObject"
              }
            ]
          },
          "resolvedQueryFilters": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Göreceli tarih ifadeleri çözülmüş haldeki varsayılan filtreler.",
                "$ref": "#/components/schemas/JsonObject"
              }
            ]
          },
          "columns": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/DataTableColumnDefaultDto"
            },
            "description": "Sütun kataloğu ve varsayılan sütun durumları."
          },
          "settings": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tabloya özel ek varsayılan ayarlar.",
                "$ref": "#/components/schemas/JsonObject"
              }
            ]
          }
        }
      },
      "DataTableDefinitionDto": {
        "required": [
          "table",
          "displayName",
          "getListPermission",
          "defaultClientId",
          "configuredClientIds"
        ],
        "type": "object",
        "properties": {
          "table": {
            "enum": [
              "BankTransactions",
              "Invoices",
              "ExpenseBills",
              "LegalEntities",
              "Tenants",
              "CashboxRecords"
            ],
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "description": "Tablonun kullanıcıya gösterilen adı."
          },
          "getListPermission": {
            "type": "string",
            "description": "Tabloyu listelemek için gereken yetki."
          },
          "defaultClientId": {
            "type": "string",
            "description": "Tablonun varsayılan istemci kimliği."
          },
          "configuredClientIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Kodda varsayılan ayar tanımlanmış istemci kimlikleri."
          }
        }
      },
      "DataTablePreferencesDto": {
        "required": [
          "isDefault",
          "source",
          "clientId",
          "columns"
        ],
        "type": "object",
        "properties": {
          "isDefault": {
            "type": "boolean",
            "description": "Kullanıcı veya kapsam için kayıtlı bir tercih olmadığında true döner."
          },
          "source": {
            "enum": [
              "CodeDefault",
              "ScopeDefault",
              "User"
            ],
            "type": "string"
          },
          "clientId": {
            "type": "string",
            "description": "Tercihin çözümlendiği istemci kimliği."
          },
          "sorting": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sıralama (biçim: <sütun> [asc|desc])."
          },
          "queryFilters": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Filtreler. Tarih alanları göreceli ifade içerebilir.",
                "$ref": "#/components/schemas/JsonObject"
              }
            ]
          },
          "resolvedQueryFilters": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Göreceli tarih ifadeleri çözülmüş haldeki filtreler.",
                "$ref": "#/components/schemas/JsonObject"
              }
            ]
          },
          "columns": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/DataTableColumnStateDto"
            },
            "description": "Varsayılanlarla birleştirilmiş sütun durumları."
          },
          "settings": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Varsayılanlarla birleştirilmiş tabloya özel ek ayarlar.",
                "$ref": "#/components/schemas/JsonObject"
              }
            ]
          }
        }
      },
      "DataTableStateDto": {
        "required": [
          "table",
          "defaults",
          "preferences"
        ],
        "type": "object",
        "properties": {
          "table": {
            "enum": [
              "BankTransactions",
              "Invoices",
              "ExpenseBills",
              "LegalEntities",
              "Tenants",
              "CashboxRecords"
            ],
            "type": "string"
          },
          "defaults": {
            "description": "Koddaki tanımlı varsayılan ayarlar.",
            "$ref": "#/components/schemas/DataTableDefaultsDto"
          },
          "preferences": {
            "description": "Uygulanacak nihai ayarlar.",
            "$ref": "#/components/schemas/DataTablePreferencesDto"
          }
        }
      },
      "DeleteExpenseBillsBatchInput": {
        "required": [
          "expenseBillIds"
        ],
        "type": "object",
        "properties": {
          "expenseBillIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Silinecek gider pusulası ID'leri."
          }
        }
      },
      "DeleteInvoicesBatchInput": {
        "required": [
          "invoiceIds"
        ],
        "type": "object",
        "properties": {
          "invoiceIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Silinecek taslak fatura ID'leri."
          }
        }
      },
      "DespatchAdviceAttachmentDto": {
        "required": [
          "id",
          "referenceId",
          "file"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Ekin kimliği."
          },
          "referenceId": {
            "type": "string",
            "description": "Ekin e-belge içindeki referans kimliği."
          },
          "documentType": {
            "type": [
              "null",
              "string"
            ],
            "description": "Ekin e-belge içindeki belge türü."
          },
          "file": {
            "description": "Ek dosyası.",
            "$ref": "#/components/schemas/BlobFileDto"
          }
        }
      },
      "DespatchAdviceDto": {
        "required": [
          "id",
          "direction",
          "scenario",
          "status",
          "creationTime",
          "supplierName",
          "supplierTaxNumber",
          "deliveryName",
          "deliveryTaxNumber",
          "isRead"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "İrsaliye ETTN."
          },
          "number": {
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye numarası."
          },
          "direction": {
            "enum": [
              "Outgoing",
              "Incoming"
            ],
            "type": "string"
          },
          "scenario": {
            "enum": [
              "Basic"
            ],
            "type": "string"
          },
          "status": {
            "enum": [
              "Queued",
              "Submitting",
              "SentToGib",
              "WaitingForResponse",
              "Approved",
              "Rejected",
              "PartiallyAccepted",
              "Error",
              "SubmissionError",
              "Cancelled"
            ],
            "type": "string"
          },
          "envelopeStatus": {
            "enum": [
              "0",
              "1000",
              "1100",
              "1150",
              "1160",
              "1177",
              "1200",
              "1210",
              "1215",
              "1220",
              "1230",
              "1300"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "issueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye düzenlenme zamanı.",
            "format": "date-time"
          },
          "despatchTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fiili sevk zamanı.",
            "format": "date-time"
          },
          "supplierName": {
            "type": "string",
            "description": "Gönderen tarafın ünvanı."
          },
          "supplierTaxNumber": {
            "type": "string",
            "description": "Gönderen tarafın VKN/TCKN değeri."
          },
          "deliveryName": {
            "type": "string",
            "description": "Teslim alan tarafın ünvanı."
          },
          "deliveryTaxNumber": {
            "type": "string",
            "description": "Teslim alan tarafın VKN/TCKN değeri."
          },
          "isRead": {
            "type": "boolean",
            "description": "İrsaliyenin okunma durumu."
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Oluşan hata mesajı."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "totalValue": {
            "type": [
              "null",
              "number"
            ],
            "description": "Toplam tutar.",
            "format": "double"
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DespatchAdviceItemDto": {
        "required": [
          "id",
          "lineNumber",
          "name",
          "unit",
          "deliveredQuantity"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "İrsaliye kalemi ID."
          },
          "lineNumber": {
            "type": "integer",
            "description": "Kalem sıra numarası.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "İrsaliye kalemi adı."
          },
          "unit": {
            "enum": [
              "Gr",
              "Item",
              "NIU",
              "KGM",
              "R9",
              "LTR",
              "MTR",
              "SET"
            ],
            "type": "string"
          },
          "deliveredQuantity": {
            "type": "number",
            "description": "Gönderilen miktar.",
            "format": "double"
          },
          "outstandingQuantity": {
            "type": [
              "null",
              "number"
            ],
            "description": "Bekleyen (kısmi gönderim) miktarı.",
            "format": "double"
          },
          "sellerItemId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Satıcı stok kodu."
          },
          "buyerItemId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Alıcı stok kodu."
          }
        }
      },
      "DespatchAdviceResponseDto": {
        "required": [
          "id",
          "despatchAdviceId",
          "responseType",
          "status",
          "creationTime",
          "lines"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "İrsaliye yanıtı ETTN."
          },
          "despatchAdviceId": {
            "type": "string",
            "description": "Yanıt verilen irsaliyenin ID'si."
          },
          "responseType": {
            "enum": [
              "Accepted",
              "Rejected"
            ],
            "type": "string"
          },
          "note": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yanıt notu."
          },
          "number": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yanıt numarası."
          },
          "status": {
            "enum": [
              "Queued",
              "Submitting",
              "SentToGib",
              "WaitingForResponse",
              "Approved",
              "Rejected",
              "PartiallyAccepted",
              "Error",
              "SubmissionError",
              "Cancelled"
            ],
            "type": "string"
          },
          "envelopeStatus": {
            "enum": [
              "0",
              "1000",
              "1100",
              "1150",
              "1160",
              "1177",
              "1200",
              "1210",
              "1215",
              "1220",
              "1230",
              "1300"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "deliveryTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Teslim zamanı.",
            "format": "date-time"
          },
          "deliveryContact": {
            "type": [
              "null",
              "string"
            ],
            "description": "Teslim alan kişi."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "ublFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Yanıt UBL dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DespatchAdviceResponseLineDto"
            },
            "description": "Kalem bazlı yanıt bilgileri."
          }
        }
      },
      "DespatchAdviceResponseLineDto": {
        "required": [
          "id",
          "lineNumber",
          "unit",
          "receivedQuantity"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Yanıt kalemi ID."
          },
          "lineNumber": {
            "type": "integer",
            "description": "İlgili irsaliye kalemi sıra numarası.",
            "format": "int32"
          },
          "unit": {
            "enum": [
              "Gr",
              "Item",
              "NIU",
              "KGM",
              "R9",
              "LTR",
              "MTR",
              "SET"
            ],
            "type": "string"
          },
          "receivedQuantity": {
            "type": "number",
            "description": "Teslim alınan miktar.",
            "format": "double"
          },
          "rejectedQuantity": {
            "type": [
              "null",
              "number"
            ],
            "description": "Reddedilen (hasarlı) miktar.",
            "format": "double"
          },
          "shortQuantity": {
            "type": [
              "null",
              "number"
            ],
            "description": "Eksik gelen miktar.",
            "format": "double"
          },
          "oversupplyQuantity": {
            "type": [
              "null",
              "number"
            ],
            "description": "Fazla gelen miktar.",
            "format": "double"
          },
          "rejectReason": {
            "type": [
              "null",
              "string"
            ],
            "description": "Reddetme/şikayet sebebi."
          },
          "note": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kalem notu."
          }
        }
      },
      "DespatchDriverDto": {
        "required": [
          "firstName",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "Sürücü adı."
          },
          "lastName": {
            "type": "string",
            "description": "Sürücü soyadı."
          },
          "title": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sürücü unvanı."
          }
        }
      },
      "DespatchDriverInput": {
        "required": [
          "firstName",
          "lastName",
          "identityNumber"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "Şoför adı."
          },
          "lastName": {
            "type": "string",
            "description": "Şoför soyadı."
          },
          "identityNumber": {
            "description": "Şoför TC kimlik numarası.",
            "$ref": "#/components/schemas/TurkishIdentityNumber"
          },
          "title": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Şoför unvanı."
          }
        }
      },
      "DespatchVehicleDto": {
        "required": [
          "plateNumber",
          "type"
        ],
        "type": "object",
        "properties": {
          "plateNumber": {
            "type": "string",
            "description": "Araç veya dorse plakası."
          },
          "type": {
            "enum": [
              "Vehicle",
              "Trailer"
            ],
            "type": "string"
          }
        }
      },
      "DespatchVehicleInput": {
        "required": [
          "plateNumber",
          "type"
        ],
        "type": "object",
        "properties": {
          "plateNumber": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Araç veya dorse plakası."
          },
          "type": {
            "enum": [
              "Vehicle",
              "Trailer"
            ],
            "type": "string"
          }
        }
      },
      "DetailedBankAccountDto": {
        "required": [
          "id",
          "creationTime",
          "iban",
          "accountName",
          "currency",
          "bank",
          "isDemo",
          "displayOrder",
          "lastSynchronizationFailed",
          "tenant",
          "hasErrors",
          "isSynchronizable"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Banka hesabını oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "credentials": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Banka hesabının bağlantı bilgileri.",
                "$ref": "#/components/schemas/BasicBankAccountCredentialsDto"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "Banka hesabı kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Banka hesabının oluşturulma zamanı.",
            "format": "date-time"
          },
          "iban": {
            "type": "string",
            "description": "Banka hesabı IBAN numarası."
          },
          "accountName": {
            "type": "string",
            "description": "Banka hesabı adı."
          },
          "accountingCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Banka hesabının muhasebe kodu."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          },
          "isDemo": {
            "type": "boolean",
            "description": "Banka hesabının demo hesap olup olmadığı."
          },
          "displayOrder": {
            "type": "integer",
            "description": "Banka hesabının listede görüneceği sıra. Küçük değerler önce gelir.",
            "format": "int32"
          },
          "balance": {
            "type": [
              "null",
              "number"
            ],
            "description": "Kts.BankAccounts.ViewBalance yetkisini gerektirir.",
            "format": "double"
          },
          "lastSynchronizationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Banka hesabının son senkronizasyon zamanı.",
            "format": "date-time"
          },
          "lastSynchronizationFailed": {
            "type": "boolean",
            "description": "Son senkronizasyon denemesinin başarısız olup olmadığı."
          },
          "synchronizationThrottledTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Senkronizasyonun kısıtlandığı zaman.",
            "format": "date-time"
          },
          "tenant": {
            "description": "Banka hesabının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "hasErrors": {
            "type": "boolean",
            "description": "Banka hesabında hata bulunup bulunmadığı."
          },
          "synchronizationError": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kts.BankAccounts.ViewErrorDetails yetkisini gerektirir.",
                "$ref": "#/components/schemas/BankAccountSynchronizationErrorDto"
              }
            ]
          },
          "isSynchronizable": {
            "type": "boolean",
            "description": "Banka hesabının senkronize edilebilir olup olmadığı."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DetailedBankAccountInfoDto": {
        "required": [
          "tenant",
          "id",
          "creationTime",
          "iban",
          "ownerName"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "description": "Banka hesabının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "id": {
            "type": "string",
            "description": "Banka hesabı kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "lastModificationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kaydın son değiştirilme zamanı.",
            "format": "date-time"
          },
          "iban": {
            "type": "string",
            "description": "Banka hesabı IBAN numarası."
          },
          "ownerName": {
            "type": "string",
            "description": "Hesap sahibinin adı."
          },
          "entityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap sahibinin vergi kimlik veya TC kimlik numarası."
          },
          "name": {
            "type": [
              "null",
              "string"
            ],
            "description": "Banka hesabına verilen isim."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesabın bağlı olduğu tüzel/gerçek kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          }
        }
      },
      "DetailedBankAccountTransactionDto": {
        "required": [
          "id",
          "creationTime",
          "transactionAmount",
          "currency",
          "direction",
          "otherBankAccountOwnerName",
          "isDemo",
          "isHidden",
          "isProcessed",
          "isTransferredToAccounting",
          "description",
          "transactionType",
          "ownBankAccount",
          "invoices"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Banka hesap hareketinin ID'si."
          },
          "transactionTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlemin gerçekleştiği zaman.",
            "format": "date-time"
          },
          "creationTime": {
            "type": "string",
            "description": "Hesap hareketin sisteme kaydedilme zamanı.",
            "format": "date-time"
          },
          "transactionAmount": {
            "type": "number",
            "description": "Hesap hareketinin tutarı.",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "balance": {
            "type": [
              "null",
              "number"
            ],
            "description": "Kts.BankAccounts.ViewBalance yetkisini gerektirir.",
            "format": "double"
          },
          "direction": {
            "enum": [
              "MoneyIn",
              "MoneyOut"
            ],
            "type": "string"
          },
          "otherBankAccountBank": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı tarafın bankasının bankadan geldiği haliyle adı."
          },
          "otherBank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "otherBankAccountIban": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı tarafın IBAN numarası."
          },
          "otherBankAccountOwnerName": {
            "type": "string",
            "description": "Karşı taraf hesap sahibinin adı."
          },
          "otherBankAccountOwnerEntityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı taraf hesap sahibinin vergi kimlik veya TC kimlik numarası."
          },
          "descriptionEntityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketi açıklamasından çıkarılan vergi kimlik veya TC kimlik numarası."
          },
          "otherBankAccountOwnerEntityNumberMask": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bankanın maskeleyerek gönderdiği karşı taraf T.C. kimlik numarası (örn. 157******78). Yalnız ilk üç ve son iki hane bilinir."
          },
          "descriptionTckn": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketi açıklamasından çıkarılan TC kimlik numarası."
          },
          "hasEntityNumberMismatch": {
            "type": "boolean",
            "description": "Karşı taraf hesap sahibinin kimlik numarası ile açıklamadan çıkarılan kimlik numarasının ikisinin de dolu ve farklı olup olmadığı. True ise gider pusulası oluşturulurken tedarikçi kimlik numarası bu ikisinden biri seçilerek onaylanmalıdır."
          },
          "referenceNo": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bankanın hareket için verdiği referans numarası."
          },
          "isDemo": {
            "type": "boolean",
            "description": "Hesap hareketinin demo veri olup olmadığı."
          },
          "isHidden": {
            "type": "boolean",
            "description": "Hesap hareketinin listelerde gizlenip gizlenmediği."
          },
          "isProcessed": {
            "type": "boolean",
            "description": "Hesap hareketinin işlenmiş olarak işaretlenip işaretlenmediği."
          },
          "processionNote": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketinin işlenme notu."
          },
          "isTransferredToAccounting": {
            "type": "boolean",
            "description": "Hesap hareketinin muhasebe programına aktarılıp aktarılmadığı."
          },
          "accountingTransferTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketinin muhasebe programına aktarıldığı zaman.",
            "format": "date-time"
          },
          "transactionId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bankadaki işlem kimliği."
          },
          "description": {
            "type": "string",
            "description": "Hesap hareketinin banka ekstresindeki açıklaması."
          },
          "transactionType": {
            "enum": [
              "None",
              "Other",
              "Havale",
              "EFT",
              "FAST",
              "PosPayment",
              "Bsmv",
              "Komisyon",
              "Masraf",
              "PosKesinti"
            ],
            "type": "string"
          },
          "riskCategory": {
            "enum": [
              "None",
              "Low",
              "Medium",
              "High"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "riskScore": {
            "type": [
              "null",
              "number"
            ],
            "description": "Hesap hareketinin risk skoru.",
            "format": "double"
          },
          "riskReasons": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Hesap hareketinin  riskli bulunma sebepleri."
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketi oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "customerTransaction": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketinin eşleştiği cari işlem.",
                "$ref": "#/components/schemas/BasicCustomerTransactionDto"
              }
            ]
          },
          "ownBankAccount": {
            "description": "Hesap hareketinin gerçekleştiği kendi banka hesabı.",
            "$ref": "#/components/schemas/BasicBankAccountDto"
          },
          "expenseBill": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketle ilişkilendirilen gider pusulası.",
                "$ref": "#/components/schemas/ExpenseBillDto"
              }
            ]
          },
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceDto"
            },
            "description": "Hesap hareketle ilişkilendirilen faturalar."
          },
          "invoice": {
            "description": "Hesap hareketle ilişkilendirilen ilk geçerli fatura.",
            "$ref": "#/components/schemas/InvoiceDto"
          },
          "isInvoicable": {
            "type": "boolean",
            "description": "Hesap hareketi için fatura kesilebilir olup olmadığı."
          },
          "isExpenseBillable": {
            "type": "boolean",
            "description": "Hesap hareketi için gider pusulası kesilebilir olup olmadığı."
          },
          "eVoucherId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketine bağlı, iptal edilmemiş en güncel e-Gider Pusulası ID."
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketin bağlı olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "sanctionMatches": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/SanctionedPersonMatchDto"
            },
            "description": "Hareketle eşleşen yaptırım listesi kayıtları."
          },
          "identityVerifications": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/BasicIdentityVerificationDto"
            },
            "description": "Hesap hareketle ilişkili kimlik doğrulamaları."
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketle ilişkilendirilen tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "appliedCurrencyRate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap hareketi için uygulanan döviz kuru.",
                "$ref": "#/components/schemas/AppliedCurrencyRateDto"
              }
            ]
          },
          "currencyRateId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap hareketine atanmış referans kur kaydının kimliği. Boşsa harekete referans kur atanamamıştır."
          },
          "requiresIdentityVerification": {
            "type": "boolean",
            "description": "Hesap hareketi için kimlik doğrulaması gerekip gerekmediği."
          },
          "hasCashboxRecord": {
            "type": "boolean",
            "description": "Banka hesap hareketine bağlı canlı bir kasa hareketi olup olmadığı."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube (banka hesabının şubesi). Şubesiz hesaplarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DetailedCustomerTransactionDto": {
        "required": [
          "tenant",
          "actingTenant",
          "bankAccountTransactions",
          "id",
          "creationTime",
          "customerFirstName",
          "customerLastName",
          "customerNationality",
          "transactionType",
          "description",
          "currency",
          "totalAmount",
          "isDemo"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşlemi oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "description": "İşlemin ait olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "actingTenant": {
            "description": "İşlemi gerçekleştiren tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "bankAccountTransactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BasicBankAccountTransactionDto"
            },
            "description": "İşlemle ilişkili banka hesabı işlemleri."
          },
          "identityVerification": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşlemle ilişkili kimlik doğrulama kaydı.",
                "$ref": "#/components/schemas/BasicIdentityVerificationDto"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "Müşteri işlemi kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "İşlemin oluşturulma zamanı.",
            "format": "date-time"
          },
          "customerFirstName": {
            "type": "string",
            "description": "Müşterinin adı."
          },
          "customerLastName": {
            "type": "string",
            "description": "Müşterinin soyadı."
          },
          "customerNationality": {
            "type": "string",
            "description": "Müşterinin uyruğu."
          },
          "invoiceNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlemle ilişkili fatura numarası."
          },
          "customerNationalIdentityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Müşterinin kimlik numarası."
          },
          "transactionType": {
            "enum": [
              "GoodsSold",
              "GoodsPurchased"
            ],
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "İşlem açıklaması."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "totalAmount": {
            "type": "number",
            "description": "İşlemin toplam tutarı.",
            "format": "double"
          },
          "isDemo": {
            "type": "boolean",
            "description": "İşlemin demo veri olup olmadığı."
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşlemin bağlı olduğu tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "appliedCurrencyRate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşleme uygulanan kur bilgisi.",
                "$ref": "#/components/schemas/AppliedCurrencyRateDto"
              }
            ]
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DetailedDespatchAdviceDto": {
        "required": [
          "items",
          "drivers",
          "vehicles",
          "responses",
          "attachments",
          "id",
          "direction",
          "scenario",
          "status",
          "creationTime",
          "supplierName",
          "supplierTaxNumber",
          "deliveryName",
          "deliveryTaxNumber",
          "isRead"
        ],
        "type": "object",
        "properties": {
          "supplierAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gönderen tarafın adresi."
          },
          "deliveryAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Teslim adresi."
          },
          "deliveryPostalCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Teslim adresi posta kodu."
          },
          "deliveryProvince": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Teslim adresi ili.",
                "$ref": "#/components/schemas/ProvinceDto"
              }
            ]
          },
          "deliveryDistrict": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Teslim adresi ilçesi.",
                "$ref": "#/components/schemas/DistrictDto"
              }
            ]
          },
          "deliveryTaxOffice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Teslim alan tarafın vergi dairesi."
          },
          "note": {
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye notu."
          },
          "carrierName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Taşıyıcı firma ünvanı."
          },
          "carrierTaxNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Taşıyıcı firma VKN değeri."
          },
          "orderReferenceId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sipariş numarası."
          },
          "orderReferenceDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sipariş tarihi.",
            "format": "date-time"
          },
          "ublFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İrsaliye UBL dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DespatchAdviceItemDto"
            },
            "description": "İrsaliye kalemleri."
          },
          "drivers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DespatchDriverDto"
            },
            "description": "Şoför bilgileri."
          },
          "vehicles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DespatchVehicleDto"
            },
            "description": "Araç ve dorse bilgileri."
          },
          "responses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DespatchAdviceResponseDto"
            },
            "description": "İrsaliyeye verilen yanıtlar."
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DespatchAdviceAttachmentDto"
            },
            "description": "İrsaliyenin e-belge ekleri."
          },
          "id": {
            "type": "string",
            "description": "İrsaliye ETTN."
          },
          "number": {
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye numarası."
          },
          "direction": {
            "enum": [
              "Outgoing",
              "Incoming"
            ],
            "type": "string"
          },
          "scenario": {
            "enum": [
              "Basic"
            ],
            "type": "string"
          },
          "status": {
            "enum": [
              "Queued",
              "Submitting",
              "SentToGib",
              "WaitingForResponse",
              "Approved",
              "Rejected",
              "PartiallyAccepted",
              "Error",
              "SubmissionError",
              "Cancelled"
            ],
            "type": "string"
          },
          "envelopeStatus": {
            "enum": [
              "0",
              "1000",
              "1100",
              "1150",
              "1160",
              "1177",
              "1200",
              "1210",
              "1215",
              "1220",
              "1230",
              "1300"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "issueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye düzenlenme zamanı.",
            "format": "date-time"
          },
          "despatchTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fiili sevk zamanı.",
            "format": "date-time"
          },
          "supplierName": {
            "type": "string",
            "description": "Gönderen tarafın ünvanı."
          },
          "supplierTaxNumber": {
            "type": "string",
            "description": "Gönderen tarafın VKN/TCKN değeri."
          },
          "deliveryName": {
            "type": "string",
            "description": "Teslim alan tarafın ünvanı."
          },
          "deliveryTaxNumber": {
            "type": "string",
            "description": "Teslim alan tarafın VKN/TCKN değeri."
          },
          "isRead": {
            "type": "boolean",
            "description": "İrsaliyenin okunma durumu."
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Oluşan hata mesajı."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "totalValue": {
            "type": [
              "null",
              "number"
            ],
            "description": "Toplam tutar.",
            "format": "double"
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DetailedEVoucherDto": {
        "required": [
          "issuer",
          "lines",
          "statusHistory",
          "smsHistory",
          "id",
          "ettn",
          "type",
          "status",
          "issueTime",
          "creationTime",
          "customer",
          "verification",
          "currency",
          "lineExtensionAmount",
          "vatAmount",
          "taxInclusiveAmount",
          "withholdingAmount",
          "payableAmount",
          "integrator",
          "isIntegratorFallback",
          "hasDocument",
          "pdfReadiness",
          "bankTransactionIds"
        ],
        "type": "object",
        "properties": {
          "issuer": {
            "description": "Düzenleyen bilgileri.",
            "$ref": "#/components/schemas/EVoucherIssuerDto"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EVoucherLineDto"
            },
            "description": "Kalemler."
          },
          "returnReference": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İade belge bilgisi.",
                "$ref": "#/components/schemas/EVoucherReturnReferenceDto"
              }
            ]
          },
          "cargo": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kargo bilgisi.",
                "$ref": "#/components/schemas/EVoucherCargoDto"
              }
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ],
            "description": "Not."
          },
          "contentTemplateId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanılan içerik şablonu ID."
          },
          "statusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EVoucherStatusHistoryItemDto"
            },
            "description": "Durum geçmişi."
          },
          "smsHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EVoucherSmsHistoryItemDto"
            },
            "description": "Doğrulama SMS gönderim geçmişi (en yeni önce)."
          },
          "id": {
            "type": "string",
            "description": "e-Gider Pusulası ID (ETTN)."
          },
          "number": {
            "type": [
              "null",
              "string"
            ],
            "description": "Belge numarası."
          },
          "ettn": {
            "type": "string",
            "description": "ETTN."
          },
          "type": {
            "enum": [
              "Satis",
              "Iade"
            ],
            "type": "string"
          },
          "status": {
            "enum": [
              "Queued",
              "Submitting",
              "Sent",
              "Signed",
              "ReportedToGib",
              "SubmissionError",
              "Error",
              "Cancelled"
            ],
            "type": "string"
          },
          "issueTime": {
            "type": "string",
            "description": "Belge tarihi.",
            "format": "date-time"
          },
          "creationTime": {
            "type": "string",
            "description": "Kayıt zamanı.",
            "format": "date-time"
          },
          "customer": {
            "description": "Alıcı (satıcı veya iadede orijinal alıcı).",
            "$ref": "#/components/schemas/EVoucherPartyDto"
          },
          "returner": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Alıcıdan farklı iade eden kişi.",
                "$ref": "#/components/schemas/EVoucherPartyDto"
              }
            ]
          },
          "verification": {
            "description": "Doğrulama bilgileri.",
            "$ref": "#/components/schemas/EVoucherVerificationDto"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "lineExtensionAmount": {
            "type": "number",
            "description": "Mal/hizmet toplamı.",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "description": "KDV toplamı.",
            "format": "double"
          },
          "taxInclusiveAmount": {
            "type": "number",
            "description": "Vergiler dahil toplam.",
            "format": "double"
          },
          "withholdingAmount": {
            "type": "number",
            "description": "Stopaj toplamı.",
            "format": "double"
          },
          "payableAmount": {
            "type": "number",
            "description": "Ödenecek tutar.",
            "format": "double"
          },
          "integrator": {
            "enum": [
              "Izibiz",
              "TurkcellESirket",
              "Uyumsoft",
              "Demo"
            ],
            "type": "string"
          },
          "isIntegratorFallback": {
            "type": "boolean",
            "description": "Ana entegratör yerine yedek hesap kullanıldı mı."
          },
          "errorCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hata kodu."
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hata mesajı."
          },
          "hasDocument": {
            "type": "boolean",
            "description": "Belge görüntülenebilir mi."
          },
          "pdfReadiness": {
            "enum": [
              "ready",
              "preparing",
              "unavailable"
            ],
            "type": "string"
          },
          "nextStatusCheckTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Planlanan bir sonraki durum sorgusu zamanı.",
            "format": "date-time"
          },
          "bankTransactionId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bağlı ilk banka hareketi ID."
          },
          "bankTransactionIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Bağlı banka hareketi ID'leri."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DetailedExpenseBillDto": {
        "required": [
          "items",
          "bankAccountTransactions",
          "id",
          "creationTime",
          "issueTime",
          "supplierName",
          "supplierAddressLine",
          "supplierTaxNumber",
          "index",
          "description",
          "gross",
          "downloadCount",
          "isTransferredToAccounting",
          "inventoryTransferStatus",
          "tenant"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExpenseBillItemDto"
            },
            "description": "Gider pusulası kalemleri."
          },
          "bankAccountTransactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BasicBankAccountTransactionDto"
            },
            "description": "Gider pusulasına bağlı banka hesabı hareketleri."
          },
          "id": {
            "type": "string",
            "description": "Gider pusulası kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "issueTime": {
            "type": "string",
            "description": "Gider pusulasının düzenlenme tarihi.",
            "format": "date-time"
          },
          "supplierName": {
            "type": "string",
            "description": "Tedarikçi adı."
          },
          "supplierAddressLine": {
            "type": "string",
            "description": "Tedarikçi adres bilgisi."
          },
          "supplierTaxNumber": {
            "description": "Tedarikçi vergi numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "index": {
            "type": "integer",
            "description": "Gider pusulası sıra numarası.",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "description": "Gider pusulası açıklaması."
          },
          "gross": {
            "type": "number",
            "description": "Gider pusulası toplam tutarı (KDV dahil).",
            "format": "double"
          },
          "downloadCount": {
            "type": "integer",
            "description": "Gider pusulasının indirilme sayısı.",
            "format": "int32"
          },
          "isTransferredToAccounting": {
            "type": "boolean",
            "description": "Gider pusulasının muhasebe programına aktarılıp aktarılmadığı."
          },
          "accountingTransferTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gider pusulasının muhasebe programına aktarıldığı zaman.",
            "format": "date-time"
          },
          "inventoryTransferStatus": {
            "enum": [
              "NotTransferred",
              "PartiallyTransferred",
              "Transferred"
            ],
            "type": "string"
          },
          "tenant": {
            "description": "Gider pusulasının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "template": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gider pusulasının oluşturulduğu şablon.",
                "$ref": "#/components/schemas/BasicExpenseBillTemplateDto"
              }
            ]
          },
          "pdfFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gider pusulası PDF dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "previewPdfFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gider pusulası önizleme PDF dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gider pusulasının bağlı olduğu tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "appliedCurrencyRate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gider pusulasına uygulanan döviz kuru.",
                "$ref": "#/components/schemas/AppliedCurrencyRateDto"
              }
            ]
          },
          "hasCashboxRecord": {
            "type": "boolean",
            "description": "Gider pusulasına bağlı canlı bir kasa hareketi olup olmadığı."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DetailedExternalAccountDto": {
        "required": [
          "id",
          "creationTime",
          "tenant",
          "name",
          "accountType",
          "isSynchronizationEnabled",
          "totalAvailableCredits"
        ],
        "type": "object",
        "properties": {
          "transactions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/ExternalAccountCreditTransactionDto"
            },
            "description": "Hesaba ait kontör hareketleri."
          },
          "id": {
            "type": "string",
            "description": "Harici hesabın ID'si."
          },
          "creationTime": {
            "type": "string",
            "description": "Hesabın oluşturulma zamanı.",
            "format": "date-time"
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesabı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "description": "Hesabın bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "name": {
            "type": "string",
            "description": "Hesap adı."
          },
          "accountType": {
            "enum": [
              "Izibiz",
              "Netgsm",
              "TurkcellESirket",
              "Uyumsoft"
            ],
            "type": "string"
          },
          "isSynchronizationEnabled": {
            "type": "boolean",
            "description": "Hesap için otomatik senkronizasyonun etkin olup olmadığı."
          },
          "usedCredits": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Kts.ExternalAccounts.ViewCreditBreakdown yetkisini gerektirir.",
            "format": "int32"
          },
          "remainingCredits": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Kts.ExternalAccounts.ViewCreditBreakdown yetkisini gerektirir.",
            "format": "int32"
          },
          "pendingCredits": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Kts.ExternalAccounts.ViewCreditBreakdown yetkisini gerektirir.",
            "format": "int32"
          },
          "totalAvailableCredits": {
            "type": "integer",
            "description": "Toplam kullanılabilir kontör sayısı.",
            "format": "int32"
          }
        }
      },
      "DetailedIdentityVerificationDto": {
        "required": [
          "declarationDocumentFile",
          "customerTransactions",
          "livenessValidationTime",
          "livenessPhotos",
          "id",
          "channel",
          "verificationMethod",
          "verificationPurpose",
          "creationTime",
          "firstName",
          "rawFirstName",
          "lastName",
          "rawLastName",
          "nationality",
          "phoneNumber",
          "occupation",
          "birthDate",
          "description",
          "gender",
          "province",
          "addressLine",
          "tenant",
          "actingTenant",
          "isDemo",
          "identityType",
          "livenessValidationStatus",
          "livenessWarnings"
        ],
        "type": "object",
        "properties": {
          "identityCard": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "T.C. kimlik kartına ait detaylı bilgiler.",
                "$ref": "#/components/schemas/TurkishIdentityCardDetailedDto"
              }
            ]
          },
          "driversLicense": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "T.C. sürücü belgesine ait detaylı bilgiler.",
                "$ref": "#/components/schemas/TurkishDriversLicenseDetailedDto"
              }
            ]
          },
          "passport": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Pasaporta ait detaylı bilgiler.",
                "$ref": "#/components/schemas/PassportDetailedDto"
              }
            ]
          },
          "blueCard": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Mavi karta ait detaylı bilgiler.",
                "$ref": "#/components/schemas/BlueCardDetailedDto"
              }
            ]
          },
          "foreignNational": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Yabancı uyruklu kimliğe ait detaylı bilgiler.",
                "$ref": "#/components/schemas/ForeignNationalDetailedDto"
              }
            ]
          },
          "declarationDocumentFile": {
            "description": "Beyan belgesi dosyası.",
            "$ref": "#/components/schemas/BlobFileDto"
          },
          "residenceDocumentFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İkametgah belgesi dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "customerTransactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DetailedCustomerTransactionDto"
            },
            "description": "Kimliğe bağlı cari işlemler."
          },
          "additionalDocuments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityVerificationAdditionalDocumentDto"
            },
            "description": "Kimliğe eklenen ek belgeler."
          },
          "livenessValidationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Canlılık doğrulamasının tamamlandığı zaman (UTC).",
            "format": "date-time"
          },
          "livenessPhotos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityVerificationLivenessPhotoDto"
            },
            "description": "Canlılık kontrolü fotoğrafları ve açı başına doğrulama sonuçları (Ön, Sol, Sağ sırasıyla)."
          },
          "id": {
            "type": "string",
            "description": "Kimlik doğrulama ID."
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydı oluşturan kullanıcı. Hızlı Kimlik Tespiti kanalından gelen kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "channel": {
            "enum": [
              "Staff",
              "SelfKyc"
            ],
            "type": "string"
          },
          "selfKycCode": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hızlı Kimlik Tespiti kanalından gelen kayıtlarda kullanılan referans kodu.",
                "$ref": "#/components/schemas/IdentityVerificationSelfKycCodeDto"
              }
            ]
          },
          "verificationMethod": {
            "description": "Kimlik doğrulamada kullanılan yöntem.",
            "$ref": "#/components/schemas/IdentityVerificationMethod"
          },
          "verificationPurpose": {
            "description": "Kimlik doğrulamanın amacı.",
            "$ref": "#/components/schemas/IdentityVerificationPurpose"
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "lastModificationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kaydın son değiştirilme zamanı.",
            "format": "date-time"
          },
          "firstName": {
            "type": "string",
            "description": "Kişinin adı."
          },
          "rawFirstName": {
            "type": "string",
            "description": "Kişinin belgeden okunan ham adı."
          },
          "lastName": {
            "type": "string",
            "description": "Kişinin soyadı."
          },
          "rawLastName": {
            "type": "string",
            "description": "Kişinin belgeden okunan ham soyadı."
          },
          "nationality": {
            "type": "string",
            "description": "Kişinin uyruğu."
          },
          "phoneNumber": {
            "type": "string",
            "description": "Kişinin telefon numarası."
          },
          "occupation": {
            "type": "string",
            "description": "Kişinin mesleği."
          },
          "birthDate": {
            "type": "string",
            "description": "Kişinin doğum tarihi.",
            "format": "date"
          },
          "description": {
            "type": "string",
            "description": "Kimlik doğrulamaya ait açıklama."
          },
          "gender": {
            "description": "Kişinin cinsiyeti.",
            "$ref": "#/components/schemas/Gender"
          },
          "province": {
            "description": "Kişinin adresinin bulunduğu il.",
            "$ref": "#/components/schemas/ProvinceDto"
          },
          "addressLine": {
            "type": "string",
            "description": "Kişinin adres satırı."
          },
          "tenant": {
            "description": "Kaydın ait olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "actingTenant": {
            "description": "Kimlik doğrulamayı gerçekleştiren tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "isDemo": {
            "type": "boolean",
            "description": "Kaydın demo verisi olup olmadığı."
          },
          "riskCategory": {
            "enum": [
              "None",
              "Low",
              "Medium",
              "High"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "riskScore": {
            "type": [
              "null",
              "number"
            ],
            "description": "Kişinin risk skoru.",
            "format": "double"
          },
          "sanctionsRiskScore": {
            "type": [
              "null",
              "number"
            ],
            "description": "Kişinin risk skoru (yerine RiskScore kullanılmalı).",
            "format": "double"
          },
          "sanctionsScreenTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yaptırım taramasının yapıldığı zaman.",
            "format": "date-time"
          },
          "identityType": {
            "description": "Kimlik doğrulamanın gerçek kişi mi tüzel kişi mi olduğu.",
            "$ref": "#/components/schemas/IdentityTypeDto"
          },
          "expirationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik doğrulamanın geçerlilik süresinin bittiği zaman.",
            "format": "date-time"
          },
          "taxNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şirketin vergi numarası."
          },
          "companyName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şirketin unvanı."
          },
          "placeOfBirth": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kişinin doğum yeri."
          },
          "sanctionMatches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SanctionedPersonMatchDto"
            },
            "description": "Yaptırım listeleriyle eşleşen kayıtlar."
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kişinin bağlı olduğu tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "livenessValidationStatus": {
            "enum": [
              "None",
              "Pending",
              "Completed"
            ],
            "type": "string"
          },
          "livenessWarnings": {
            "type": "array",
            "items": {
              "enum": [
                "FaceNotSimilar",
                "InvalidAngle",
                "SpoofCheckFailed",
                "NoFaceDetected",
                "MultipleFacesDetected",
                "DifferentPersonAcrossAngles"
              ],
              "type": "string"
            },
            "description": "Canlılık kontrolünde üretilen uyarılar. Uyarı yoksa ya da doğrulama tamamlanmadıysa boştur."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DetailedInvoiceDto": {
        "required": [
          "items",
          "taxes",
          "currencyRates",
          "bankAccountTransactions",
          "statusHistory",
          "inventoryItemMovements",
          "attachments",
          "id",
          "creationTime",
          "currency",
          "taxCurrency",
          "taxOffice",
          "issuerName",
          "issuerAddress",
          "status",
          "canDelete",
          "canPollStatus",
          "isDemo",
          "issuerIsCompany",
          "issuerTaxNumber",
          "recipientName",
          "recipientAddress",
          "recipientIsCompany",
          "recipientTaxNumber",
          "invoiceScenario",
          "invoiceType",
          "appModule",
          "tenant",
          "gross",
          "totalTax",
          "invoiceTemplates",
          "direction",
          "isRead",
          "isTransferredToAccounting"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceItemDto"
            },
            "description": "Fatura kalemleri."
          },
          "taxes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceTaxDto"
            },
            "description": "Fatura vergileri."
          },
          "currencyRates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceCurrencyRateDto"
            },
            "description": "Faturaya ait döviz kurları."
          },
          "bankAccountTransactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BasicBankAccountTransactionDto"
            },
            "description": "Faturaya bağlı banka hesabı hareketleri."
          },
          "statusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceStatusHistoryDto"
            },
            "description": "Fatura durum geçmişi."
          },
          "inventoryItemMovements": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/InventoryItemMovementDto"
            },
            "description": "Faturaya bağlı stok kalemi hareketleri."
          },
          "extraData": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "description": "Faturaya ait ek veriler."
          },
          "isNew": {
            "type": "boolean",
            "description": "Faturanın yeni oluşturulup oluşturulmadığı."
          },
          "invoiceResponseMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturaya verilen yanıt mesajı."
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceAttachmentDto"
            },
            "description": "Faturanın e-belge ekleri."
          },
          "id": {
            "type": "string",
            "description": "Fatura ETTN."
          },
          "creationTime": {
            "type": "string",
            "description": "Faturanın oluşturulma zamanı.",
            "format": "date-time"
          },
          "invoiceNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura numarası."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "taxCurrency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "issueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturanın düzenlenme zamanı.",
            "format": "date-time"
          },
          "invoiceNumberAssignmentTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura numarasının atandığı zaman.",
            "format": "date-time"
          },
          "taxOffice": {
            "type": "string",
            "description": "Fatura düzenleyicisinin vergi dairesi."
          },
          "issuerName": {
            "type": "string",
            "description": "Fatura düzenleyicisinin adı."
          },
          "issuerAddress": {
            "type": "string",
            "description": "Fatura düzenleyicisinin adresi."
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturayla ilgili hata mesajı."
          },
          "errorDetail": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturayla ilgili hatanın teknik detayı. Kts.Invoices.ViewErrorDetails yetkisini gerektirir."
          },
          "status": {
            "enum": [
              "Draft",
              "Pending",
              "Submitting",
              "Submitted",
              "Error",
              "SubmissionError",
              "SubmissionUnverified",
              "WaitingForConfirmation",
              "Confirming",
              "ConfirmationError",
              "Confirmed",
              "Rejecting",
              "RejectionError",
              "Rejected",
              "EInvoiceCancelled",
              "EArchiveCancelled"
            ],
            "type": "string"
          },
          "canDelete": {
            "type": "boolean",
            "description": "Faturanın silinebilir olup olmadığı. Silme işlemi ayrıca Kts.Invoices.Delete yetkisini gerektirir."
          },
          "canPollStatus": {
            "type": "boolean",
            "description": "Faturanın durumunun entegratörden elle yeniden sorgulanabilir olup olmadığı. Sorgu ayrıca Kts.Invoices.PollStatus yetkisini gerektirir."
          },
          "isDemo": {
            "type": "boolean",
            "description": "Faturanın demo veri olup olmadığı."
          },
          "issuerPhoneNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura düzenleyicisinin telefon numarası."
          },
          "issuerEmailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura düzenleyicisinin e-posta adresi."
          },
          "issuerIsCompany": {
            "type": "boolean",
            "description": "Fatura düzenleyicisinin şirket olup olmadığı."
          },
          "issuerTaxNumber": {
            "description": "Fatura düzenleyicisinin vergi kimlik numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "recipientName": {
            "type": "string",
            "description": "Fatura alıcısının adı."
          },
          "recipientAddress": {
            "type": "string",
            "description": "Fatura alıcısının adresi."
          },
          "recipientPhoneNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura alıcısının telefon numarası."
          },
          "recipientEmailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura alıcısının e-posta adresi."
          },
          "recipientIsCompany": {
            "type": "boolean",
            "description": "Fatura alıcısının şirket olup olmadığı."
          },
          "recipientTaxNumber": {
            "description": "Fatura alıcısının vergi kimlik numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "recipientTaxOffice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura alıcısının vergi dairesi."
          },
          "eDocumentType": {
            "enum": [
              "EInvoice",
              "EArchiveInvoice"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceScenario": {
            "enum": [
              "TemelFatura",
              "TicariFatura"
            ],
            "type": "string"
          },
          "invoiceType": {
            "enum": [
              "Satis",
              "Istisna",
              "OzelMatrah",
              "Iade"
            ],
            "type": "string"
          },
          "appModule": {
            "enum": [
              "GoldDealing",
              "StandardInvoicing"
            ],
            "type": "string"
          },
          "tenant": {
            "description": "Faturanın ait olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Faturayı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura açıklaması."
          },
          "gross": {
            "type": "number",
            "description": "Fatura toplam tutarı (KDV dahil).",
            "format": "double"
          },
          "totalTax": {
            "type": "number",
            "description": "Fatura toplam KDV tutarı.",
            "format": "double"
          },
          "invoiceTemplate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Faturada kullanılan şablon.",
                "$ref": "#/components/schemas/BasicInvoiceTemplateDto"
              }
            ]
          },
          "invoiceTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BasicInvoiceTemplateDto"
            },
            "description": "Faturada kullanılan şablon varyantları."
          },
          "issuerLegalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Fatura düzenleyicisinin bağlı olduğu tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "recipientLegalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Fatura alıcısının bağlı olduğu tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "appliedCurrencyRate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Faturaya uygulanan döviz kuru.",
                "$ref": "#/components/schemas/AppliedCurrencyRateDto"
              }
            ]
          },
          "direction": {
            "enum": [
              "Outgoing",
              "Incoming"
            ],
            "type": "string"
          },
          "isRead": {
            "type": "boolean",
            "description": "Faturanın okunup okunmadığı."
          },
          "isTransferredToAccounting": {
            "type": "boolean",
            "description": "Faturanın muhasebe programına aktarılıp aktarılmadığı."
          },
          "accountingTransferTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturanın muhasebe programına aktarıldığı zaman.",
            "format": "date-time"
          },
          "refundInvoice": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Faturaya ait iade faturası.",
                "$ref": "#/components/schemas/BasicInvoiceDto"
              }
            ]
          },
          "parentInvoice": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Faturanın bağlı olduğu ana fatura.",
                "$ref": "#/components/schemas/BasicInvoiceDto"
              }
            ]
          },
          "pdfFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Fatura PDF dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "ublFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Fatura UBL dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "hasCashboxRecord": {
            "type": "boolean",
            "description": "Faturaya bağlı canlı bir kasa hareketi olup olmadığı."
          },
          "paymentMethod": {
            "enum": [
              "Nakit",
              "Havale",
              "Pos"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "bankAccountTransactionCount": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Faturaya bağlı banka hesap hareketi sayısı. Yalnızca fatura listesi ve fatura detayı uç noktalarında doldurulur.",
            "format": "int32"
          },
          "bankAccountTransactionTotals": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/InvoiceBankAccountTransactionTotalDto"
            },
            "description": "Faturaya bağlı banka hesap hareketlerinin para birimi bazında toplamları. Yalnızca fatura listesi ve fatura detayı uç noktalarında doldurulur."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DetailedLegalEntityDto": {
        "required": [
          "tenant",
          "stats",
          "bankAccountInfos",
          "files",
          "id",
          "creationTime",
          "entityNumber",
          "isHidden",
          "coreBusiness",
          "isFinalCustomer"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "description": "Cari kaydının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "stats": {
            "description": "Cari kaydına ait istatistik bilgileri.",
            "$ref": "#/components/schemas/LegalEntityStatsDto"
          },
          "bankAccountInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankAccountInfoDto"
            },
            "description": "Cari kaydına ait banka hesap bilgileri."
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalEntityFileDto"
            },
            "description": "Cari kaydına ait dosyalar."
          },
          "cashbox": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Cariye bağlı manuel kasa kayıtlarının para birimi bazında pozisyonu. Kasa kayıtlarını listeleme yetkisi yoksa boştur.",
                "$ref": "#/components/schemas/LegalEntityCashboxSummaryDto"
              }
            ]
          },
          "custody": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Cariye ait açık emanetlerin tür, yön ve içerik bazında özeti. Emanetleri listeleme yetkisi yoksa veya istek bir tenant adına yapılmıyorsa boştur.",
                "$ref": "#/components/schemas/LegalEntityCustodySummaryDto"
              }
            ]
          },
          "recentActivity": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/LegalEntityActivityDto"
            },
            "description": "Cariye ait banka hareketi, fatura, gider pusulası ve müşteri işlemlerinden en yeniden eskiye sıralı son hareketler. Bu kaynakların hiçbirini listeleme yetkisi yoksa boştur."
          },
          "id": {
            "type": "string",
            "description": "Cari kaydının kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "lastModificationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kaydın son güncellenme zamanı.",
            "format": "date-time"
          },
          "entityNumber": {
            "description": "Cari kaydının TC kimlik veya vergi numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "fullName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının adı soyadı veya unvanı."
          },
          "taxOffice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının bağlı olduğu vergi dairesi."
          },
          "province": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Cari kaydının bağlı olduğu il.",
                "$ref": "#/components/schemas/ProvinceDto"
              }
            ]
          },
          "district": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Cari kaydının bağlı olduğu ilçe.",
                "$ref": "#/components/schemas/DistrictDto"
              }
            ]
          },
          "address": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının adres bilgisi."
          },
          "emailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının e-posta adresi."
          },
          "note": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydına ait not."
          },
          "customerAccountingCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının muhasebe programındaki müşteri cari hesap kodu."
          },
          "supplierAccountingCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının muhasebe programındaki tedarikçi hesap kodu."
          },
          "isHidden": {
            "type": "boolean",
            "description": "Cari kaydının gizlenip gizlenmediği."
          },
          "coreBusiness": {
            "type": "array",
            "items": {
              "enum": [
                "GoldDealing",
                "Staff"
              ],
              "type": "string"
            },
            "description": "Cari kaydının faaliyet alanları."
          },
          "isFinalCustomer": {
            "type": "boolean",
            "description": "Cari kaydının, değiştirilemeyen Nihai Müşteri kaydı olup olmadığı."
          }
        }
      },
      "DetailedPosAccountDto": {
        "required": [
          "id",
          "creationTime",
          "merchantNumber",
          "currency",
          "bank",
          "isDemo",
          "lastSynchronizationFailed",
          "tenant",
          "isSynchronizable"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesabı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "credentials": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Banka hesabı bağlantı bilgileri.",
                "$ref": "#/components/schemas/BasicBankAccountCredentialsDto"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "POS hesabının ID'si."
          },
          "creationTime": {
            "type": "string",
            "description": "POS hesabının oluşturulma zamanı.",
            "format": "date-time"
          },
          "merchantNumber": {
            "type": "string",
            "description": "Banka tarafından atanan üye işyeri numarası."
          },
          "merchantName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Üye işyeri adı."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          },
          "isDemo": {
            "type": "boolean",
            "description": "Hesabın demo (test) hesabı olup olmadığı."
          },
          "lastSynchronizationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Son senkronizasyon zamanı.",
            "format": "date-time"
          },
          "lastSynchronizationFailed": {
            "type": "boolean",
            "description": "Son senkronizasyonun başarısız olup olmadığı."
          },
          "synchronizationDisabledTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Senkronizasyonun devre dışı bırakıldığı zaman.",
            "format": "date-time"
          },
          "tenant": {
            "description": "POS hesabının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "isSynchronizable": {
            "type": "boolean",
            "description": "Hesabın senkronize edilebilir olup olmadığı."
          }
        }
      },
      "DetailedPosDeviceDto": {
        "required": [
          "publicKey",
          "id",
          "creationTime",
          "vendor",
          "serialNumber",
          "name",
          "isEnabled",
          "tenant"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "POS cihazını oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "publicKey": {
            "type": "string",
            "description": "POS cihazının genel anahtarı."
          },
          "id": {
            "type": "string",
            "description": "POS cihazı kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "POS cihazının oluşturulma zamanı.",
            "format": "date-time"
          },
          "vendor": {
            "enum": [
              "Pavo"
            ],
            "type": "string"
          },
          "serialNumber": {
            "type": "string",
            "description": "POS cihazı seri numarası."
          },
          "name": {
            "type": "string",
            "description": "POS cihazı adı."
          },
          "isEnabled": {
            "type": "boolean",
            "description": "POS cihazının etkin olup olmadığı."
          },
          "lastActivityTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "POS cihazının son aktivite zamanı.",
            "format": "date-time"
          },
          "tenant": {
            "description": "POS cihazının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "DetailedPosTransactionDto": {
        "required": [
          "id",
          "creationTime",
          "transactionTime",
          "transactionAmount",
          "currency",
          "type",
          "description",
          "merchantNumber",
          "merchantBlockNumber",
          "isDemo",
          "posAccount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Pos işlemi kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "transactionTime": {
            "type": "string",
            "description": "İşlemin gerçekleştiği zaman.",
            "format": "date-time"
          },
          "transactionAmount": {
            "type": "number",
            "description": "İşlem tutarı.",
            "format": "double"
          },
          "netAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Komisyon sonrası net tutar.",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "type": {
            "enum": [
              "Sale",
              "Refund"
            ],
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "İşlem açıklaması."
          },
          "transactionCodeDescription": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlem koduna ait açıklama."
          },
          "customerName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Müşterinin adı soyadı."
          },
          "merchantNumber": {
            "type": "string",
            "description": "Üye işyeri numarası."
          },
          "merchantName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Üye işyeri adı."
          },
          "customerNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Müşteri numarası."
          },
          "authorizationNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlem onay (otorizasyon) numarası."
          },
          "branchCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şube kodu."
          },
          "branchName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şube adı."
          },
          "entityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Müşteriye ait TC kimlik veya vergi numarası."
          },
          "maskedCardNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Maskelenmiş kart numarası."
          },
          "mcc": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşyeri faaliyet kodu (MCC)."
          },
          "terminalNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Pos terminal numarası."
          },
          "cardBrand": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kart markası."
          },
          "cardType": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kart tipi."
          },
          "installmentCount": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Taksit sayısı.",
            "format": "int32"
          },
          "installmentAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Taksit tutarı.",
            "format": "double"
          },
          "totalCommissionRate": {
            "type": [
              "null",
              "number"
            ],
            "description": "Toplam komisyon oranı (%).",
            "format": "double"
          },
          "totalCommissionAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Toplam komisyon tutarı.",
            "format": "double"
          },
          "totalCommissionBsmvAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Toplam komisyon BSMV tutarı.",
            "format": "double"
          },
          "merchantBlockNumber": {
            "type": "string",
            "description": "Üye işyeri blok numarası."
          },
          "batchNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Batch (parti) numarası."
          },
          "stan": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlem referans numarası (STAN)."
          },
          "blockedAccountSuffix": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bloke hesap son eki."
          },
          "merchantValueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Üye işyeri valör tarihi.",
            "format": "date-time"
          },
          "unblockTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Blokenin kalktığı zaman.",
            "format": "date-time"
          },
          "isDemo": {
            "type": "boolean",
            "description": "Kaydın demo veri olup olmadığı."
          },
          "posAccount": {
            "description": "İşlemin bağlı olduğu pos hesabı.",
            "$ref": "#/components/schemas/BasicPosAccountDto"
          },
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceDto"
            },
            "description": "İşleme bağlı faturalar."
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşlemin ait olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşlemi oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          }
        }
      },
      "DetailedReportDto": {
        "required": [
          "parameters",
          "id",
          "type",
          "status",
          "name",
          "creationTime"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Raporu oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Raporun ait olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "parameters": {
            "description": "Rapor oluşturulurken kullanılan parametreler.",
            "$ref": "#/components/schemas/JsonElement"
          },
          "result": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Rapor sonucu.",
                "$ref": "#/components/schemas/JsonElement"
              }
            ]
          },
          "excelFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Raporun Excel çıktısı dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Rapor oluşturulurken alınan hata mesajı."
          },
          "id": {
            "type": "string",
            "description": "Rapor kimliği."
          },
          "type": {
            "enum": [
              "InvoicesByTemplate",
              "InvoicesByTimePeriod",
              "InvoicesByDocumentType",
              "InvoicesByInvoiceType",
              "InvoicesByCurrency",
              "BankTransactionsByBank",
              "BankTransactionsByDirection",
              "BankTransactionsByRiskCategory",
              "BankTransactionsByTimePeriod",
              "BankTransactionsByCurrency",
              "IdentityVerificationsByMethod",
              "IdentityVerificationsByRiskLevel",
              "IdentityVerificationsByTimePeriod",
              "IdentityVerificationsByPurpose",
              "RiskAnalysisOverview",
              "GoldDealingInvoicesByFineness",
              "InventoryStockSnapshot",
              "InventoryMovementsByTimePeriod"
            ],
            "type": "string"
          },
          "status": {
            "enum": [
              "Pending",
              "Running",
              "Completed",
              "Failed"
            ],
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Raporun adı."
          },
          "creationTime": {
            "type": "string",
            "description": "Raporun oluşturulma zamanı.",
            "format": "date-time"
          },
          "startedTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Raporun oluşturulmaya başlandığı zaman.",
            "format": "date-time"
          },
          "completedTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Raporun tamamlandığı zaman.",
            "format": "date-time"
          }
        }
      },
      "DetailedRoleDto": {
        "required": [
          "permissions",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionDto"
            },
            "description": "Role atanmış yetkiler."
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Rolün bağlı olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "federation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Rolün bağlı olduğu federation.",
                "$ref": "#/components/schemas/BasicFederationDto"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "Rolün kimliği."
          },
          "name": {
            "type": "string",
            "description": "Rolün adı."
          }
        }
      },
      "DetailedTenantBranchDto": {
        "required": [
          "stats",
          "assignedRecordCount",
          "canDelete",
          "recentActivity",
          "users",
          "tenantId",
          "creationTime",
          "userCount",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "stats": {
            "description": "Şubenin seçilen tarih aralığındaki istatistikleri.",
            "$ref": "#/components/schemas/TenantBranchStatsDto"
          },
          "assignedRecordCount": {
            "type": "integer",
            "description": "Şubeye bağlı silinmemiş kayıtların toplam sayısı (silme kapısı).",
            "format": "int64"
          },
          "canDelete": {
            "type": "boolean",
            "description": "Şubenin silinip silinemeyeceği."
          },
          "deleteBlockedReason": {
            "enum": [
              "LastBranch",
              "HasAssignedData"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "recentActivity": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantBranchActivityDto"
            },
            "description": "Şubedeki son hareketler (en yeni önce, en çok 10)."
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantBranchUserDto"
            },
            "description": "Şubeye bağlı kullanıcılar (en çok 10)."
          },
          "tenantId": {
            "type": "string",
            "description": "Şubenin bağlı olduğu tenant kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Şubenin oluşturulma zamanı.",
            "format": "date-time"
          },
          "lastModificationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şubenin son güncellenme zamanı.",
            "format": "date-time"
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Şubeyi oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "userCount": {
            "type": "integer",
            "description": "Şubeye bağlı kullanıcı sayısı.",
            "format": "int32"
          },
          "id": {
            "type": "string",
            "description": "Şube kimliği."
          },
          "name": {
            "type": "string",
            "description": "Şube adı."
          }
        }
      },
      "DiscoverPosMerchantsInput": {
        "type": "object",
        "properties": {
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Keşfin yapılacağı tenant (host ve bayi hesapları için zorunlu, tenant hesapları için gerekmez).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "DistrictDto": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "İlçe ID'si."
          },
          "name": {
            "type": "string",
            "description": "İlçe adı."
          }
        }
      },
      "EVoucherBatchResultDto": {
        "required": [
          "processedIds",
          "skippedIds"
        ],
        "type": "object",
        "properties": {
          "processedIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "İşlenen belge ID'leri."
          },
          "skippedIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Atlanan belge ID'leri."
          }
        }
      },
      "EVoucherCargoCompanyDto": {
        "required": [
          "name",
          "taxNumber"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Kargo firması unvanı."
          },
          "taxNumber": {
            "type": "string",
            "description": "Kargo firması VKN."
          }
        }
      },
      "EVoucherCargoDto": {
        "required": [
          "companyName",
          "companyTaxNumber",
          "authorizationDocumentNumber"
        ],
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string",
            "description": "Kargo firması unvanı."
          },
          "companyTaxNumber": {
            "type": "string",
            "description": "Kargo firması VKN."
          },
          "authorizationDocumentNumber": {
            "type": "string",
            "description": "Kargo firması yetki belgesi numarası."
          }
        }
      },
      "EVoucherCargoInput": {
        "required": [
          "companyName",
          "companyTaxNumber",
          "authorizationDocumentNumber"
        ],
        "type": "object",
        "properties": {
          "companyName": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Kargo firması unvanı."
          },
          "companyTaxNumber": {
            "maxLength": 11,
            "minLength": 0,
            "type": "string",
            "description": "Kargo firması VKN."
          },
          "authorizationDocumentNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Kargo firması yetki belgesi numarası."
          }
        }
      },
      "EVoucherDto": {
        "required": [
          "id",
          "ettn",
          "type",
          "status",
          "issueTime",
          "creationTime",
          "customer",
          "verification",
          "currency",
          "lineExtensionAmount",
          "vatAmount",
          "taxInclusiveAmount",
          "withholdingAmount",
          "payableAmount",
          "integrator",
          "isIntegratorFallback",
          "hasDocument",
          "pdfReadiness",
          "bankTransactionIds"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "e-Gider Pusulası ID (ETTN)."
          },
          "number": {
            "type": [
              "null",
              "string"
            ],
            "description": "Belge numarası."
          },
          "ettn": {
            "type": "string",
            "description": "ETTN."
          },
          "type": {
            "enum": [
              "Satis",
              "Iade"
            ],
            "type": "string"
          },
          "status": {
            "enum": [
              "Queued",
              "Submitting",
              "Sent",
              "Signed",
              "ReportedToGib",
              "SubmissionError",
              "Error",
              "Cancelled"
            ],
            "type": "string"
          },
          "issueTime": {
            "type": "string",
            "description": "Belge tarihi.",
            "format": "date-time"
          },
          "creationTime": {
            "type": "string",
            "description": "Kayıt zamanı.",
            "format": "date-time"
          },
          "customer": {
            "description": "Alıcı (satıcı veya iadede orijinal alıcı).",
            "$ref": "#/components/schemas/EVoucherPartyDto"
          },
          "returner": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Alıcıdan farklı iade eden kişi.",
                "$ref": "#/components/schemas/EVoucherPartyDto"
              }
            ]
          },
          "verification": {
            "description": "Doğrulama bilgileri.",
            "$ref": "#/components/schemas/EVoucherVerificationDto"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "lineExtensionAmount": {
            "type": "number",
            "description": "Mal/hizmet toplamı.",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "description": "KDV toplamı.",
            "format": "double"
          },
          "taxInclusiveAmount": {
            "type": "number",
            "description": "Vergiler dahil toplam.",
            "format": "double"
          },
          "withholdingAmount": {
            "type": "number",
            "description": "Stopaj toplamı.",
            "format": "double"
          },
          "payableAmount": {
            "type": "number",
            "description": "Ödenecek tutar.",
            "format": "double"
          },
          "integrator": {
            "enum": [
              "Izibiz",
              "TurkcellESirket",
              "Uyumsoft",
              "Demo"
            ],
            "type": "string"
          },
          "isIntegratorFallback": {
            "type": "boolean",
            "description": "Ana entegratör yerine yedek hesap kullanıldı mı."
          },
          "errorCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hata kodu."
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hata mesajı."
          },
          "hasDocument": {
            "type": "boolean",
            "description": "Belge görüntülenebilir mi."
          },
          "pdfReadiness": {
            "enum": [
              "ready",
              "preparing",
              "unavailable"
            ],
            "type": "string"
          },
          "nextStatusCheckTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Planlanan bir sonraki durum sorgusu zamanı.",
            "format": "date-time"
          },
          "bankTransactionId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bağlı ilk banka hareketi ID."
          },
          "bankTransactionIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Bağlı banka hareketi ID'leri."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "EVoucherIdsInput": {
        "required": [
          "ids"
        ],
        "type": "object",
        "properties": {
          "ids": {
            "maxItems": 200,
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "e-Gider Pusulası ID'leri."
          }
        }
      },
      "EVoucherIssuerDto": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Düzenleyen unvanı."
          },
          "taxNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Düzenleyen VKN/TCKN."
          },
          "taxOffice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Düzenleyen vergi dairesi."
          },
          "address": {
            "type": [
              "null",
              "string"
            ],
            "description": "Düzenleyen adresi."
          }
        }
      },
      "EVoucherLineDto": {
        "required": [
          "id",
          "name",
          "quantity",
          "unit",
          "unitPrice",
          "vatRate",
          "withholdingRate",
          "lineExtensionAmount",
          "vatAmount",
          "withholdingAmount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Kalem ID."
          },
          "name": {
            "type": "string",
            "description": "Mal veya hizmet adı."
          },
          "quantity": {
            "type": "number",
            "description": "Miktar.",
            "format": "double"
          },
          "unit": {
            "enum": [
              "Gram",
              "Piece"
            ],
            "type": "string"
          },
          "unitPrice": {
            "type": "number",
            "description": "Birim fiyat.",
            "format": "double"
          },
          "vatRate": {
            "type": "number",
            "description": "KDV oranı (%).",
            "format": "double"
          },
          "withholdingRate": {
            "type": "number",
            "description": "Gelir vergisi stopaj oranı (%): 0, 2, 5 veya 10.",
            "format": "double"
          },
          "accountingCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Muhasebe kodu."
          },
          "lineExtensionAmount": {
            "type": "number",
            "description": "Kalem tutarı (KDV hariç).",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "description": "KDV tutarı.",
            "format": "double"
          },
          "withholdingAmount": {
            "type": "number",
            "description": "Stopaj tutarı.",
            "format": "double"
          }
        }
      },
      "EVoucherLineInput": {
        "required": [
          "name",
          "quantity",
          "unit",
          "unitPrice",
          "vatRate",
          "withholdingRate"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Mal veya hizmet adı."
          },
          "quantity": {
            "type": "number",
            "description": "Miktar.",
            "format": "double"
          },
          "unit": {
            "enum": [
              "Gram",
              "Piece"
            ],
            "type": "string"
          },
          "unitPrice": {
            "type": "number",
            "description": "Birim fiyat.",
            "format": "double"
          },
          "vatRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "description": "KDV oranı (%).",
            "format": "double"
          },
          "withholdingRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "description": "Gelir vergisi stopaj oranı (%): 0, 2, 5 veya 10. Sayı veya sayısal metin kabul edilir.",
            "format": "double"
          },
          "accountingCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Muhasebe kodu."
          }
        }
      },
      "EVoucherNextNumberDto": {
        "required": [
          "series",
          "nextNumber"
        ],
        "type": "object",
        "properties": {
          "series": {
            "type": "string",
            "description": "Seri."
          },
          "nextNumber": {
            "type": "string",
            "description": "Tahmini sıradaki numara."
          }
        }
      },
      "EVoucherPartyDto": {
        "required": [
          "identifier",
          "identifierScheme",
          "firstName",
          "lastName",
          "address",
          "district",
          "city"
        ],
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "T.C. kimlik veya vergi kimlik numarası."
          },
          "identifierScheme": {
            "enum": [
              "TCKN",
              "VKN"
            ],
            "type": "string"
          },
          "firstName": {
            "type": "string",
            "description": "Ad."
          },
          "lastName": {
            "type": "string",
            "description": "Soyad."
          },
          "address": {
            "type": "string",
            "description": "Adres."
          },
          "district": {
            "type": "string",
            "description": "İlçe."
          },
          "city": {
            "type": "string",
            "description": "İl."
          },
          "phone": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cep telefonu."
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Eşleşen cari kaydı.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          }
        }
      },
      "EVoucherPartyInput": {
        "required": [
          "identifier",
          "firstName",
          "lastName",
          "address",
          "district",
          "city"
        ],
        "type": "object",
        "properties": {
          "identifier": {
            "maxLength": 11,
            "minLength": 0,
            "type": "string",
            "description": "T.C. kimlik (11 hane) veya vergi kimlik (10 hane) numarası."
          },
          "firstName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Ad."
          },
          "lastName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Soyad."
          },
          "address": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string",
            "description": "Adres."
          },
          "district": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "İlçe."
          },
          "city": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "İl."
          },
          "phone": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Cep telefonu."
          }
        }
      },
      "EVoucherPreviewPartyInput": {
        "type": "object",
        "properties": {
          "identifier": {
            "maxLength": 11,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "T.C. kimlik (11 hane) veya vergi kimlik (10 hane) numarası. Boş veya geçersizse önizlemede olduğu gibi gösterilir."
          },
          "firstName": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Ad."
          },
          "lastName": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Soyad."
          },
          "address": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Adres."
          },
          "district": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "İlçe."
          },
          "city": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "İl."
          },
          "phone": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Cep telefonu."
          }
        }
      },
      "EVoucherReturnReferenceDto": {
        "required": [
          "type",
          "issueDate"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "EArchiveInvoice",
              "SalesReceipt",
              "None"
            ],
            "type": "string"
          },
          "documentNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "İade belge numarası."
          },
          "issueDate": {
            "type": "string",
            "description": "İade belge tarihi.",
            "format": "date"
          },
          "invoiceId": {
            "type": [
              "null",
              "string"
            ],
            "description": "İade edilen e-Arşiv fatura ID."
          }
        }
      },
      "EVoucherReturnReferenceInput": {
        "required": [
          "type",
          "issueDate"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "EArchiveInvoice",
              "SalesReceipt",
              "None"
            ],
            "type": "string"
          },
          "documentNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "İade belge numarası."
          },
          "issueDate": {
            "type": "string",
            "description": "İade belge tarihi (YYYY-MM-DD).",
            "format": "date"
          },
          "invoiceId": {
            "type": [
              "null",
              "string"
            ],
            "description": "İade edilen e-Arşiv fatura ID.",
            "format": "uuid"
          }
        }
      },
      "EVoucherSmsHistoryItemDto": {
        "required": [
          "id",
          "eVoucherId",
          "time",
          "phone",
          "provider",
          "chainStep",
          "outcome",
          "triggeredBy"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "SMS kayıt ID."
          },
          "eVoucherId": {
            "type": "string",
            "description": "İlgili e-Gider Pusulası ID."
          },
          "verificationId": {
            "type": [
              "null",
              "string"
            ],
            "description": "SMS'in ait olduğu doğrulama isteğinin ID'si."
          },
          "time": {
            "type": "string",
            "description": "Deneme zamanı.",
            "format": "date-time"
          },
          "phone": {
            "type": "string",
            "description": "Maskelenmiş cep telefonu."
          },
          "provider": {
            "enum": [
              "Netgsm",
              "Verimor"
            ],
            "type": "string"
          },
          "originator": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gönderici başlığı."
          },
          "chainStep": {
            "enum": [
              "TenantNetgsm",
              "PlatformNetgsm",
              "Verimor"
            ],
            "type": "string"
          },
          "outcome": {
            "enum": [
              "Sent",
              "Failed"
            ],
            "type": "string"
          },
          "error": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hata açıklaması."
          },
          "triggeredBy": {
            "enum": [
              "Automatic",
              "ManualResend",
              "VerificationRequest"
            ],
            "type": "string"
          },
          "triggeredByUserName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gönderimi başlatan kullanıcının adı."
          }
        }
      },
      "EVoucherStatusHistoryItemDto": {
        "required": [
          "event",
          "time"
        ],
        "type": "object",
        "properties": {
          "event": {
            "enum": [
              "Queued",
              "Submitting",
              "Sent",
              "Signed",
              "ReportedToGib",
              "SubmissionError",
              "Error",
              "Cancelled",
              "CodeReceived",
              "SmsSent",
              "SmsFailed"
            ],
            "type": "string"
          },
          "time": {
            "type": "string",
            "description": "Olay zamanı.",
            "format": "date-time"
          }
        }
      },
      "EVoucherTotalsDto": {
        "required": [
          "count",
          "payableAmount",
          "withholdingAmount"
        ],
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Belge sayısı (iptaller hariç).",
            "format": "int64"
          },
          "payableAmount": {
            "type": "number",
            "description": "Ödenecek toplam (iptaller hariç).",
            "format": "double"
          },
          "withholdingAmount": {
            "type": "number",
            "description": "Stopaj toplamı (iptaller hariç).",
            "format": "double"
          }
        }
      },
      "EVoucherVerificationCodeDto": {
        "required": [
          "verificationId",
          "maskedPhone",
          "expiresAt",
          "resendAvailableAt"
        ],
        "type": "object",
        "properties": {
          "verificationId": {
            "type": "string",
            "description": "Doğrulama isteği ID. Kod doğrulanırken gönderilir."
          },
          "maskedPhone": {
            "type": "string",
            "description": "Maskelenmiş telefon numarası."
          },
          "expiresAt": {
            "type": "string",
            "description": "Kodun geçerliliğinin bittiği zaman (UTC).",
            "format": "date-time"
          },
          "resendAvailableAt": {
            "type": "string",
            "description": "Aynı telefona yeniden kod gönderilebilecek en erken zaman (UTC).",
            "format": "date-time"
          }
        }
      },
      "EVoucherVerificationDto": {
        "required": [
          "method",
          "providerName",
          "providerTaxNumber",
          "smsStatus"
        ],
        "type": "object",
        "properties": {
          "method": {
            "enum": [
              "SmsCode",
              "ReturnCode"
            ],
            "type": "string"
          },
          "providerName": {
            "type": "string",
            "description": "Doğrulama sağlayıcısının adı."
          },
          "providerTaxNumber": {
            "type": "string",
            "description": "Doğrulama sağlayıcısının VKN değeri."
          },
          "phone": {
            "type": [
              "null",
              "string"
            ],
            "description": "Doğrulanan kişinin cep telefonu."
          },
          "returnCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "İade kodu ile doğrulamada girilen iade kodu. SMS ile doğrulamada boştur; SMS kodu hiçbir yanıtta yer almaz."
          },
          "smsStatus": {
            "enum": [
              "NotRequired",
              "Pending",
              "Sent",
              "Failed"
            ],
            "type": "string"
          },
          "smsSentTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "SMS gönderim zamanı.",
            "format": "date-time"
          },
          "smsProvider": {
            "enum": [
              "Netgsm",
              "Verimor"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "smsError": {
            "type": [
              "null",
              "string"
            ],
            "description": "Son SMS hatası."
          }
        }
      },
      "EVoucherVerificationInput": {
        "required": [
          "method"
        ],
        "type": "object",
        "properties": {
          "method": {
            "enum": [
              "SmsCode",
              "ReturnCode"
            ],
            "type": "string"
          },
          "phone": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "SMS ile doğrulamada kodun doğrulandığı telefon. Belgedeki doğrulanan kişinin (iade eden ya da alıcı) telefonuyla aynı olmalıdır."
          },
          "verificationToken": {
            "maxLength": 64,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "SMS ile doğrulamada /api/e-vouchers/verification-codes/verify yanıtındaki tek kullanımlık belirteç."
          },
          "returnCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "İade kodu ile doğrulamada iade platformundan veya müşteriden alınan iade kodu."
          }
        }
      },
      "EVoucherVerificationProviderDto": {
        "required": [
          "method",
          "name",
          "taxNumber"
        ],
        "type": "object",
        "properties": {
          "method": {
            "enum": [
              "SmsCode",
              "ReturnCode"
            ],
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Sağlayıcı adı."
          },
          "taxNumber": {
            "type": "string",
            "description": "Sağlayıcı VKN."
          }
        }
      },
      "EVoucherVerificationTokenDto": {
        "required": [
          "verificationToken",
          "expiresAt"
        ],
        "type": "object",
        "properties": {
          "verificationToken": {
            "type": "string",
            "description": "e-Gider Pusulası oluştururken verification.verificationToken olarak gönderilecek tek kullanımlık belirteç."
          },
          "expiresAt": {
            "type": "string",
            "description": "Belirtecin geçerliliğinin bittiği zaman (UTC).",
            "format": "date-time"
          }
        }
      },
      "ExcelColumnFormatOptionDto": {
        "required": [
          "key",
          "label"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Seçenek kodu."
          },
          "label": {
            "type": "string",
            "description": "Seçeneğin kullanıcıya gösterilen adı."
          }
        }
      },
      "ExcelExportColumnDto": {
        "required": [
          "key",
          "header",
          "order",
          "isVisible"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Sütun anahtarı."
          },
          "header": {
            "type": "string",
            "description": "Sütun başlığı."
          },
          "order": {
            "type": "integer",
            "description": "Sütun sırası.",
            "format": "int32"
          },
          "isVisible": {
            "type": "boolean",
            "description": "Sütun görünür mü?"
          },
          "format": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sütun formatı (ör: DotSeparatedDateTime, ThousandsSeparated2Decimals)."
          },
          "width": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sütun genişliği (ör: Narrow, Medium, Wide, ExtraWide)."
          },
          "alignment": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yatay hizalama (ör: Left, Center, Right)."
          },
          "bold": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Kalın yazı tipi."
          },
          "availableFormats": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExcelColumnFormatOptionDto"
            },
            "description": "Seçilebilecek format seçenekleri."
          },
          "availableWidths": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExcelColumnFormatOptionDto"
            },
            "description": "Seçilebilecek genişlik seçenekleri."
          },
          "availableAlignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExcelColumnFormatOptionDto"
            },
            "description": "Seçilebilecek hizalama seçenekleri."
          }
        }
      },
      "ExcelExportSettingDto": {
        "required": [
          "columns",
          "supportsNegativeOutgoingAmounts",
          "negativeOutgoingAmounts"
        ],
        "type": "object",
        "properties": {
          "columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExcelExportColumnDto"
            },
            "description": "Excel dışa aktarma sütun ayarları."
          },
          "metadata": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Ek ayarlar (JSON).",
                "$ref": "#/components/schemas/JsonElement"
              }
            ]
          },
          "supportsNegativeOutgoingAmounts": {
            "type": "boolean",
            "description": "Bu dışa aktarma türünde para çıkışı tutarlarının eksi yazılması ayarlanabilir mi?"
          },
          "negativeOutgoingAmounts": {
            "type": "boolean",
            "description": "Para çıkışı olan kayıtların tutarları Excel'e eksi (-) olarak yazılır."
          }
        }
      },
      "ExpenseBillDeletionDto": {
        "required": [
          "deletedCount",
          "shiftedCount"
        ],
        "type": "object",
        "properties": {
          "deletedCount": {
            "type": "integer",
            "description": "Silinen gider pusulası sayısı.",
            "format": "int32"
          },
          "shiftedCount": {
            "type": "integer",
            "description": "Silme sonrası sıra numarası bir geri alınan gider pusulası sayısı.",
            "format": "int32"
          }
        }
      },
      "ExpenseBillDto": {
        "required": [
          "id",
          "creationTime",
          "issueTime",
          "supplierName",
          "supplierAddressLine",
          "supplierTaxNumber",
          "index",
          "description",
          "gross",
          "downloadCount",
          "isTransferredToAccounting",
          "inventoryTransferStatus",
          "tenant"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gider pusulası kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "issueTime": {
            "type": "string",
            "description": "Gider pusulasının düzenlenme tarihi.",
            "format": "date-time"
          },
          "supplierName": {
            "type": "string",
            "description": "Tedarikçi adı."
          },
          "supplierAddressLine": {
            "type": "string",
            "description": "Tedarikçi adres bilgisi."
          },
          "supplierTaxNumber": {
            "description": "Tedarikçi vergi numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "index": {
            "type": "integer",
            "description": "Gider pusulası sıra numarası.",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "description": "Gider pusulası açıklaması."
          },
          "gross": {
            "type": "number",
            "description": "Gider pusulası toplam tutarı (KDV dahil).",
            "format": "double"
          },
          "downloadCount": {
            "type": "integer",
            "description": "Gider pusulasının indirilme sayısı.",
            "format": "int32"
          },
          "isTransferredToAccounting": {
            "type": "boolean",
            "description": "Gider pusulasının muhasebe programına aktarılıp aktarılmadığı."
          },
          "accountingTransferTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gider pusulasının muhasebe programına aktarıldığı zaman.",
            "format": "date-time"
          },
          "inventoryTransferStatus": {
            "enum": [
              "NotTransferred",
              "PartiallyTransferred",
              "Transferred"
            ],
            "type": "string"
          },
          "tenant": {
            "description": "Gider pusulasının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "template": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gider pusulasının oluşturulduğu şablon.",
                "$ref": "#/components/schemas/BasicExpenseBillTemplateDto"
              }
            ]
          },
          "pdfFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gider pusulası PDF dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "previewPdfFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gider pusulası önizleme PDF dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gider pusulasının bağlı olduğu tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "appliedCurrencyRate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gider pusulasına uygulanan döviz kuru.",
                "$ref": "#/components/schemas/AppliedCurrencyRateDto"
              }
            ]
          },
          "hasCashboxRecord": {
            "type": "boolean",
            "description": "Gider pusulasına bağlı canlı bir kasa hareketi olup olmadığı."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "ExpenseBillIndexShiftDto": {
        "required": [
          "fromIndex",
          "toIndex",
          "delta",
          "affectedCount"
        ],
        "type": "object",
        "properties": {
          "fromIndex": {
            "type": "integer",
            "description": "Kaydırmanın başladığı sıra numarası. Bu numaraya sahip ve sonrasındaki tüm gider pusulaları kaydırılmıştır.",
            "format": "int32"
          },
          "toIndex": {
            "type": "integer",
            "description": "Kaydırma sonrası gider pusulasının sıra numarası.",
            "format": "int32"
          },
          "delta": {
            "type": "integer",
            "description": "Sıra numaralarına eklenen değer. Negatif ise sıra numaraları küçültülmüştür.",
            "format": "int32"
          },
          "affectedCount": {
            "type": "integer",
            "description": "Sıra numarası değişen gider pusulası sayısı.",
            "format": "int32"
          }
        }
      },
      "ExpenseBillItemDto": {
        "required": [
          "id",
          "name",
          "sortIndex",
          "unitPrice",
          "vatRate",
          "vatAmount",
          "gross",
          "quantity",
          "unit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Kalem kimliği."
          },
          "name": {
            "type": "string",
            "description": "Kalem adı."
          },
          "sortIndex": {
            "type": "integer",
            "description": "Kalemin sıralama numarası.",
            "format": "int32"
          },
          "unitPrice": {
            "type": "number",
            "description": "Kalem birim fiyatı.",
            "format": "double"
          },
          "vatRate": {
            "type": "number",
            "description": "Kalem KDV oranı (%).",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "description": "Kalem KDV tutarı.",
            "format": "double"
          },
          "gross": {
            "type": "number",
            "description": "Kalem toplam tutarı (KDV dahil).",
            "format": "double"
          },
          "quantity": {
            "type": "number",
            "description": "Kalem miktarı.",
            "format": "double"
          },
          "unit": {
            "enum": [
              "Gr",
              "Item"
            ],
            "type": "string"
          },
          "inventoryProduct": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kalemin eşleştirildiği envanter ürünü. Null ise kalem stoğa aktarılmamıştır.",
                "$ref": "#/components/schemas/BasicInventoryProductDto"
              }
            ]
          }
        }
      },
      "ExpenseBillNextIndexDto": {
        "required": [
          "nextIndex"
        ],
        "type": "object",
        "properties": {
          "nextIndex": {
            "type": "integer",
            "description": "Bir sonraki gider pusulası sıra numarası.",
            "format": "int32"
          }
        }
      },
      "ExternalAccountCreditTransactionDto": {
        "required": [
          "id",
          "creationTime",
          "creditType",
          "amount",
          "balance"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Kontör hareketinin ID'si."
          },
          "creationTime": {
            "type": "string",
            "description": "Hareketin oluşturulma zamanı.",
            "format": "date-time"
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hareketi oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "creditType": {
            "enum": [
              "PendingCredits",
              "RemainingCredits"
            ],
            "type": "string"
          },
          "amount": {
            "type": "integer",
            "description": "Hareket edilen kontör miktarı.",
            "format": "int32"
          },
          "balance": {
            "type": "integer",
            "description": "Hareket sonrasındaki kontör bakiyesi.",
            "format": "int32"
          }
        }
      },
      "ExternalAccountDto": {
        "required": [
          "id",
          "creationTime",
          "tenant",
          "name",
          "accountType",
          "isSynchronizationEnabled",
          "totalAvailableCredits"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Harici hesabın ID'si."
          },
          "creationTime": {
            "type": "string",
            "description": "Hesabın oluşturulma zamanı.",
            "format": "date-time"
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesabı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "description": "Hesabın bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "name": {
            "type": "string",
            "description": "Hesap adı."
          },
          "accountType": {
            "enum": [
              "Izibiz",
              "Netgsm",
              "TurkcellESirket",
              "Uyumsoft"
            ],
            "type": "string"
          },
          "isSynchronizationEnabled": {
            "type": "boolean",
            "description": "Hesap için otomatik senkronizasyonun etkin olup olmadığı."
          },
          "usedCredits": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Kts.ExternalAccounts.ViewCreditBreakdown yetkisini gerektirir.",
            "format": "int32"
          },
          "remainingCredits": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Kts.ExternalAccounts.ViewCreditBreakdown yetkisini gerektirir.",
            "format": "int32"
          },
          "pendingCredits": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Kts.ExternalAccounts.ViewCreditBreakdown yetkisini gerektirir.",
            "format": "int32"
          },
          "totalAvailableCredits": {
            "type": "integer",
            "description": "Toplam kullanılabilir kontör sayısı.",
            "format": "int32"
          }
        }
      },
      "FailedDraftInvoiceDto": {
        "required": [
          "invoiceId",
          "errorMessage"
        ],
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "Resmileştirilemeyen faturanın ID'si."
          },
          "errorMessage": {
            "type": "string",
            "description": "Resmileştirme sırasında oluşan hata mesajı."
          }
        }
      },
      "ForeignNationalDetailedDto": {
        "required": [
          "documentType",
          "documentNumber",
          "nationality",
          "placeOfBirth"
        ],
        "type": "object",
        "properties": {
          "documentType": {
            "enum": [
              "Passport",
              "IdentityCard",
              "DriversLicense",
              "ResidencePermit",
              "Other"
            ],
            "type": "string"
          },
          "documentNumber": {
            "type": "string",
            "description": "Yabancı kimlik belgesi numarası."
          },
          "nationality": {
            "type": "string",
            "description": "Kişinin uyruğu."
          },
          "placeOfBirth": {
            "type": "string",
            "description": "Kişinin doğum yeri."
          },
          "expiryDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Belgenin son geçerlilik tarihi.",
            "format": "date"
          },
          "nationalIdentityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kişinin varsa T.C. kimlik numarası."
          }
        }
      },
      "ForeignNationalDto": {
        "required": [
          "documentType",
          "documentNumber",
          "nationality"
        ],
        "type": "object",
        "properties": {
          "documentType": {
            "enum": [
              "Passport",
              "IdentityCard",
              "DriversLicense",
              "ResidencePermit",
              "Other"
            ],
            "type": "string"
          },
          "documentNumber": {
            "type": "string",
            "description": "Yabancı kimlik belgesi numarası."
          },
          "nationality": {
            "type": "string",
            "description": "Kişinin uyruğu."
          }
        }
      },
      "Gender": {
        "enum": [
          "Male",
          "Female"
        ]
      },
      "GoldDealingWholesalerDto": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Toptancı tenant kimliği."
          },
          "name": {
            "type": "string",
            "description": "Toptancı tenant adı."
          }
        }
      },
      "GoldDealingWholesalerTenantDto": {
        "required": [
          "id",
          "creationTime",
          "wholesaler",
          "tenant"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Bağlantı kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Bağlantının kurulma zamanı.",
            "format": "date-time"
          },
          "wholesaler": {
            "description": "Bağlantının toptancı tarafı.",
            "$ref": "#/components/schemas/GoldDealingWholesalerDto"
          },
          "tenant": {
            "description": "Toptancıya bağlı kuyumcu tenant.",
            "$ref": "#/components/schemas/TenantDto"
          }
        }
      },
      "GoldDealingWholesalerTenantLinkRequestDto": {
        "required": [
          "id",
          "wholesaler",
          "companyName",
          "taxNumber",
          "creationTime",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Bağlantı talebi kimliği."
          },
          "wholesaler": {
            "description": "Talebi oluşturan toptancı.",
            "$ref": "#/components/schemas/GoldDealingWholesalerDto"
          },
          "companyName": {
            "type": "string",
            "description": "Bağlantı kurulmak istenen firmanın unvanı."
          },
          "taxNumber": {
            "description": "Bağlantı kurulmak istenen firmanın vergi numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "creationTime": {
            "type": "string",
            "description": "Talebin oluşturulma zamanı.",
            "format": "date-time"
          },
          "status": {
            "enum": [
              "Pending",
              "Approved",
              "Rejected"
            ],
            "type": "string"
          },
          "internalNote": {
            "type": [
              "null",
              "string"
            ],
            "description": "Talebe ait dahili not."
          },
          "tenants": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TenantDto"
            },
            "description": "Talepteki vergi numarasına karşılık gelen tenant'lar. Vergi numarası bilinmiyorsa boş döner."
          }
        }
      },
      "GoldDealingWholesalerTenantLinkRequestEntryInput": {
        "required": [
          "taxNumber",
          "companyName"
        ],
        "type": "object",
        "properties": {
          "taxNumber": {
            "maxLength": 11,
            "minLength": 6,
            "type": "string",
            "description": "Bağlantı kurulmak istenen firmanın vergi numarası. Sistemde kayıtlı olmak zorunda değildir."
          },
          "companyName": {
            "maxLength": 150,
            "minLength": 0,
            "type": "string",
            "description": "Bağlantı kurulmak istenen firmanın unvanı."
          }
        }
      },
      "GoldProductRateDto": {
        "required": [
          "code",
          "displayName",
          "buying",
          "selling",
          "change",
          "change24h"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "buying": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "selling": {
            "type": "number",
            "format": "double"
          },
          "change": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "change24h": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          }
        }
      },
      "IdentityTypeDto": {
        "enum": [
          "Person",
          "Company"
        ]
      },
      "IdentityVerificationAdditionalDocumentDto": {
        "required": [
          "id",
          "creationTime",
          "documentFile",
          "documentType"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Ek belgenin benzersiz kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Belgenin yüklenme zamanı.",
            "format": "date-time"
          },
          "documentFile": {
            "description": "Belge dosyası.",
            "$ref": "#/components/schemas/BlobFileDto"
          },
          "documentType": {
            "enum": [
              "CertificateOfCommencement",
              "TaxPlate",
              "CertificateOfActivity",
              "SignatureCircular",
              "TradeRegistryGazette",
              "Other"
            ],
            "type": "string"
          }
        }
      },
      "IdentityVerificationDto": {
        "required": [
          "id",
          "channel",
          "verificationMethod",
          "verificationPurpose",
          "creationTime",
          "firstName",
          "rawFirstName",
          "lastName",
          "rawLastName",
          "nationality",
          "phoneNumber",
          "occupation",
          "birthDate",
          "description",
          "gender",
          "province",
          "addressLine",
          "tenant",
          "actingTenant",
          "isDemo",
          "identityType",
          "livenessValidationStatus",
          "livenessWarnings"
        ],
        "type": "object",
        "properties": {
          "identityCard": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "T.C. kimlik kartı bilgileri.",
                "$ref": "#/components/schemas/TurkishIdentityCardDto"
              }
            ]
          },
          "driversLicense": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "T.C. sürücü belgesi bilgileri.",
                "$ref": "#/components/schemas/TurkishDriversLicenseDto"
              }
            ]
          },
          "passport": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Pasaport bilgileri.",
                "$ref": "#/components/schemas/PassportDto"
              }
            ]
          },
          "blueCard": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Mavi kart bilgileri.",
                "$ref": "#/components/schemas/BlueCardDto"
              }
            ]
          },
          "foreignNational": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Yabancı uyruklu kimlik bilgileri.",
                "$ref": "#/components/schemas/ForeignNationalDto"
              }
            ]
          },
          "customerTransactionCount": {
            "type": "integer",
            "description": "Kimliğe bağlı müşteri işlemi sayısı (yerine CustomerTransactions kullanılmalı).",
            "format": "int32"
          },
          "customerTransactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BasicCustomerTransactionDto"
            },
            "description": "Kimliğe bağlı müşteri işlemleri."
          },
          "id": {
            "type": "string",
            "description": "Kimlik doğrulama ID."
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydı oluşturan kullanıcı. Hızlı Kimlik Tespiti kanalından gelen kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "channel": {
            "enum": [
              "Staff",
              "SelfKyc"
            ],
            "type": "string"
          },
          "selfKycCode": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hızlı Kimlik Tespiti kanalından gelen kayıtlarda kullanılan referans kodu.",
                "$ref": "#/components/schemas/IdentityVerificationSelfKycCodeDto"
              }
            ]
          },
          "verificationMethod": {
            "description": "Kimlik doğrulamada kullanılan yöntem.",
            "$ref": "#/components/schemas/IdentityVerificationMethod"
          },
          "verificationPurpose": {
            "description": "Kimlik doğrulamanın amacı.",
            "$ref": "#/components/schemas/IdentityVerificationPurpose"
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "lastModificationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kaydın son değiştirilme zamanı.",
            "format": "date-time"
          },
          "firstName": {
            "type": "string",
            "description": "Kişinin adı."
          },
          "rawFirstName": {
            "type": "string",
            "description": "Kişinin belgeden okunan ham adı."
          },
          "lastName": {
            "type": "string",
            "description": "Kişinin soyadı."
          },
          "rawLastName": {
            "type": "string",
            "description": "Kişinin belgeden okunan ham soyadı."
          },
          "nationality": {
            "type": "string",
            "description": "Kişinin uyruğu."
          },
          "phoneNumber": {
            "type": "string",
            "description": "Kişinin telefon numarası."
          },
          "occupation": {
            "type": "string",
            "description": "Kişinin mesleği."
          },
          "birthDate": {
            "type": "string",
            "description": "Kişinin doğum tarihi.",
            "format": "date"
          },
          "description": {
            "type": "string",
            "description": "Kimlik doğrulamaya ait açıklama."
          },
          "gender": {
            "description": "Kişinin cinsiyeti.",
            "$ref": "#/components/schemas/Gender"
          },
          "province": {
            "description": "Kişinin adresinin bulunduğu il.",
            "$ref": "#/components/schemas/ProvinceDto"
          },
          "addressLine": {
            "type": "string",
            "description": "Kişinin adres satırı."
          },
          "tenant": {
            "description": "Kaydın ait olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "actingTenant": {
            "description": "Kimlik doğrulamayı gerçekleştiren tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "isDemo": {
            "type": "boolean",
            "description": "Kaydın demo verisi olup olmadığı."
          },
          "riskCategory": {
            "enum": [
              "None",
              "Low",
              "Medium",
              "High"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "riskScore": {
            "type": [
              "null",
              "number"
            ],
            "description": "Kişinin risk skoru.",
            "format": "double"
          },
          "sanctionsRiskScore": {
            "type": [
              "null",
              "number"
            ],
            "description": "Kişinin risk skoru (yerine RiskScore kullanılmalı).",
            "format": "double"
          },
          "sanctionsScreenTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yaptırım taramasının yapıldığı zaman.",
            "format": "date-time"
          },
          "identityType": {
            "description": "Kimlik doğrulamanın gerçek kişi mi tüzel kişi mi olduğu.",
            "$ref": "#/components/schemas/IdentityTypeDto"
          },
          "expirationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik doğrulamanın geçerlilik süresinin bittiği zaman.",
            "format": "date-time"
          },
          "taxNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şirketin vergi numarası."
          },
          "companyName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şirketin unvanı."
          },
          "placeOfBirth": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kişinin doğum yeri."
          },
          "sanctionMatches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SanctionedPersonMatchDto"
            },
            "description": "Yaptırım listeleriyle eşleşen kayıtlar."
          },
          "legalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kişinin bağlı olduğu tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "livenessValidationStatus": {
            "enum": [
              "None",
              "Pending",
              "Completed"
            ],
            "type": "string"
          },
          "livenessWarnings": {
            "type": "array",
            "items": {
              "enum": [
                "FaceNotSimilar",
                "InvalidAngle",
                "SpoofCheckFailed",
                "NoFaceDetected",
                "MultipleFacesDetected",
                "DifferentPersonAcrossAngles"
              ],
              "type": "string"
            },
            "description": "Canlılık kontrolünde üretilen uyarılar. Uyarı yoksa ya da doğrulama tamamlanmadıysa boştur."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "IdentityVerificationLivenessPhotoDto": {
        "required": [
          "angle",
          "file",
          "referenceSimilarityScore",
          "frontSimilarityScore",
          "spoofScore",
          "yaw",
          "pitch",
          "roll",
          "detectedFaceCount"
        ],
        "type": "object",
        "properties": {
          "angle": {
            "enum": [
              "Front",
              "Left",
              "Right"
            ],
            "type": "string"
          },
          "file": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Canlılık fotoğrafı dosyası. Yalnızca host kullanıcıları ve tenant yöneticileri görebilir; diğer kullanıcılarda boştur.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "referenceSimilarityScore": {
            "type": [
              "null",
              "number"
            ],
            "description": "Bu kare ile kimlik kartı çipindeki fotoğraf arasındaki yüz benzerliği (0-1).",
            "format": "double"
          },
          "frontSimilarityScore": {
            "type": [
              "null",
              "number"
            ],
            "description": "Yalnızca sol ve sağ açılarda: bu kare ile ön kare arasındaki yüz benzerliği (0-1).",
            "format": "double"
          },
          "spoofScore": {
            "type": [
              "null",
              "number"
            ],
            "description": "Sahtecilik kontrolünün canlılık olasılığı (0-1, 1 gerçek kişi).",
            "format": "double"
          },
          "yaw": {
            "type": [
              "null",
              "number"
            ],
            "description": "Baş pozisyonu yaw açısı (derece, kişinin kendi soluna dönüşü pozitif).",
            "format": "double"
          },
          "pitch": {
            "type": [
              "null",
              "number"
            ],
            "description": "Baş pozisyonu pitch açısı (derece, yukarı bakış pozitif).",
            "format": "double"
          },
          "roll": {
            "type": [
              "null",
              "number"
            ],
            "description": "Baş pozisyonu roll açısı (derece, başın kişinin kendi soluna yatması pozitif).",
            "format": "double"
          },
          "detectedFaceCount": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Karede algılanan yüz sayısı.",
            "format": "int32"
          }
        }
      },
      "IdentityVerificationLivenessPhotoInput": {
        "required": [
          "angle",
          "fileId"
        ],
        "type": "object",
        "properties": {
          "angle": {
            "enum": [
              "Front",
              "Left",
              "Right"
            ],
            "type": "string"
          },
          "fileId": {
            "type": "string",
            "description": "Açı kontrolüne gönderilen baytlarla aynı içerikte yüklenmiş canlılık fotoğrafı dosyası.",
            "format": "uuid"
          }
        }
      },
      "IdentityVerificationMethod": {
        "enum": [
          "TurkishIdentityCard",
          "TurkishDriversLicense",
          "Passport",
          "BlueCard",
          "ForeignNational"
        ]
      },
      "IdentityVerificationPurpose": {
        "enum": [
          "Masak",
          "SuspiciousActivity",
          "Other"
        ]
      },
      "IdentityVerificationSelfKycCodeDto": {
        "required": [
          "code",
          "displayCode"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Hızlı Kimlik Tespiti kodu."
          },
          "displayCode": {
            "type": "string",
            "description": "Hızlı Kimlik Tespiti kodunun gösterim biçimi (ABCD-EFGH)."
          },
          "name": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hızlı Kimlik Tespiti kodunun adı. Yalnızca personel yanıtlarında döner."
          }
        }
      },
      "IFormFile": {
        "type": "string",
        "format": "binary"
      },
      "IncomingInvoiceDetailFetchFailureDto": {
        "required": [
          "invoiceId",
          "reason"
        ],
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "Getirilemeyen faturanın kimliği."
          },
          "reason": {
            "type": "string",
            "description": "Faturanın getirilememe nedeni."
          }
        }
      },
      "InventoryItemDto": {
        "required": [
          "id",
          "quantity",
          "displayOrder",
          "creationTime"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Envanter kaleminin kimliği."
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kalemin bağlı olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "inventory": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kalemin ait olduğu envanter.",
                "$ref": "#/components/schemas/BasicInventoryDto"
              }
            ]
          },
          "inventoryProduct": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kalemin ait olduğu envanter ürünü.",
                "$ref": "#/components/schemas/BasicInventoryProductDto"
              }
            ]
          },
          "quantity": {
            "type": "number",
            "description": "Kalem miktarı.",
            "format": "double"
          },
          "displayOrder": {
            "type": "integer",
            "description": "Kalemin listelenme sırası.",
            "format": "int32"
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          }
        }
      },
      "InventoryItemMovementDto": {
        "required": [
          "id",
          "creationTime",
          "quantity",
          "movementType"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Envanter hareketi kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Hareketin oluşturulma zamanı.",
            "format": "date-time"
          },
          "movementTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hareketin fiilen gerçekleştiği zaman. Kaydın sisteme girildiği andan farklı olabilir; belirtilmemişse null döner.",
            "format": "date-time"
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hareketin bağlı olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "inventoryProduct": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Harekete konu envanter ürünü.",
                "$ref": "#/components/schemas/BasicInventoryProductDto"
              }
            ]
          },
          "fromInventory": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Ürünün çıktığı envanter.",
                "$ref": "#/components/schemas/BasicInventoryDto"
              }
            ]
          },
          "toInventory": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Ürünün girdiği envanter.",
                "$ref": "#/components/schemas/BasicInventoryDto"
              }
            ]
          },
          "quantity": {
            "type": "number",
            "description": "Hareket miktarı.",
            "format": "double"
          },
          "movementType": {
            "enum": [
              "Manual",
              "Automatic"
            ],
            "type": "string"
          },
          "expenseBill": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Harekete bağlı gider pusulası.",
                "$ref": "#/components/schemas/BasicExpenseBillDto"
              }
            ]
          },
          "invoice": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Harekete bağlı fatura.",
                "$ref": "#/components/schemas/BasicInvoiceDto"
              }
            ]
          },
          "posSale": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Harekete bağlı POS satışı.",
                "$ref": "#/components/schemas/BasicPosSaleDto"
              }
            ]
          },
          "comment": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hareketle ilgili açıklama notu."
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hareketi oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          }
        }
      },
      "InventoryMatchMode": {
        "enum": [
          "From",
          "To",
          "Any"
        ]
      },
      "InventoryProductDto": {
        "required": [
          "id",
          "name",
          "unit",
          "displayOrder",
          "tenantId",
          "creationTime"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Envanter ürünü kimliği."
          },
          "name": {
            "type": "string",
            "description": "Envanter ürünü adı."
          },
          "sku": {
            "type": [
              "null",
              "string"
            ],
            "description": "Envanter ürünü stok kodu."
          },
          "unit": {
            "enum": [
              "Gr",
              "Item",
              "NIU",
              "KGM",
              "R9",
              "LTR",
              "MTR",
              "SET"
            ],
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "description": "Envanter ürünü listeleme sırası.",
            "format": "int32"
          },
          "lowStockQuantity": {
            "type": [
              "null",
              "number"
            ],
            "description": "Düşük stok uyarısı verilecek miktar eşiği.",
            "format": "double"
          },
          "accountingCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Envanter ürünü muhasebe kodu."
          },
          "tenantId": {
            "type": "string",
            "description": "Envanter ürünü bağlı olduğu tenant kimliği."
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Envanter ürününün bağlı olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "creationTime": {
            "type": "string",
            "description": "Envanter ürün kaydın oluşturulma zamanı.",
            "format": "date-time"
          }
        }
      },
      "InvoiceAttachmentDto": {
        "required": [
          "id",
          "referenceId",
          "file"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Ekin kimliği."
          },
          "referenceId": {
            "type": "string",
            "description": "Ekin e-belge içindeki referans kimliği."
          },
          "documentType": {
            "type": [
              "null",
              "string"
            ],
            "description": "Ekin e-belge içindeki belge türü."
          },
          "file": {
            "description": "Ek dosyası.",
            "$ref": "#/components/schemas/BlobFileDto"
          }
        }
      },
      "InvoiceBankAccountTransactionTotalDto": {
        "required": [
          "currency",
          "amount",
          "count"
        ],
        "type": "object",
        "properties": {
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "amount": {
            "type": "number",
            "description": "Bu para birimindeki bağlı banka hareketlerinin toplam tutarı.",
            "format": "double"
          },
          "count": {
            "type": "integer",
            "description": "Bu para birimindeki bağlı banka hareketi sayısı.",
            "format": "int32"
          }
        }
      },
      "InvoiceCurrencyRateDto": {
        "required": [
          "source",
          "destination",
          "rate"
        ],
        "type": "object",
        "properties": {
          "source": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "PureGoldGr"
            ],
            "type": "string"
          },
          "destination": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "PureGoldGr"
            ],
            "type": "string"
          },
          "rate": {
            "type": "number",
            "description": "Kaynak para biriminden hedef para birimine dönüşüm kuru.",
            "format": "double"
          },
          "rateDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kurun ait olduğu referans günü. Dövizli faturalarda TCMB döviz alış kurunun tarihidir.",
            "format": "date"
          }
        }
      },
      "InvoiceDto": {
        "required": [
          "hasInventoryMovements",
          "id",
          "creationTime",
          "currency",
          "taxCurrency",
          "taxOffice",
          "issuerName",
          "issuerAddress",
          "status",
          "canDelete",
          "canPollStatus",
          "isDemo",
          "issuerIsCompany",
          "issuerTaxNumber",
          "recipientName",
          "recipientAddress",
          "recipientIsCompany",
          "recipientTaxNumber",
          "invoiceScenario",
          "invoiceType",
          "appModule",
          "tenant",
          "gross",
          "totalTax",
          "invoiceTemplates",
          "direction",
          "isRead",
          "isTransferredToAccounting"
        ],
        "type": "object",
        "properties": {
          "hasInventoryMovements": {
            "type": "boolean",
            "description": "Faturaya bağlı stok hareketi olup olmadığı."
          },
          "inventoryItemMovements": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/InventoryItemMovementDto"
            },
            "description": "Faturaya bağlı stok kalemi hareketleri. Yalnızca includeInventoryMovements true ile istendiğinde dolar, aksi halde null döner."
          },
          "id": {
            "type": "string",
            "description": "Fatura ETTN."
          },
          "creationTime": {
            "type": "string",
            "description": "Faturanın oluşturulma zamanı.",
            "format": "date-time"
          },
          "invoiceNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura numarası."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "taxCurrency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "issueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturanın düzenlenme zamanı.",
            "format": "date-time"
          },
          "invoiceNumberAssignmentTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura numarasının atandığı zaman.",
            "format": "date-time"
          },
          "taxOffice": {
            "type": "string",
            "description": "Fatura düzenleyicisinin vergi dairesi."
          },
          "issuerName": {
            "type": "string",
            "description": "Fatura düzenleyicisinin adı."
          },
          "issuerAddress": {
            "type": "string",
            "description": "Fatura düzenleyicisinin adresi."
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturayla ilgili hata mesajı."
          },
          "errorDetail": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturayla ilgili hatanın teknik detayı. Kts.Invoices.ViewErrorDetails yetkisini gerektirir."
          },
          "status": {
            "enum": [
              "Draft",
              "Pending",
              "Submitting",
              "Submitted",
              "Error",
              "SubmissionError",
              "SubmissionUnverified",
              "WaitingForConfirmation",
              "Confirming",
              "ConfirmationError",
              "Confirmed",
              "Rejecting",
              "RejectionError",
              "Rejected",
              "EInvoiceCancelled",
              "EArchiveCancelled"
            ],
            "type": "string"
          },
          "canDelete": {
            "type": "boolean",
            "description": "Faturanın silinebilir olup olmadığı. Silme işlemi ayrıca Kts.Invoices.Delete yetkisini gerektirir."
          },
          "canPollStatus": {
            "type": "boolean",
            "description": "Faturanın durumunun entegratörden elle yeniden sorgulanabilir olup olmadığı. Sorgu ayrıca Kts.Invoices.PollStatus yetkisini gerektirir."
          },
          "isDemo": {
            "type": "boolean",
            "description": "Faturanın demo veri olup olmadığı."
          },
          "issuerPhoneNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura düzenleyicisinin telefon numarası."
          },
          "issuerEmailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura düzenleyicisinin e-posta adresi."
          },
          "issuerIsCompany": {
            "type": "boolean",
            "description": "Fatura düzenleyicisinin şirket olup olmadığı."
          },
          "issuerTaxNumber": {
            "description": "Fatura düzenleyicisinin vergi kimlik numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "recipientName": {
            "type": "string",
            "description": "Fatura alıcısının adı."
          },
          "recipientAddress": {
            "type": "string",
            "description": "Fatura alıcısının adresi."
          },
          "recipientPhoneNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura alıcısının telefon numarası."
          },
          "recipientEmailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura alıcısının e-posta adresi."
          },
          "recipientIsCompany": {
            "type": "boolean",
            "description": "Fatura alıcısının şirket olup olmadığı."
          },
          "recipientTaxNumber": {
            "description": "Fatura alıcısının vergi kimlik numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "recipientTaxOffice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura alıcısının vergi dairesi."
          },
          "eDocumentType": {
            "enum": [
              "EInvoice",
              "EArchiveInvoice"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceScenario": {
            "enum": [
              "TemelFatura",
              "TicariFatura"
            ],
            "type": "string"
          },
          "invoiceType": {
            "enum": [
              "Satis",
              "Istisna",
              "OzelMatrah",
              "Iade"
            ],
            "type": "string"
          },
          "appModule": {
            "enum": [
              "GoldDealing",
              "StandardInvoicing"
            ],
            "type": "string"
          },
          "tenant": {
            "description": "Faturanın ait olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Faturayı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura açıklaması."
          },
          "gross": {
            "type": "number",
            "description": "Fatura toplam tutarı (KDV dahil).",
            "format": "double"
          },
          "totalTax": {
            "type": "number",
            "description": "Fatura toplam KDV tutarı.",
            "format": "double"
          },
          "invoiceTemplate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Faturada kullanılan şablon.",
                "$ref": "#/components/schemas/BasicInvoiceTemplateDto"
              }
            ]
          },
          "invoiceTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BasicInvoiceTemplateDto"
            },
            "description": "Faturada kullanılan şablon varyantları."
          },
          "issuerLegalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Fatura düzenleyicisinin bağlı olduğu tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "recipientLegalEntity": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Fatura alıcısının bağlı olduğu tüzel kişi.",
                "$ref": "#/components/schemas/BasicLegalEntityDto"
              }
            ]
          },
          "appliedCurrencyRate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Faturaya uygulanan döviz kuru.",
                "$ref": "#/components/schemas/AppliedCurrencyRateDto"
              }
            ]
          },
          "direction": {
            "enum": [
              "Outgoing",
              "Incoming"
            ],
            "type": "string"
          },
          "isRead": {
            "type": "boolean",
            "description": "Faturanın okunup okunmadığı."
          },
          "isTransferredToAccounting": {
            "type": "boolean",
            "description": "Faturanın muhasebe programına aktarılıp aktarılmadığı."
          },
          "accountingTransferTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturanın muhasebe programına aktarıldığı zaman.",
            "format": "date-time"
          },
          "refundInvoice": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Faturaya ait iade faturası.",
                "$ref": "#/components/schemas/BasicInvoiceDto"
              }
            ]
          },
          "parentInvoice": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Faturanın bağlı olduğu ana fatura.",
                "$ref": "#/components/schemas/BasicInvoiceDto"
              }
            ]
          },
          "pdfFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Fatura PDF dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "ublFile": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Fatura UBL dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "hasCashboxRecord": {
            "type": "boolean",
            "description": "Faturaya bağlı canlı bir kasa hareketi olup olmadığı."
          },
          "paymentMethod": {
            "enum": [
              "Nakit",
              "Havale",
              "Pos"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "bankAccountTransactionCount": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Faturaya bağlı banka hesap hareketi sayısı. Yalnızca fatura listesi ve fatura detayı uç noktalarında doldurulur.",
            "format": "int32"
          },
          "bankAccountTransactionTotals": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/InvoiceBankAccountTransactionTotalDto"
            },
            "description": "Faturaya bağlı banka hesap hareketlerinin para birimi bazında toplamları. Yalnızca fatura listesi ve fatura detayı uç noktalarında doldurulur."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "InvoiceItemDto": {
        "required": [
          "id",
          "sortIndex",
          "name",
          "unit",
          "unitPrice",
          "quantity",
          "discountRate",
          "discountAmount",
          "vatRate",
          "vatAmount",
          "gross"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fatura kalemi kimliği."
          },
          "sortIndex": {
            "type": "integer",
            "description": "Kalemin fatura içindeki sıra numarası.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Kalem adı."
          },
          "sku": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kalem stok kodu."
          },
          "unit": {
            "enum": [
              "Gr",
              "Item",
              "NIU",
              "KGM",
              "R9",
              "LTR",
              "MTR",
              "SET"
            ],
            "type": "string"
          },
          "unitPrice": {
            "type": "number",
            "description": "Kalem birim fiyatı.",
            "format": "double"
          },
          "quantity": {
            "type": "number",
            "description": "Kalem miktarı.",
            "format": "double"
          },
          "discountRate": {
            "type": "number",
            "description": "Kalem iskonto oranı (%).",
            "format": "double"
          },
          "discountAmount": {
            "type": "number",
            "description": "Kalem iskonto tutarı.",
            "format": "double"
          },
          "vatRate": {
            "type": "number",
            "description": "Kalem KDV oranı (%).",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "description": "Kalem KDV tutarı.",
            "format": "double"
          },
          "vatExcemptionCode": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kalemin KDV istisna kodu.",
                "$ref": "#/components/schemas/InvoiceVatExcemptionCodeDto"
              }
            ]
          },
          "gross": {
            "type": "number",
            "description": "Kalem toplam tutarı (KDV dahil).",
            "format": "double"
          },
          "extraData": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "description": "Kaleme ait ek veriler."
          }
        }
      },
      "InvoiceStatusHistoryDto": {
        "required": [
          "id",
          "invoiceId",
          "status",
          "creationTime"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fatura durum geçmişi kaydının kimliği."
          },
          "invoiceId": {
            "type": "string",
            "description": "Bağlı olduğu faturanın kimliği."
          },
          "status": {
            "enum": [
              "Draft",
              "Pending",
              "Submitting",
              "Submitted",
              "Error",
              "SubmissionError",
              "SubmissionUnverified",
              "WaitingForConfirmation",
              "Confirming",
              "ConfirmationError",
              "Confirmed",
              "Rejecting",
              "RejectionError",
              "Rejected",
              "EInvoiceCancelled",
              "EArchiveCancelled"
            ],
            "type": "string"
          },
          "creationTime": {
            "type": "string",
            "description": "Durum değişikliğinin gerçekleştiği zaman.",
            "format": "date-time"
          }
        }
      },
      "InvoiceTaxDto": {
        "required": [
          "id",
          "taxType",
          "amount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fatura vergisi kimliği."
          },
          "taxType": {
            "description": "Verginin türü.",
            "$ref": "#/components/schemas/InvoiceTaxTypeDto"
          },
          "percent": {
            "type": [
              "null",
              "number"
            ],
            "description": "Vergi oranı (%).",
            "format": "double"
          },
          "amount": {
            "type": "number",
            "description": "Vergi tutarı.",
            "format": "double"
          }
        }
      },
      "InvoiceTaxTypeDto": {
        "required": [
          "id",
          "code",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Vergi türü kimliği.",
            "format": "int32"
          },
          "code": {
            "type": "string",
            "description": "Vergi türü kodu."
          },
          "name": {
            "type": "string",
            "description": "Vergi türü adı."
          }
        }
      },
      "InvoiceVatExcemptionCategoryDto": {
        "required": [
          "code",
          "displayName"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Kategori kodu."
          },
          "displayName": {
            "type": "string",
            "description": "Kategori görünen adı."
          }
        }
      },
      "InvoiceVatExcemptionCodeDto": {
        "required": [
          "description",
          "code",
          "id",
          "category"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "İstisna açıklaması."
          },
          "code": {
            "type": "string",
            "description": "İstisna kodu."
          },
          "id": {
            "type": "integer",
            "description": "İstisna kaydı kimliği.",
            "format": "int32"
          },
          "category": {
            "description": "İstisnanın bağlı olduğu kategori.",
            "$ref": "#/components/schemas/InvoiceVatExcemptionCategoryDto"
          }
        }
      },
      "InvoiceVatRateTotalsDto": {
        "required": [
          "vatRate",
          "netTotal",
          "vatAmount"
        ],
        "type": "object",
        "properties": {
          "vatRate": {
            "type": "number",
            "description": "KDV oranı (yüzde).",
            "format": "double"
          },
          "netTotal": {
            "type": "number",
            "description": "Bu orandaki kalemlerin KDV hariç toplamı (matrah).",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "description": "Bu orandaki kalemlerin toplam KDV tutarı.",
            "format": "double"
          }
        },
        "description": "Bir KDV oranındaki matrah ve KDV toplamı."
      },
      "InvoiceVatSummaryDto": {
        "required": [
          "gross",
          "netTotal",
          "vatAmount",
          "rates"
        ],
        "type": "object",
        "properties": {
          "gross": {
            "type": "number",
            "description": "Filtreye uyan faturaların toplam tutarı (KDV dahil).",
            "format": "double"
          },
          "netTotal": {
            "type": "number",
            "description": "Filtreye uyan faturaların KDV hariç toplamı (matrah).",
            "format": "double"
          },
          "vatAmount": {
            "type": "number",
            "description": "Filtreye uyan faturaların toplam KDV tutarı.",
            "format": "double"
          },
          "rates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceVatRateTotalsDto"
            },
            "description": "KDV oranı bazında matrah ve KDV dağılımı; oran büyükten küçüğe sıralıdır."
          }
        },
        "description": "Filtreye uyan faturaların toplam tutarı ile KDV oranı bazında matrah ve KDV dağılımı."
      },
      "IssuedDraftInvoiceDto": {
        "required": [
          "invoiceId",
          "invoiceNumber"
        ],
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "Resmileştirilen faturanın ID'si."
          },
          "invoiceNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Resmileştirilen faturanın fatura numarası."
          }
        }
      },
      "IssueDraftInvoicesInput": {
        "type": "object",
        "properties": {
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Host kullanıcılar için hedef tenant ID. Tenant kullanıcılar bu alanı boş bırakmalıdır.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "invoiceIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Resmileştirilecek belirli fatura ID'leri. Boş bırakılırsa tenant'a ait tüm taslak faturalar resmileştirilir."
          }
        }
      },
      "IssueDraftInvoicesResultDto": {
        "required": [
          "totalCount",
          "issuedCount",
          "failedCount",
          "issuedInvoices",
          "failedInvoices"
        ],
        "type": "object",
        "properties": {
          "totalCount": {
            "type": "integer",
            "description": "Resmileştirilmesi denenen toplam fatura sayısı.",
            "format": "int32"
          },
          "issuedCount": {
            "type": "integer",
            "description": "Başarıyla resmileştirilen fatura sayısı.",
            "format": "int32"
          },
          "failedCount": {
            "type": "integer",
            "description": "Resmileştirilemeyen fatura sayısı.",
            "format": "int32"
          },
          "issuedInvoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IssuedDraftInvoiceDto"
            },
            "description": "Başarıyla resmileştirilen faturalar."
          },
          "failedInvoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FailedDraftInvoiceDto"
            },
            "description": "Resmileştirilemeyen faturalar ve hata bilgileri."
          }
        }
      },
      "JsonElement": { },
      "JsonObject": {
        "type": "object"
      },
      "KvkkConsentDto": {
        "required": [
          "id",
          "creationTime",
          "tenant",
          "smsProviderAccount",
          "smsProvider",
          "smsMessage",
          "smsOriginator",
          "smsPhoneNumber",
          "consentStatus",
          "requestReason"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "KVKK onay kaydının kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "tenant": {
            "description": "Onayın ait olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "requestedBy": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Onayı talep eden kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "code": {
            "type": [
              "null",
              "string"
            ],
            "description": "SMS ile gönderilen doğrulama kodu. Hızlı Kimlik Tespiti SMS bağlantısı ile alınan onaylarda boştur; kanıt, onaya bağlı Hızlı Kimlik Tespiti kodudur."
          },
          "smsProviderAccount": {
            "description": "SMS gönderiminde kullanılan harici hesap.",
            "$ref": "#/components/schemas/BasicExternalAccountDto"
          },
          "smsProvider": {
            "enum": [
              "Netgsm",
              "Verimor"
            ],
            "type": "string"
          },
          "smsMessage": {
            "type": "string",
            "description": "Gönderilen SMS metni."
          },
          "smsOriginator": {
            "type": "string",
            "description": "SMS gönderiminde kullanılan başlık (originator)."
          },
          "smsPhoneNumber": {
            "type": "string",
            "description": "Onayın gönderildiği telefon numarası."
          },
          "consentTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının onay verdiği zaman.",
            "format": "date-time"
          },
          "consentStatus": {
            "enum": [
              "Pending",
              "Rejected",
              "Granted",
              "Redeemed"
            ],
            "type": "string"
          },
          "requestReason": {
            "enum": [
              "IdentityVerification",
              "SelfKyc"
            ],
            "type": "string"
          }
        }
      },
      "KvkkVerificationTokenDto": {
        "required": [
          "token"
        ],
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "KVKK onay doğrulama token'ı."
          }
        }
      },
      "LatestCurrencyRatesDto": {
        "required": [
          "capturedAt",
          "sourceTimestamp",
          "currencies",
          "goldProducts"
        ],
        "type": "object",
        "properties": {
          "capturedAt": {
            "type": "string",
            "format": "date-time"
          },
          "sourceTimestamp": {
            "type": "string",
            "format": "date-time"
          },
          "currencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyRateDto"
            }
          },
          "goldProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GoldProductRateDto"
            }
          }
        }
      },
      "LegalEntityAccountingSyncResultDto": {
        "required": [
          "totalCount",
          "matchedCount",
          "createdCount",
          "assignedCount"
        ],
        "type": "object",
        "properties": {
          "totalCount": {
            "type": "integer",
            "description": "Muhasebe programından okunan cari sayısı.",
            "format": "int32"
          },
          "matchedCount": {
            "type": "integer",
            "description": "Eksenova'da zaten kayıtlı olup eşleşen cari sayısı.",
            "format": "int32"
          },
          "createdCount": {
            "type": "integer",
            "description": "Muhasebe programından alınıp Eksenova'da yeni açılan cari sayısı.",
            "format": "int32"
          },
          "assignedCount": {
            "type": "integer",
            "description": "Muhasebe kodu yazılan cari sayısı.",
            "format": "int32"
          }
        }
      },
      "LegalEntityActivityDto": {
        "required": [
          "id",
          "kind",
          "time",
          "amount",
          "currency",
          "flow"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Kaynak kaydın kimliği."
          },
          "kind": {
            "enum": [
              "BankAccountTransaction",
              "Invoice",
              "ExpenseBill",
              "CustomerTransaction"
            ],
            "type": "string"
          },
          "time": {
            "type": "string",
            "description": "Hareketin zamanı (banka hareketinde işlem zamanı, faturada düzenlenme zamanı, diğerlerinde oluşturulma zamanı).",
            "format": "date-time"
          },
          "referenceNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Belge numarası: fatura numarası veya gider pusulası sıra numarası. Taslak faturada boştur."
          },
          "counterpartyName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karşı taraf adı: banka hareketinde karşı hesap sahibi, faturada alıcı, gider pusulasında satıcı."
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kaydın açıklaması."
          },
          "amount": {
            "type": "number",
            "description": "Tutar (işaretsiz).",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "flow": {
            "enum": [
              "In",
              "Out",
              "Neutral"
            ],
            "type": "string"
          }
        }
      },
      "LegalEntityCashboxBalanceDto": {
        "required": [
          "currency",
          "currencySymbol",
          "inAmount",
          "outAmount",
          "netAmount",
          "recordCount"
        ],
        "type": "object",
        "properties": {
          "currency": {
            "type": "string",
            "description": "Para birimi kodu."
          },
          "currencySymbol": {
            "type": "string",
            "description": "Para biriminin sembolü."
          },
          "inAmount": {
            "type": "number",
            "description": "Giriş hareketlerinin toplamı.",
            "format": "double"
          },
          "outAmount": {
            "type": "number",
            "description": "Çıkış hareketlerinin toplamı.",
            "format": "double"
          },
          "netAmount": {
            "type": "number",
            "description": "Net bakiye (giriş - çıkış).",
            "format": "double"
          },
          "recordCount": {
            "type": "integer",
            "description": "Hareket sayısı.",
            "format": "int32"
          }
        }
      },
      "LegalEntityCashboxSummaryDto": {
        "required": [
          "legalEntityId",
          "balances"
        ],
        "type": "object",
        "properties": {
          "legalEntityId": {
            "type": "string",
            "description": "Cari kaydının kimliği."
          },
          "balances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalEntityCashboxBalanceDto"
            },
            "description": "Para birimi bazında bakiyeler."
          }
        }
      },
      "LegalEntityCustodySummaryDto": {
        "required": [
          "legalEntityId",
          "groups"
        ],
        "type": "object",
        "properties": {
          "legalEntityId": {
            "type": "string",
            "description": "Cari kaydının kimliği."
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustodyGroupSummaryDto"
            },
            "description": "Tür, yön ve içerik bazında açık emanet toplamları."
          }
        }
      },
      "LegalEntityDto": {
        "required": [
          "tenant",
          "stats",
          "id",
          "creationTime",
          "entityNumber",
          "isHidden",
          "coreBusiness",
          "isFinalCustomer"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "description": "Cari kaydının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "stats": {
            "description": "Cari kaydına ait istatistik bilgileri.",
            "$ref": "#/components/schemas/LegalEntityStatsDto"
          },
          "id": {
            "type": "string",
            "description": "Cari kaydının kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "lastModificationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kaydın son güncellenme zamanı.",
            "format": "date-time"
          },
          "entityNumber": {
            "description": "Cari kaydının TC kimlik veya vergi numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "fullName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının adı soyadı veya unvanı."
          },
          "taxOffice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının bağlı olduğu vergi dairesi."
          },
          "province": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Cari kaydının bağlı olduğu il.",
                "$ref": "#/components/schemas/ProvinceDto"
              }
            ]
          },
          "district": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Cari kaydının bağlı olduğu ilçe.",
                "$ref": "#/components/schemas/DistrictDto"
              }
            ]
          },
          "address": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının adres bilgisi."
          },
          "emailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının e-posta adresi."
          },
          "note": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydına ait not."
          },
          "customerAccountingCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının muhasebe programındaki müşteri cari hesap kodu."
          },
          "supplierAccountingCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının muhasebe programındaki tedarikçi hesap kodu."
          },
          "isHidden": {
            "type": "boolean",
            "description": "Cari kaydının gizlenip gizlenmediği."
          },
          "coreBusiness": {
            "type": "array",
            "items": {
              "enum": [
                "GoldDealing",
                "Staff"
              ],
              "type": "string"
            },
            "description": "Cari kaydının faaliyet alanları."
          },
          "isFinalCustomer": {
            "type": "boolean",
            "description": "Cari kaydının, değiştirilemeyen Nihai Müşteri kaydı olup olmadığı."
          }
        }
      },
      "LegalEntityFileDto": {
        "required": [
          "id",
          "creationTime",
          "file",
          "fileType"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Dosya kaydının kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Dosyanın yüklenme zamanı.",
            "format": "date-time"
          },
          "file": {
            "description": "Dosyanın kendisine ait bilgiler.",
            "$ref": "#/components/schemas/BlobFileDto"
          },
          "fileType": {
            "enum": [
              "CertificateOfCommencement",
              "TaxPlate",
              "CertificateOfActivity",
              "SignatureCircular",
              "TradeRegistryGazette",
              "Other",
              "CompanyStamp"
            ],
            "type": "string"
          }
        }
      },
      "LegalEntityFileInput": {
        "required": [
          "fileId",
          "fileType"
        ],
        "type": "object",
        "properties": {
          "fileId": {
            "type": "string",
            "description": "Daha önce yüklenmiş olan dosyanın kimliği.",
            "format": "uuid"
          },
          "fileType": {
            "enum": [
              "CertificateOfCommencement",
              "TaxPlate",
              "CertificateOfActivity",
              "SignatureCircular",
              "TradeRegistryGazette",
              "Other",
              "CompanyStamp"
            ],
            "type": "string"
          }
        }
      },
      "LegalEntityImportResultDto": {
        "required": [
          "success",
          "totalRows",
          "createdCount",
          "updatedCount",
          "errors"
        ],
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "İçe aktarma işleminin başarılı olup olmadığı."
          },
          "totalRows": {
            "type": "integer",
            "description": "İşlenen toplam satır sayısı.",
            "format": "int32"
          },
          "createdCount": {
            "type": "integer",
            "description": "Oluşturulan kayıt sayısı.",
            "format": "int32"
          },
          "updatedCount": {
            "type": "integer",
            "description": "Güncellenen kayıt sayısı.",
            "format": "int32"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalEntityImportRowErrorDto"
            },
            "description": "İçe aktarma sırasında oluşan satır hataları."
          }
        }
      },
      "LegalEntityImportRowErrorDto": {
        "required": [
          "rowNumber",
          "message"
        ],
        "type": "object",
        "properties": {
          "rowNumber": {
            "type": "integer",
            "description": "Hatanın oluştuğu satır numarası.",
            "format": "int32"
          },
          "entityNumber": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hataya konu olan tüzel kişi numarası.",
                "$ref": "#/components/schemas/TurkishEntityNumber"
              }
            ]
          },
          "message": {
            "type": "string",
            "description": "Hata mesajı."
          }
        }
      },
      "LegalEntityStatsDto": {
        "required": [
          "identityVerificationCount",
          "customerTransactionCount",
          "customerTransactionVolume",
          "bankAccountTransactionInCount",
          "bankAccountTransactionInVolume",
          "bankAccountTransactionOutCount",
          "bankAccountTransactionOutVolume",
          "invoiceCount",
          "invoiceVolume",
          "expenseBillCount",
          "expenseBillVolume",
          "eVoucherCount",
          "eVoucherVolume",
          "bankAccountInfoCount"
        ],
        "type": "object",
        "properties": {
          "identityVerificationCount": {
            "type": "integer",
            "description": "Yapılan kimlik doğrulama sayısı.",
            "format": "int32"
          },
          "customerTransactionCount": {
            "type": "integer",
            "description": "Müşteri işlem sayısı.",
            "format": "int32"
          },
          "customerTransactionVolume": {
            "type": "number",
            "description": "Müşteri işlem hacmi.",
            "format": "double"
          },
          "bankAccountTransactionInCount": {
            "type": "integer",
            "description": "Banka hesabına gelen işlem sayısı.",
            "format": "int32"
          },
          "bankAccountTransactionInVolume": {
            "type": "number",
            "description": "Banka hesabına gelen işlem hacmi.",
            "format": "double"
          },
          "bankAccountTransactionOutCount": {
            "type": "integer",
            "description": "Banka hesabından giden işlem sayısı.",
            "format": "int32"
          },
          "bankAccountTransactionOutVolume": {
            "type": "number",
            "description": "Banka hesabından giden işlem hacmi.",
            "format": "double"
          },
          "invoiceCount": {
            "type": "integer",
            "description": "Fatura sayısı.",
            "format": "int32"
          },
          "invoiceVolume": {
            "type": "number",
            "description": "Fatura toplam tutarı.",
            "format": "double"
          },
          "expenseBillCount": {
            "type": "integer",
            "description": "Gider pusulası sayısı.",
            "format": "int32"
          },
          "expenseBillVolume": {
            "type": "number",
            "description": "Gider pusulası toplam tutarı.",
            "format": "double"
          },
          "eVoucherCount": {
            "type": "integer",
            "description": "e-Gider Pusulası sayısı (faturalardaki gibi iptal edilenler dahil).",
            "format": "int32"
          },
          "eVoucherVolume": {
            "type": "number",
            "description": "e-Gider Pusulası vergiler dahil toplamı, stopaj düşülmeden (faturalardaki brüt toplam gibi, iptal edilenler dahil).",
            "format": "double"
          },
          "bankAccountInfoCount": {
            "type": "integer",
            "description": "Kayıtlı banka hesabı bilgisi sayısı.",
            "format": "int32"
          }
        }
      },
      "LegalEntityStatsSummaryDto": {
        "required": [
          "id",
          "entityNumber",
          "isHidden",
          "tenant",
          "stats"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Cari kaydının kimliği."
          },
          "entityNumber": {
            "description": "Cari kaydının T.C. kimlik veya vergi numarası.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "fullName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cari kaydının adı soyadı veya unvanı."
          },
          "isHidden": {
            "type": "boolean",
            "description": "Cari kaydının gizlenip gizlenmediği."
          },
          "tenant": {
            "description": "Cari kaydının bağlı olduğu tenant. Host kullanıcılarının cariye geçiş yapabilmesi için döner.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "stats": {
            "description": "Cari kaydına ait istatistik bilgileri.",
            "$ref": "#/components/schemas/LegalEntityStatsDto"
          }
        }
      },
      "LinkBankAccountInfoLegalEntityInput": {
        "required": [
          "legalEntityId"
        ],
        "type": "object",
        "properties": {
          "legalEntityId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Bağlanacak mevcut carinin kimliği.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "LinkBankAccountTransactionDocumentsInput": {
        "type": "object",
        "properties": {
          "invoiceIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Eşleştirilecek fatura ID'leri. Para çıkışı olan hareketler gelen faturalarla, para girişi olan hareketler giden faturalarla eşleştirilebilir."
          },
          "expenseBillIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Eşleştirilecek gider pusulası ID'leri. Bir banka hareketi yalnızca tek bir gider pusulasına bağlanabilir ve yalnızca para çıkışı olan hareketler eşleştirilebilir."
          }
        }
      },
      "LinkBankAccountTransactionsInput": {
        "required": [
          "transactionIds"
        ],
        "type": "object",
        "properties": {
          "transactionIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Belge ile eşleştirilecek banka hesap hareketi ID'leri."
          }
        }
      },
      "MembershipTenantDto": {
        "required": [
          "id",
          "name",
          "isDemoMode",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Tenant kimliği."
          },
          "name": {
            "type": "string",
            "description": "Tenant adı."
          },
          "companyName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Tenant ünvanı."
          },
          "isDemoMode": {
            "type": "boolean",
            "description": "Tenantın demo modda olup olmadığı."
          },
          "isActive": {
            "type": "boolean",
            "description": "Tenantın aktif olup olmadığı."
          }
        }
      },
      "NextInvoiceNumbersDto": {
        "required": [
          "nextEInvoiceNumber",
          "nextEArchiveNumber"
        ],
        "type": "object",
        "properties": {
          "nextEInvoiceNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sıradaki e-Fatura numarası."
          },
          "nextEArchiveNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sıradaki e-Arşiv fatura numarası."
          }
        }
      },
      "NotificationDigestItemDto": {
        "required": [
          "summary"
        ],
        "type": "object",
        "properties": {
          "referenceId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Öğenin referans verdiği varlığın kimliği."
          },
          "summary": {
            "type": "string",
            "description": "Öğenin özet metni."
          }
        }
      },
      "NotificationDto": {
        "required": [
          "id",
          "title",
          "message",
          "type",
          "severity",
          "isRead",
          "isDigest",
          "creationTime"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Bildirim kimliği."
          },
          "title": {
            "type": "string",
            "description": "Bildirim başlığı."
          },
          "message": {
            "type": "string",
            "description": "Bildirim mesaj metni."
          },
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "severity": {
            "enum": [
              "Info",
              "Warning",
              "Critical"
            ],
            "type": "string"
          },
          "category": {
            "enum": [
              "ManualReview"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "isRead": {
            "type": "boolean",
            "description": "Bildirimin okunup okunmadığı."
          },
          "readTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bildirimin okunma zamanı.",
            "format": "date-time"
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Bildirimin gönderildiği tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "subjectTenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Bildirimin konu edindiği tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "recipient": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Bildirimi alan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "referenceEntityType": {
            "enum": [
              "Report",
              "IdentityVerification",
              "BankAccountTransaction",
              "Invoice",
              "InvoiceBatch",
              "DespatchAdvice",
              "Lead",
              "Tenant",
              "TenantRegistration",
              "ContactRequest",
              "TenantSubscription",
              "ExternalAccountCreditTransaction",
              "BankAccountCredential",
              "PublicFeedConnection",
              "HangfireJob",
              "InvoicePollingLane",
              "DespatchAdvicePollingLane",
              "GoldDealingWholesalerTenantLinkRequest",
              "Custody",
              "EVoucher",
              "EVoucherPollingLane"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "referenceId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bildirimin referans verdiği varlığın kimliği."
          },
          "isDigest": {
            "type": "boolean",
            "description": "Bildirimin birden fazla olayı özetleyen bir özet bildirimi olup olmadığı."
          },
          "digestItemCount": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Özet bildirimdeki öğe sayısı.",
            "format": "int32"
          },
          "digestItems": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/NotificationDigestItemDto"
            },
            "description": "Özet bildirime ait öğeler."
          },
          "creationTime": {
            "type": "string",
            "description": "Bildirimin oluşturulma zamanı.",
            "format": "date-time"
          }
        }
      },
      "NotificationPolicyAudienceDto": {
        "required": [
          "roleId",
          "type",
          "receivesAll",
          "receivesOwn"
        ],
        "type": "object",
        "properties": {
          "roleId": {
            "type": "string",
            "description": "Alıcı kapsamının tanımlandığı rol kimliği."
          },
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "receivesAll": {
            "type": "boolean",
            "description": "Rolün tüm kayıtlara ait bildirimleri alıp almadığı."
          },
          "receivesOwn": {
            "type": "boolean",
            "description": "Rolün yalnızca kendi kayıtlarına ait bildirimleri alıp almadığı."
          }
        }
      },
      "NotificationPolicyDto": {
        "required": [
          "id",
          "role",
          "type",
          "isMandatoryForRole",
          "options"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Politikanın kimliği."
          },
          "role": {
            "description": "Politikanın uygulandığı rol.",
            "$ref": "#/components/schemas/BasicRoleDto"
          },
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "isMandatoryForRole": {
            "type": "boolean",
            "description": "Bildirimin rol için zorunlu olup olmadığı."
          },
          "options": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "Bildirime özel ek seçenek ayarları."
          }
        }
      },
      "NotificationPolicyMatrixDto": {
        "required": [
          "roles",
          "types",
          "policies",
          "audiences",
          "riskSettings",
          "scheduleSettings",
          "transactionTypeSettings"
        ],
        "type": "object",
        "properties": {
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BasicRoleDto"
            },
            "description": "Bildirim politikalarına konu olan roller."
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationTypeDto"
            },
            "description": "Sistemde tanımlı bildirim tipleri."
          },
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationPolicyDto"
            },
            "description": "Rol ve bildirim tipi bazlı politika ayarları."
          },
          "audiences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationPolicyAudienceDto"
            },
            "description": "Rol ve bildirim tipi bazlı alıcı kapsamı ayarları."
          },
          "riskSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationRiskPolicyDto"
            },
            "description": "Risk bazlı bildirim gönderim ayarları."
          },
          "scheduleSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationScheduleSettingDto"
            },
            "description": "Zamanlamalı bildirimlerin gönderim ayarları."
          },
          "transactionTypeSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationTransactionTypeSettingDto"
            },
            "description": "Hesap hareketi bildirimlerinin kapsadığı işlem türü ayarları."
          }
        }
      },
      "NotificationPolicyOptionDto": {
        "required": [
          "code",
          "displayName",
          "defaultValue"
        ],
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              "HideMonetaryDetails",
              "ShowDescription"
            ],
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "description": "Politika seçeneğinin görünen adı."
          },
          "defaultValue": {
            "type": "boolean",
            "description": "Politika seçeneğinin varsayılan olarak seçili olup olmadığı."
          }
        }
      },
      "NotificationPreferenceChannelDto": {
        "required": [
          "channel",
          "enabled",
          "isLocked"
        ],
        "type": "object",
        "properties": {
          "channel": {
            "enum": [
              "InApp",
              "Push",
              "Slack"
            ],
            "type": "string"
          },
          "enabled": {
            "type": "boolean",
            "description": "Kanalın açık olup olmadığı."
          },
          "isLocked": {
            "type": "boolean",
            "description": "Kanal ayarının kullanıcı tarafından değiştirilemeyeceği."
          },
          "lockReason": {
            "enum": [
              "Mandatory"
            ],
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "NotificationPreferenceDto": {
        "required": [
          "type",
          "channels",
          "settings"
        ],
        "type": "object",
        "properties": {
          "type": {
            "description": "Bildirim türü.",
            "$ref": "#/components/schemas/NotificationTypeDto"
          },
          "channels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationPreferenceChannelDto"
            },
            "description": "Bildirim türüne ait kanal ayarları."
          },
          "settings": {
            "type": "object",
            "description": "Bildirim türüne ait ek ayarlar."
          }
        }
      },
      "NotificationRiskPolicyDto": {
        "required": [
          "type",
          "minimumRiskCategory",
          "supportsDelay",
          "supportsSuspiciousDescriptionInstant",
          "suspiciousDescriptionSentInstantly"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "minimumRiskCategory": {
            "enum": [
              "None",
              "Low",
              "Medium",
              "High"
            ],
            "type": "string"
          },
          "supportsDelay": {
            "type": "boolean",
            "description": "Bildirimin gecikmeli gönderimi destekleyip desteklemediği."
          },
          "delayHours": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Bildirimin gecikmeli gönderileceği saat sayısı.",
            "format": "int32"
          },
          "supportsSuspiciousDescriptionInstant": {
            "type": "boolean",
            "description": "Şüpheli açıklamalı işlemlerin anında bildirimini destekleyip desteklemediği."
          },
          "suspiciousDescriptionSentInstantly": {
            "type": "boolean",
            "description": "Şüpheli açıklamalı işlemlerin anında bildirilip bildirilmediği."
          }
        }
      },
      "NotificationScheduleSettingDto": {
        "required": [
          "type",
          "sendTimeOfDay",
          "minimumDaysElapsed",
          "minimumDaysElapsedLowerBound",
          "minimumDaysElapsedUpperBound"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "sendTimeOfDay": {
            "type": "string",
            "description": "Bildirimin gönderileceği saat (UTC+3)."
          },
          "minimumDaysElapsed": {
            "type": "integer",
            "description": "Bildirim gönderilmeden önce beklenecek gün sayısı.",
            "format": "int32"
          },
          "minimumDaysElapsedLowerBound": {
            "type": "integer",
            "description": "Beklenecek gün sayısı için izin verilen alt sınır.",
            "format": "int32"
          },
          "minimumDaysElapsedUpperBound": {
            "type": "integer",
            "description": "Beklenecek gün sayısı için izin verilen üst sınır.",
            "format": "int32"
          }
        }
      },
      "NotificationSettingChoiceDto": {
        "required": [
          "code",
          "displayName"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Seçenek kodu."
          },
          "displayName": {
            "type": "string",
            "description": "Seçeneğin görünen adı."
          }
        }
      },
      "NotificationSettingDescriptorDto": {
        "required": [
          "key",
          "kind",
          "displayName",
          "isRequired"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Ayar anahtarı."
          },
          "kind": {
            "enum": [
              "TimeOfDay",
              "Choice",
              "Number",
              "Boolean"
            ],
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "description": "Ayarın görünen adı."
          },
          "isRequired": {
            "type": "boolean",
            "description": "Ayarın zorunlu olup olmadığı."
          },
          "defaultValue": {
            "description": "Ayarın varsayılan değeri."
          },
          "options": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/NotificationSettingChoiceDto"
            },
            "description": "Ayarın seçilebilir seçenek listesi."
          },
          "minValue": {
            "type": [
              "null",
              "number"
            ],
            "description": "Ayarın alabileceği en küçük değer.",
            "format": "double"
          },
          "maxValue": {
            "type": [
              "null",
              "number"
            ],
            "description": "Ayarın alabileceği en büyük değer.",
            "format": "double"
          },
          "visibleWhen": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Ayarın görünür olması için gereken koşul.",
                "$ref": "#/components/schemas/NotificationSettingVisibleWhenDto"
              }
            ]
          }
        }
      },
      "NotificationSettingVisibleWhenDto": {
        "required": [
          "key",
          "equals",
          "isNegated"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Koşulun bağlı olduğu ayar anahtarı."
          },
          "equals": {
            "type": "string",
            "description": "Ayarın görünür olması için eşit olması gereken değer."
          },
          "isNegated": {
            "type": "boolean",
            "description": "true ise koşul tersine çevrilir: ayar, değer eşit DEĞİLKEN görünür."
          }
        }
      },
      "NotificationTransactionTypeSettingDto": {
        "required": [
          "type",
          "transactionTypes",
          "availableTransactionTypes"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "transactionTypes": {
            "type": "array",
            "items": {
              "enum": [
                "None",
                "Other",
                "Havale",
                "EFT",
                "FAST",
                "PosPayment",
                "Bsmv",
                "Komisyon",
                "Masraf",
                "PosKesinti"
              ],
              "type": "string"
            },
            "description": "Bildirimin gönderileceği işlem türleri."
          },
          "availableTransactionTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankTransactionTypeOptionDto"
            },
            "description": "Seçilebilecek tüm işlem türleri."
          }
        }
      },
      "NotificationTypeChannelDto": {
        "required": [
          "channel",
          "enabledByDefault",
          "userConfigurable"
        ],
        "type": "object",
        "properties": {
          "channel": {
            "enum": [
              "InApp",
              "Push",
              "Slack"
            ],
            "type": "string"
          },
          "enabledByDefault": {
            "type": "boolean",
            "description": "Kanalın varsayılan olarak açık olup olmadığı."
          },
          "userConfigurable": {
            "type": "boolean",
            "description": "Kanalın kullanıcı tarafından değiştirilebilir olup olmadığı."
          }
        }
      },
      "NotificationTypeDto": {
        "required": [
          "type",
          "displayName",
          "supportsRelatedUserTarget",
          "isMandatory",
          "isUserConfigurable",
          "isHostOnly",
          "supportsManualSend",
          "channels",
          "settingsDescriptors",
          "policyOptions"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "description": "Bildirimin görünen adı."
          },
          "category": {
            "enum": [
              "ManualReview"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "receiveAllPermission": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bildirimi herkes adına alabilmek için gereken izin."
          },
          "receiveOwnPermission": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bildirimi kendi adına alabilmek için gereken izin."
          },
          "supportsRelatedUserTarget": {
            "type": "boolean",
            "description": "Bildirimin ilgili kullanıcı hedefini destekleyip desteklemediği."
          },
          "isMandatory": {
            "type": "boolean",
            "description": "Bildirimin zorunlu olup olmadığı."
          },
          "isUserConfigurable": {
            "type": "boolean",
            "description": "Bildirim ayarlarının kullanıcı tarafından değiştirilebilir olup olmadığı."
          },
          "isHostOnly": {
            "type": "boolean",
            "description": "Bildirimin yalnızca host kullanıcılarına özel olup olmadığı."
          },
          "supportsManualSend": {
            "type": "boolean",
            "description": "Bildirimin manuel olarak gönderilip gönderilemediği."
          },
          "channels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationTypeChannelDto"
            },
            "description": "Bildirimin kanal ayarları."
          },
          "referenceEntityType": {
            "enum": [
              "Report",
              "IdentityVerification",
              "BankAccountTransaction",
              "Invoice",
              "InvoiceBatch",
              "DespatchAdvice",
              "Lead",
              "Tenant",
              "TenantRegistration",
              "ContactRequest",
              "TenantSubscription",
              "ExternalAccountCreditTransaction",
              "BankAccountCredential",
              "PublicFeedConnection",
              "HangfireJob",
              "InvoicePollingLane",
              "DespatchAdvicePollingLane",
              "GoldDealingWholesalerTenantLinkRequest",
              "Custody",
              "EVoucher",
              "EVoucherPollingLane"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "settingsDescriptors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationSettingDescriptorDto"
            },
            "description": "Bildirime ait özel ayar tanımları."
          },
          "policyOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationPolicyOptionDto"
            },
            "description": "Bildirime ait politika seçenekleri."
          }
        }
      },
      "PagedListDtoOfBankAccountDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankAccountDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfBankAccountInfoDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankAccountInfoDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfBankAccountTransactionDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankAccountTransactionDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfCustomerTransactionDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerTransactionDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfDespatchAdviceDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DespatchAdviceDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfDistrictDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DistrictDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfEVoucherDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EVoucherDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfExpenseBillDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExpenseBillDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfExternalAccountDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalAccountDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfGoldDealingWholesalerTenantDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GoldDealingWholesalerTenantDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfGoldDealingWholesalerTenantLinkRequestDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GoldDealingWholesalerTenantLinkRequestDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfIdentityVerificationDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityVerificationDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfInventoryItemDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryItemDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfInventoryItemMovementDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryItemMovementDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfInventoryProductDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryProductDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfInvoiceDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfKvkkConsentDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KvkkConsentDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfLegalEntityDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalEntityDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfNotificationDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfPermissionDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfPosAccountDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PosAccountDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfPosDeviceDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PosDeviceDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfPosTransactionDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PosTransactionDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfProvinceDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProvinceDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfReportDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfRoleDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfTenantBankAccountTransactionClassificationDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantBankAccountTransactionClassificationDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfTenantBranchDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantBranchDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PagedListDtoOfUserDto": {
        "required": [
          "items",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserDto"
            },
            "description": "Sayfadaki kayıt listesi."
          },
          "totalCount": {
            "type": "integer",
            "description": "Filtreye uyan toplam kayıt sayısı.",
            "format": "int64"
          }
        }
      },
      "PassportDetailedDto": {
        "required": [
          "expiryDate"
        ],
        "type": "object",
        "properties": {
          "nationalIdentityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kişinin T.C. kimlik numarası."
          },
          "documentNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Pasaport numarası."
          },
          "issueDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Pasaportun düzenlenme tarihi.",
            "format": "date"
          },
          "expiryDate": {
            "type": "string",
            "description": "Pasaportun son geçerlilik tarihi.",
            "format": "date"
          }
        }
      },
      "PassportDto": {
        "required": [
          "expiryDate"
        ],
        "type": "object",
        "properties": {
          "nationalIdentityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kişinin T.C. kimlik numarası."
          },
          "documentNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Pasaport numarası."
          },
          "expiryDate": {
            "type": "string",
            "description": "Pasaportun son geçerlilik tarihi.",
            "format": "date"
          }
        }
      },
      "PermissionCategoryDefinitionDto": {
        "required": [
          "category",
          "name",
          "permissions",
          "policies"
        ],
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "Kategorinin tam adı. Örnek: Kts.BankAccountTransactions."
          },
          "name": {
            "type": "string",
            "description": "Kategorinin ön ek içermeyen adı. Örnek: BankAccountTransactions."
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionDefinitionDto"
            },
            "description": "Kategorideki yetki tanımları."
          },
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolicyDefinitionDto"
            },
            "description": "Kategoriye bağlı politika tanımları."
          }
        }
      },
      "PermissionDefinitionDto": {
        "required": [
          "id",
          "name",
          "action",
          "requiresApproval"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Yetki tanımının kimliği."
          },
          "name": {
            "type": "string",
            "description": "Yetkinin tam adı. Örnek: Kts.BankAccountTransactions.Get."
          },
          "action": {
            "type": "string",
            "description": "Yetkinin kategori içindeki eylem adı. Örnek: Get."
          },
          "requiresApproval": {
            "type": "boolean",
            "description": "Yetkinin kullanımının onay gerektirip gerektirmediği."
          }
        }
      },
      "PermissionDto": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Yetkinin kimliği."
          },
          "name": {
            "type": "string",
            "description": "Yetkinin adı."
          }
        }
      },
      "PolicyDefinitionDto": {
        "required": [
          "policyType",
          "displayName",
          "description"
        ],
        "type": "object",
        "properties": {
          "policyType": {
            "enum": [
              "RestrictBankAccountAccess",
              "RestrictBankTransactionsAccess",
              "RestrictBranchAccess"
            ],
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "description": "Politikanın görünen adı."
          },
          "description": {
            "type": "string",
            "description": "Politikanın ne yaptığının açıklaması."
          }
        }
      },
      "PollInvoiceStatusResultDto": {
        "required": [
          "accepted",
          "retryAfterSeconds"
        ],
        "type": "object",
        "properties": {
          "accepted": {
            "type": "boolean",
            "description": "Durum sorgusunun kuyruğa alınıp alınmadığı."
          },
          "retryAfterSeconds": {
            "type": "integer",
            "description": "Kuyruğa alınmadıysa yeni bir sorgu için beklenmesi gereken süre (saniye).",
            "format": "int32"
          }
        }
      },
      "PosAccountDto": {
        "required": [
          "id",
          "creationTime",
          "merchantNumber",
          "currency",
          "bank",
          "isDemo",
          "lastSynchronizationFailed",
          "tenant",
          "isSynchronizable"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesabı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "POS hesabının ID'si."
          },
          "creationTime": {
            "type": "string",
            "description": "POS hesabının oluşturulma zamanı.",
            "format": "date-time"
          },
          "merchantNumber": {
            "type": "string",
            "description": "Banka tarafından atanan üye işyeri numarası."
          },
          "merchantName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Üye işyeri adı."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          },
          "isDemo": {
            "type": "boolean",
            "description": "Hesabın demo (test) hesabı olup olmadığı."
          },
          "lastSynchronizationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Son senkronizasyon zamanı.",
            "format": "date-time"
          },
          "lastSynchronizationFailed": {
            "type": "boolean",
            "description": "Son senkronizasyonun başarısız olup olmadığı."
          },
          "synchronizationDisabledTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Senkronizasyonun devre dışı bırakıldığı zaman.",
            "format": "date-time"
          },
          "tenant": {
            "description": "POS hesabının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "isSynchronizable": {
            "type": "boolean",
            "description": "Hesabın senkronize edilebilir olup olmadığı."
          }
        }
      },
      "PosDeviceDto": {
        "required": [
          "id",
          "creationTime",
          "vendor",
          "serialNumber",
          "name",
          "isEnabled",
          "tenant"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "POS cihazını oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "POS cihazı kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "POS cihazının oluşturulma zamanı.",
            "format": "date-time"
          },
          "vendor": {
            "enum": [
              "Pavo"
            ],
            "type": "string"
          },
          "serialNumber": {
            "type": "string",
            "description": "POS cihazı seri numarası."
          },
          "name": {
            "type": "string",
            "description": "POS cihazı adı."
          },
          "isEnabled": {
            "type": "boolean",
            "description": "POS cihazının etkin olup olmadığı."
          },
          "lastActivityTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "POS cihazının son aktivite zamanı.",
            "format": "date-time"
          },
          "tenant": {
            "description": "POS cihazının bağlı olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kaydın bağlı olduğu şube. Şubesiz kayıtlarda boştur.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "PosTransactionDto": {
        "required": [
          "id",
          "creationTime",
          "transactionTime",
          "transactionAmount",
          "currency",
          "type",
          "description",
          "merchantNumber",
          "merchantBlockNumber",
          "isDemo",
          "posAccount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Pos işlemi kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "transactionTime": {
            "type": "string",
            "description": "İşlemin gerçekleştiği zaman.",
            "format": "date-time"
          },
          "transactionAmount": {
            "type": "number",
            "description": "İşlem tutarı.",
            "format": "double"
          },
          "netAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Komisyon sonrası net tutar.",
            "format": "double"
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "type": {
            "enum": [
              "Sale",
              "Refund"
            ],
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "İşlem açıklaması."
          },
          "transactionCodeDescription": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlem koduna ait açıklama."
          },
          "customerName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Müşterinin adı soyadı."
          },
          "merchantNumber": {
            "type": "string",
            "description": "Üye işyeri numarası."
          },
          "merchantName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Üye işyeri adı."
          },
          "customerNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Müşteri numarası."
          },
          "authorizationNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlem onay (otorizasyon) numarası."
          },
          "branchCode": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şube kodu."
          },
          "branchName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şube adı."
          },
          "entityNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Müşteriye ait TC kimlik veya vergi numarası."
          },
          "maskedCardNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Maskelenmiş kart numarası."
          },
          "mcc": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşyeri faaliyet kodu (MCC)."
          },
          "terminalNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Pos terminal numarası."
          },
          "cardBrand": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kart markası."
          },
          "cardType": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kart tipi."
          },
          "installmentCount": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Taksit sayısı.",
            "format": "int32"
          },
          "installmentAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Taksit tutarı.",
            "format": "double"
          },
          "totalCommissionRate": {
            "type": [
              "null",
              "number"
            ],
            "description": "Toplam komisyon oranı (%).",
            "format": "double"
          },
          "totalCommissionAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Toplam komisyon tutarı.",
            "format": "double"
          },
          "totalCommissionBsmvAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Toplam komisyon BSMV tutarı.",
            "format": "double"
          },
          "merchantBlockNumber": {
            "type": "string",
            "description": "Üye işyeri blok numarası."
          },
          "batchNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Batch (parti) numarası."
          },
          "stan": {
            "type": [
              "null",
              "string"
            ],
            "description": "İşlem referans numarası (STAN)."
          },
          "blockedAccountSuffix": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bloke hesap son eki."
          },
          "merchantValueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Üye işyeri valör tarihi.",
            "format": "date-time"
          },
          "unblockTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Blokenin kalktığı zaman.",
            "format": "date-time"
          },
          "isDemo": {
            "type": "boolean",
            "description": "Kaydın demo veri olup olmadığı."
          },
          "posAccount": {
            "description": "İşlemin bağlı olduğu pos hesabı.",
            "$ref": "#/components/schemas/BasicPosAccountDto"
          },
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceDto"
            },
            "description": "İşleme bağlı faturalar."
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşlemin ait olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İşlemi oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          }
        }
      },
      "PreviewEVoucherInput": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "Satis",
              "Iade"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "issueTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Belge tarihi (UTC). Varsayılan şimdiki zaman.",
            "format": "date-time"
          },
          "customer": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Alıcı. Eksik alanlar önizlemede boş gösterilir.",
                "$ref": "#/components/schemas/EVoucherPreviewPartyInput"
              }
            ]
          },
          "customerLegalEntityId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Alıcının cari kaydı.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "returner": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Alıcıdan farklı iade eden kişi. Eksik alanlar önizlemede boş gösterilir.",
                "$ref": "#/components/schemas/EVoucherPreviewPartyInput"
              }
            ]
          },
          "returnerLegalEntityId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "İade edenin cari kaydı.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "verificationMethod": {
            "enum": [
              "SmsCode",
              "ReturnCode"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "returnReference": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "İade belge bilgisi (yalnız İADE).",
                "$ref": "#/components/schemas/EVoucherReturnReferenceInput"
              }
            ]
          },
          "cargo": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kargo bilgisi (yalnız kargo ile İADE).",
                "$ref": "#/components/schemas/EVoucherCargoInput"
              }
            ]
          },
          "lines": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/EVoucherLineInput"
            },
            "description": "Kalemler."
          },
          "note": {
            "maxLength": 1000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Not."
          },
          "contentTemplateId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanılan içerik şablonu ID.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "bankTransactionId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "e-Gider Pusulasının düzenleneceği banka hareketi ID.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "bankTransactionIds": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "items": {
              "type": "string"
            },
            "description": "e-Gider Pusulasının düzenleneceği banka hareketleri.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ProvinceDto": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "İl ID'si."
          },
          "name": {
            "type": "string",
            "description": "İl adı."
          }
        }
      },
      "QueuedPosAccountSynchronizationDto": {
        "required": [
          "queued",
          "posAccount"
        ],
        "type": "object",
        "properties": {
          "queued": {
            "type": "boolean",
            "description": "Senkronizasyonun kuyruğa alınıp alınmadığı. Hesap için bekleyen bir senkronizasyon işi varsa false döner."
          },
          "posAccount": {
            "description": "Senkronizasyonu kuyruğa alınan POS hesabı.",
            "$ref": "#/components/schemas/BasicPosAccountDto"
          }
        }
      },
      "QueuedPosMerchantDiscoveryDto": {
        "required": [
          "queued",
          "tenant"
        ],
        "type": "object",
        "properties": {
          "queued": {
            "type": "boolean",
            "description": "Keşfin kuyruğa alınıp alınmadığı. Tenant için bekleyen bir keşif işi varsa false döner."
          },
          "tenant": {
            "description": "Keşfin yapılacağı tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          }
        }
      },
      "QueuedReportDto": {
        "required": [
          "id",
          "type",
          "status",
          "creationTime"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Rapor kimliği."
          },
          "type": {
            "enum": [
              "InvoicesByTemplate",
              "InvoicesByTimePeriod",
              "InvoicesByDocumentType",
              "InvoicesByInvoiceType",
              "InvoicesByCurrency",
              "BankTransactionsByBank",
              "BankTransactionsByDirection",
              "BankTransactionsByRiskCategory",
              "BankTransactionsByTimePeriod",
              "BankTransactionsByCurrency",
              "IdentityVerificationsByMethod",
              "IdentityVerificationsByRiskLevel",
              "IdentityVerificationsByTimePeriod",
              "IdentityVerificationsByPurpose",
              "RiskAnalysisOverview",
              "GoldDealingInvoicesByFineness",
              "InventoryStockSnapshot",
              "InventoryMovementsByTimePeriod"
            ],
            "type": "string"
          },
          "status": {
            "enum": [
              "Pending",
              "Running",
              "Completed",
              "Failed"
            ],
            "type": "string"
          },
          "creationTime": {
            "type": "string",
            "description": "Raporun kuyruğa alınma zamanı.",
            "format": "date-time"
          }
        }
      },
      "QueueReportInput": {
        "required": [
          "name",
          "parameters"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Raporun görüntülenecek adı."
          },
          "parameters": {
            "description": "Raporun tipine özgü filtre parametreleri. \"type\" alanı rapor tipini belirler.",
            "$ref": "#/components/schemas/ReportParametersInput"
          }
        }
      },
      "QuickAssignBankAccountInfoLegalEntityInput": {
        "required": [
          "bankAccountTransactionId"
        ],
        "type": "object",
        "properties": {
          "bankAccountTransactionId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Cariye bağlanacak banka hesap hareketinin kimliği.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "legalEntityId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Bağlanacak mevcut carinin kimliği. Verilmezse EntityNumber ile cari oluşturulur veya bulunur.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "entityNumber": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Yeni cari için T.C. / vergi kimlik numarası. LegalEntityId verilmediğinde zorunludur.",
                "$ref": "#/components/schemas/TurkishEntityNumber"
              }
            ]
          },
          "fullName": {
            "maxLength": 140,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Yeni cari için ad / unvan."
          },
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap için kısa ad / rumuz."
          }
        }
      },
      "QuickAssignLegalEntityResultDto": {
        "required": [
          "legalEntity",
          "retroactiveAssignmentQueued"
        ],
        "type": "object",
        "properties": {
          "legalEntity": {
            "description": "Harekete bağlanan cari.",
            "$ref": "#/components/schemas/BasicLegalEntityDto"
          },
          "bankAccountInfo": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hareketin IBAN'ı için açılan ya da bulunan hesap kaydı. Hareketin IBAN'ı yoksa null olur.",
                "$ref": "#/components/schemas/DetailedBankAccountInfoDto"
              }
            ]
          },
          "retroactiveAssignmentQueued": {
            "type": "boolean",
            "description": "Aynı IBAN'a sahip geçmiş hareketlere ve belgelerine cariyi geriye dönük atayan iş kuyruklandıysa true. IBAN olmadan bağlama yapıldığında false olur."
          }
        }
      },
      "RejectInvoiceInput": {
        "required": [
          "message"
        ],
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Gelen faturanın reddedilme gerekçesi."
          }
        }
      },
      "ReportDto": {
        "required": [
          "hasExcelFile",
          "id",
          "type",
          "status",
          "name",
          "creationTime"
        ],
        "type": "object",
        "properties": {
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Raporu oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Raporun ait olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "hasExcelFile": {
            "type": "boolean",
            "description": "Rapora ait Excel dosyasının bulunup bulunmadığı."
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Rapor oluşturulurken oluşan hata mesajı."
          },
          "id": {
            "type": "string",
            "description": "Rapor kimliği."
          },
          "type": {
            "enum": [
              "InvoicesByTemplate",
              "InvoicesByTimePeriod",
              "InvoicesByDocumentType",
              "InvoicesByInvoiceType",
              "InvoicesByCurrency",
              "BankTransactionsByBank",
              "BankTransactionsByDirection",
              "BankTransactionsByRiskCategory",
              "BankTransactionsByTimePeriod",
              "BankTransactionsByCurrency",
              "IdentityVerificationsByMethod",
              "IdentityVerificationsByRiskLevel",
              "IdentityVerificationsByTimePeriod",
              "IdentityVerificationsByPurpose",
              "RiskAnalysisOverview",
              "GoldDealingInvoicesByFineness",
              "InventoryStockSnapshot",
              "InventoryMovementsByTimePeriod"
            ],
            "type": "string"
          },
          "status": {
            "enum": [
              "Pending",
              "Running",
              "Completed",
              "Failed"
            ],
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Raporun adı."
          },
          "creationTime": {
            "type": "string",
            "description": "Raporun oluşturulma zamanı.",
            "format": "date-time"
          },
          "startedTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Raporun oluşturulmaya başlandığı zaman.",
            "format": "date-time"
          },
          "completedTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Raporun tamamlandığı zaman.",
            "format": "date-time"
          }
        }
      },
      "ReportParametersInput": {
        "required": [
          "reportType"
        ],
        "type": "object",
        "anyOf": [
          {
            "$ref": "#/components/schemas/ReportParametersInputInvoicesByTemplateReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputInvoicesByTimePeriodReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputInvoicesByDocumentTypeReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputInvoicesByInvoiceTypeReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputInvoicesByCurrencyReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputBankTransactionsByBankReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputBankTransactionsByDirectionReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputBankTransactionsByRiskCategoryReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputBankTransactionsByTimePeriodReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputBankTransactionsByCurrencyReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputIdentityVerificationsByMethodReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputIdentityVerificationsByRiskLevelReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputIdentityVerificationsByTimePeriodReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputIdentityVerificationsByPurposeReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputRiskAnalysisReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputGoldDealingInvoicesByFinenessReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputInventoryStockSnapshotReportInput"
          },
          {
            "$ref": "#/components/schemas/ReportParametersInputInventoryMovementsByTimePeriodReportInput"
          }
        ],
        "discriminator": {
          "propertyName": "reportType",
          "mapping": {
            "InvoicesByTemplate": "#/components/schemas/ReportParametersInputInvoicesByTemplateReportInput",
            "InvoicesByTimePeriod": "#/components/schemas/ReportParametersInputInvoicesByTimePeriodReportInput",
            "InvoicesByDocumentType": "#/components/schemas/ReportParametersInputInvoicesByDocumentTypeReportInput",
            "InvoicesByInvoiceType": "#/components/schemas/ReportParametersInputInvoicesByInvoiceTypeReportInput",
            "InvoicesByCurrency": "#/components/schemas/ReportParametersInputInvoicesByCurrencyReportInput",
            "BankTransactionsByBank": "#/components/schemas/ReportParametersInputBankTransactionsByBankReportInput",
            "BankTransactionsByDirection": "#/components/schemas/ReportParametersInputBankTransactionsByDirectionReportInput",
            "BankTransactionsByRiskCategory": "#/components/schemas/ReportParametersInputBankTransactionsByRiskCategoryReportInput",
            "BankTransactionsByTimePeriod": "#/components/schemas/ReportParametersInputBankTransactionsByTimePeriodReportInput",
            "BankTransactionsByCurrency": "#/components/schemas/ReportParametersInputBankTransactionsByCurrencyReportInput",
            "IdentityVerificationsByMethod": "#/components/schemas/ReportParametersInputIdentityVerificationsByMethodReportInput",
            "IdentityVerificationsByRiskLevel": "#/components/schemas/ReportParametersInputIdentityVerificationsByRiskLevelReportInput",
            "IdentityVerificationsByTimePeriod": "#/components/schemas/ReportParametersInputIdentityVerificationsByTimePeriodReportInput",
            "IdentityVerificationsByPurpose": "#/components/schemas/ReportParametersInputIdentityVerificationsByPurposeReportInput",
            "RiskAnalysisOverview": "#/components/schemas/ReportParametersInputRiskAnalysisReportInput",
            "GoldDealingInvoicesByFineness": "#/components/schemas/ReportParametersInputGoldDealingInvoicesByFinenessReportInput",
            "InventoryStockSnapshot": "#/components/schemas/ReportParametersInputInventoryStockSnapshotReportInput",
            "InventoryMovementsByTimePeriod": "#/components/schemas/ReportParametersInputInventoryMovementsByTimePeriodReportInput"
          }
        }
      },
      "ReportParametersInputBankTransactionsByBankReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "BankTransactionsByBank"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Arama filtresi metni."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "direction": {
            "enum": [
              "MoneyIn",
              "MoneyOut"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "transactionType": {
            "enum": [
              "None",
              "Other",
              "Havale",
              "EFT",
              "FAST",
              "PosPayment",
              "Bsmv",
              "Komisyon",
              "Masraf",
              "PosKesinti"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo işlemlerin filtrelenip filtrelenmeyeceği."
          },
          "isRisky": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Riskli işlemlerin filtrelenip filtrelenmeyeceği."
          },
          "minAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Filtrelenecek minimum tutar.",
            "format": "double"
          },
          "maxAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Filtrelenecek maksimum tutar.",
            "format": "double"
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek bitiş zamanı.",
            "format": "date-time"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputBankTransactionsByCurrencyReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "BankTransactionsByCurrency"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Arama filtresi metni."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "direction": {
            "enum": [
              "MoneyIn",
              "MoneyOut"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "transactionType": {
            "enum": [
              "None",
              "Other",
              "Havale",
              "EFT",
              "FAST",
              "PosPayment",
              "Bsmv",
              "Komisyon",
              "Masraf",
              "PosKesinti"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo işlemlerin filtrelenip filtrelenmeyeceği."
          },
          "isRisky": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Riskli işlemlerin filtrelenip filtrelenmeyeceği."
          },
          "minAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Filtrelenecek minimum tutar.",
            "format": "double"
          },
          "maxAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Filtrelenecek maksimum tutar.",
            "format": "double"
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek bitiş zamanı.",
            "format": "date-time"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputBankTransactionsByDirectionReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "BankTransactionsByDirection"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Arama filtresi metni."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "direction": {
            "enum": [
              "MoneyIn",
              "MoneyOut"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "transactionType": {
            "enum": [
              "None",
              "Other",
              "Havale",
              "EFT",
              "FAST",
              "PosPayment",
              "Bsmv",
              "Komisyon",
              "Masraf",
              "PosKesinti"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo işlemlerin filtrelenip filtrelenmeyeceği."
          },
          "isRisky": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Riskli işlemlerin filtrelenip filtrelenmeyeceği."
          },
          "minAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Filtrelenecek minimum tutar.",
            "format": "double"
          },
          "maxAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Filtrelenecek maksimum tutar.",
            "format": "double"
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek bitiş zamanı.",
            "format": "date-time"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputBankTransactionsByRiskCategoryReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "BankTransactionsByRiskCategory"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Arama filtresi metni."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "direction": {
            "enum": [
              "MoneyIn",
              "MoneyOut"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "transactionType": {
            "enum": [
              "None",
              "Other",
              "Havale",
              "EFT",
              "FAST",
              "PosPayment",
              "Bsmv",
              "Komisyon",
              "Masraf",
              "PosKesinti"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo işlemlerin filtrelenip filtrelenmeyeceği."
          },
          "isRisky": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Riskli işlemlerin filtrelenip filtrelenmeyeceği."
          },
          "minAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Filtrelenecek minimum tutar.",
            "format": "double"
          },
          "maxAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Filtrelenecek maksimum tutar.",
            "format": "double"
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek bitiş zamanı.",
            "format": "date-time"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputBankTransactionsByTimePeriodReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "BankTransactionsByTimePeriod"
            ],
            "type": "string"
          },
          "granularity": {
            "enum": [
              "Daily",
              "Weekly",
              "Monthly",
              "Quarterly",
              "Yearly"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Arama filtresi metni."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "direction": {
            "enum": [
              "MoneyIn",
              "MoneyOut"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "transactionType": {
            "enum": [
              "None",
              "Other",
              "Havale",
              "EFT",
              "FAST",
              "PosPayment",
              "Bsmv",
              "Komisyon",
              "Masraf",
              "PosKesinti"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo işlemlerin filtrelenip filtrelenmeyeceği."
          },
          "isRisky": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Riskli işlemlerin filtrelenip filtrelenmeyeceği."
          },
          "minAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Filtrelenecek minimum tutar.",
            "format": "double"
          },
          "maxAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Filtrelenecek maksimum tutar.",
            "format": "double"
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek bitiş zamanı.",
            "format": "date-time"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputGoldDealingInvoicesByFinenessReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "GoldDealingInvoicesByFineness"
            ],
            "type": "string"
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Başlangıç tarihi (fatura düzenlenme/IssueTime tarihine göre).",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bitiş tarihi (fatura düzenlenme/IssueTime tarihine göre).",
            "format": "date-time"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputIdentityVerificationsByMethodReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "IdentityVerificationsByMethod"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti adı veya bilgilerine göre arama filtresi."
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo kayıtlara göre filtreleme."
          },
          "isRisky": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Riskli olarak işaretlenmiş kayıtlara göre filtreleme."
          },
          "hasCustomerTransactions": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Müşteri işlemi bulunan kayıtlara göre filtreleme."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek bitiş zamanı.",
            "format": "date-time"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputIdentityVerificationsByPurposeReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "IdentityVerificationsByPurpose"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti adı veya bilgilerine göre arama filtresi."
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo kayıtlara göre filtreleme."
          },
          "isRisky": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Riskli olarak işaretlenmiş kayıtlara göre filtreleme."
          },
          "hasCustomerTransactions": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Müşteri işlemi bulunan kayıtlara göre filtreleme."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek bitiş zamanı.",
            "format": "date-time"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputIdentityVerificationsByRiskLevelReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "IdentityVerificationsByRiskLevel"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti adı veya bilgilerine göre arama filtresi."
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo kayıtlara göre filtreleme."
          },
          "isRisky": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Riskli olarak işaretlenmiş kayıtlara göre filtreleme."
          },
          "hasCustomerTransactions": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Müşteri işlemi bulunan kayıtlara göre filtreleme."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek bitiş zamanı.",
            "format": "date-time"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputIdentityVerificationsByTimePeriodReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "IdentityVerificationsByTimePeriod"
            ],
            "type": "string"
          },
          "granularity": {
            "enum": [
              "Daily",
              "Weekly",
              "Monthly",
              "Quarterly",
              "Yearly"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti adı veya bilgilerine göre arama filtresi."
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo kayıtlara göre filtreleme."
          },
          "isRisky": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Riskli olarak işaretlenmiş kayıtlara göre filtreleme."
          },
          "hasCustomerTransactions": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Müşteri işlemi bulunan kayıtlara göre filtreleme."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek bitiş zamanı.",
            "format": "date-time"
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputInventoryMovementsByTimePeriodReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "InventoryMovementsByTimePeriod"
            ],
            "type": "string"
          },
          "inventoryIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Filtrelenecek envanter listesi. Her bir değer Ulid veya \"default\" olabilir."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bitiş zamanı.",
            "format": "date-time"
          },
          "granularity": {
            "enum": [
              "Daily",
              "Weekly",
              "Monthly",
              "Quarterly",
              "Yearly"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "movementTypes": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Hareket türü filtresi (Manual / Automatic)."
          },
          "sources": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Kaynak filtresi (Manual / Invoice / Expense)."
          },
          "productIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Rapora dahil edilecek ürünlerin ID listesi."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputInventoryStockSnapshotReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "InventoryStockSnapshot"
            ],
            "type": "string"
          },
          "inventoryId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Filtrelenecek envanter. Ulid veya \"default\" değeri olabilir."
          },
          "includeZeroQuantity": {
            "type": "boolean",
            "description": "Sıfır miktarlı envanter kalemleri dahil edilsin mi?"
          },
          "productIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Rapora dahil edilecek ürünlerin ID listesi."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputInvoicesByCurrencyReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "InvoicesByCurrency"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura arama metni."
          },
          "eDocumentType": {
            "enum": [
              "EInvoice",
              "EArchiveInvoice"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceScenario": {
            "enum": [
              "TemelFatura",
              "TicariFatura"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceType": {
            "enum": [
              "Satis",
              "Istisna",
              "OzelMatrah",
              "Iade"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "minAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Asgari fatura tutarı (KDV dahil).",
            "format": "double"
          },
          "maxAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Azami fatura tutarı (KDV dahil).",
            "format": "double"
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo faturaları filtreleme durumu."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura bitiş zamanı.",
            "format": "date-time"
          },
          "productIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Filtrelenecek ürün kimlikleri."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputInvoicesByDocumentTypeReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "InvoicesByDocumentType"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura arama metni."
          },
          "eDocumentType": {
            "enum": [
              "EInvoice",
              "EArchiveInvoice"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceScenario": {
            "enum": [
              "TemelFatura",
              "TicariFatura"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceType": {
            "enum": [
              "Satis",
              "Istisna",
              "OzelMatrah",
              "Iade"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "minAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Asgari fatura tutarı (KDV dahil).",
            "format": "double"
          },
          "maxAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Azami fatura tutarı (KDV dahil).",
            "format": "double"
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo faturaları filtreleme durumu."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura bitiş zamanı.",
            "format": "date-time"
          },
          "productIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Filtrelenecek ürün kimlikleri."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputInvoicesByInvoiceTypeReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "InvoicesByInvoiceType"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura arama metni."
          },
          "eDocumentType": {
            "enum": [
              "EInvoice",
              "EArchiveInvoice"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceScenario": {
            "enum": [
              "TemelFatura",
              "TicariFatura"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceType": {
            "enum": [
              "Satis",
              "Istisna",
              "OzelMatrah",
              "Iade"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "minAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Asgari fatura tutarı (KDV dahil).",
            "format": "double"
          },
          "maxAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Azami fatura tutarı (KDV dahil).",
            "format": "double"
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo faturaları filtreleme durumu."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura bitiş zamanı.",
            "format": "date-time"
          },
          "productIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Filtrelenecek ürün kimlikleri."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputInvoicesByTemplateReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "InvoicesByTemplate"
            ],
            "type": "string"
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura arama metni."
          },
          "eDocumentType": {
            "enum": [
              "EInvoice",
              "EArchiveInvoice"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceScenario": {
            "enum": [
              "TemelFatura",
              "TicariFatura"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceType": {
            "enum": [
              "Satis",
              "Istisna",
              "OzelMatrah",
              "Iade"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "minAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Asgari fatura tutarı (KDV dahil).",
            "format": "double"
          },
          "maxAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Azami fatura tutarı (KDV dahil).",
            "format": "double"
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo faturaları filtreleme durumu."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura bitiş zamanı.",
            "format": "date-time"
          },
          "productIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Filtrelenecek ürün kimlikleri."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputInvoicesByTimePeriodReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "InvoicesByTimePeriod"
            ],
            "type": "string"
          },
          "granularity": {
            "enum": [
              "Daily",
              "Weekly",
              "Monthly",
              "Quarterly",
              "Yearly"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "searchFilter": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura arama metni."
          },
          "eDocumentType": {
            "enum": [
              "EInvoice",
              "EArchiveInvoice"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceScenario": {
            "enum": [
              "TemelFatura",
              "TicariFatura"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceType": {
            "enum": [
              "Satis",
              "Istisna",
              "OzelMatrah",
              "Iade"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "minAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Asgari fatura tutarı (KDV dahil).",
            "format": "double"
          },
          "maxAmount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Azami fatura tutarı (KDV dahil).",
            "format": "double"
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo faturaları filtreleme durumu."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura başlangıç zamanı.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura bitiş zamanı.",
            "format": "date-time"
          },
          "productIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Filtrelenecek ürün kimlikleri."
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ReportParametersInputRiskAnalysisReportInput": {
        "properties": {
          "reportType": {
            "enum": [
              "RiskAnalysisOverview"
            ],
            "type": "string"
          },
          "isDemo": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Demo kayıtlara göre filtreleme."
          },
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Raporun başlangıç tarih ve saati (UTC).",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Raporun bitiş tarih ve saati (UTC).",
            "format": "date-time"
          },
          "minimumRiskLevel": {
            "enum": [
              "None",
              "Low",
              "Medium",
              "High"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "tenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Raporun oluşturulacağı tenant (sadece host hesapları için).",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "ResetPasswordViaSmsDto": {
        "required": [
          "userId"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Şifresi SMS ile sıfırlanacak kullanıcının kimliği.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "RespondToDespatchAdviceInput": {
        "required": [
          "responseType"
        ],
        "type": "object",
        "properties": {
          "responseType": {
            "enum": [
              "Accepted",
              "Rejected"
            ],
            "type": "string"
          },
          "note": {
            "maxLength": 1000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Yanıt notu."
          },
          "deliveryTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Teslim zamanı.",
            "format": "date-time"
          },
          "deliveryContact": {
            "type": [
              "null",
              "string"
            ],
            "description": "Teslim alan kişi."
          },
          "lines": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/RespondToDespatchAdviceLineInput"
            },
            "description": "Kalem bazlı yanıt bilgileri."
          }
        }
      },
      "RespondToDespatchAdviceLineInput": {
        "required": [
          "lineNumber",
          "receivedQuantity"
        ],
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "İlgili irsaliye kalemi sıra numarası.",
            "format": "int32"
          },
          "receivedQuantity": {
            "minLength": 0,
            "type": "number",
            "description": "Teslim alınan miktar.",
            "format": "double"
          },
          "rejectedQuantity": {
            "minLength": 0,
            "type": [
              "null",
              "number"
            ],
            "description": "Reddedilen (hasarlı) miktar.",
            "format": "double"
          },
          "shortQuantity": {
            "minLength": 0,
            "type": [
              "null",
              "number"
            ],
            "description": "Eksik gelen miktar.",
            "format": "double"
          },
          "oversupplyQuantity": {
            "minLength": 0,
            "type": [
              "null",
              "number"
            ],
            "description": "Fazla gelen miktar.",
            "format": "double"
          },
          "rejectReason": {
            "maxLength": 1000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Reddetme/şikayet sebebi."
          }
        }
      },
      "ReturnableEArchiveInvoiceDto": {
        "required": [
          "invoiceId",
          "number",
          "issueDate",
          "payableAmount",
          "alreadyReturned"
        ],
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "Fatura ID."
          },
          "number": {
            "type": "string",
            "description": "Fatura numarası."
          },
          "issueDate": {
            "type": "string",
            "description": "Fatura tarihi.",
            "format": "date-time"
          },
          "payableAmount": {
            "type": "number",
            "description": "Ödenecek tutar.",
            "format": "double"
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura açıklaması."
          },
          "alreadyReturned": {
            "type": "boolean",
            "description": "Daha önce iade edilmiş mi."
          }
        }
      },
      "RoleDto": {
        "required": [
          "assignedPermissionsCount",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "assignedPermissionsCount": {
            "type": "integer",
            "description": "Role atanmış yetki sayısı.",
            "format": "int32"
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Rolün bağlı olduğu tenant.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "federation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Rolün bağlı olduğu federation.",
                "$ref": "#/components/schemas/BasicFederationDto"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "Rolün kimliği."
          },
          "name": {
            "type": "string",
            "description": "Rolün adı."
          }
        }
      },
      "RolePermissionCategoryDto": {
        "required": [
          "category",
          "name",
          "permissions",
          "policies"
        ],
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "Kategorinin tam adı. Örnek: Kts.BankAccountTransactions."
          },
          "name": {
            "type": "string",
            "description": "Kategorinin ön ek içermeyen adı. Örnek: BankAccountTransactions."
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RolePermissionDto"
            },
            "description": "Kategorideki yetkiler ve role verilip verilmedikleri."
          },
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RolePolicyDto"
            },
            "description": "Kategoriye bağlı politikalar ve rol için yapılandırmaları."
          }
        }
      },
      "RolePermissionDto": {
        "required": [
          "id",
          "name",
          "action",
          "requiresApproval",
          "isGranted"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Yetki tanımının kimliği."
          },
          "name": {
            "type": "string",
            "description": "Yetkinin tam adı. Örnek: Kts.BankAccountTransactions.Get."
          },
          "action": {
            "type": "string",
            "description": "Yetkinin kategori içindeki eylem adı. Örnek: Get."
          },
          "requiresApproval": {
            "type": "boolean",
            "description": "Yetkinin kullanımının onay gerektirip gerektirmediği."
          },
          "isGranted": {
            "type": "boolean",
            "description": "Yetkinin role verilmiş olup olmadığı."
          }
        }
      },
      "RolePolicyDto": {
        "required": [
          "policyType",
          "displayName",
          "description",
          "permissionCategory",
          "isEnabled",
          "configuration"
        ],
        "type": "object",
        "properties": {
          "policyType": {
            "enum": [
              "RestrictBankAccountAccess",
              "RestrictBankTransactionsAccess",
              "RestrictBranchAccess"
            ],
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "description": "Politikanın görünen adı."
          },
          "description": {
            "type": "string",
            "description": "Politikanın ne yaptığının açıklaması."
          },
          "permissionCategory": {
            "type": "string",
            "description": "Politikanın bağlı olduğu yetki kategorisi."
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Politikanın rol için etkin olup olmadığı."
          },
          "configuration": {
            "description": "Politikaya özel yapılandırma.",
            "$ref": "#/components/schemas/JsonElement"
          }
        }
      },
      "SanctionedPersonMatchDto": {
        "required": [
          "id",
          "screeningTime",
          "screeningReason",
          "sanctionedPersonFtmId",
          "sanctionedPersonDataSourceType",
          "sanctionedPersonEntityType",
          "riskScore",
          "riskCategory",
          "matchedFields"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Eşleşme kaydının kimliği."
          },
          "screeningTime": {
            "type": "string",
            "description": "Taramanın yapıldığı zaman.",
            "format": "date-time"
          },
          "screeningReason": {
            "enum": [
              "Manual",
              "IdentityVerification",
              "BankTransaction"
            ],
            "type": "string"
          },
          "sanctionedPersonFtmId": {
            "type": "string",
            "description": "Eşleşen yaptırımlı kişinin FollowTheMoney kimliği."
          },
          "sanctionedPersonDataSourceType": {
            "type": "string",
            "description": "Eşleşen yaptırımlı kişinin veri kaynağı türü."
          },
          "sanctionedPersonEntityType": {
            "type": "string",
            "description": "Eşleşen yaptırımlı kişinin varlık türü."
          },
          "sanctionedPersonCaption": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin görünen adı."
          },
          "sanctionedPersonNames": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin adları."
          },
          "sanctionedPersonFirstName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin adı."
          },
          "sanctionedPersonMiddleName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin ikinci adı."
          },
          "sanctionedPersonLastName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin soyadı."
          },
          "sanctionedPersonBirthDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin doğum tarihi."
          },
          "sanctionedPersonBirthPlace": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin doğum yeri."
          },
          "sanctionedPersonNationality": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin uyruğu."
          },
          "sanctionedPersonGender": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin cinsiyeti."
          },
          "sanctionedPersonIdNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin kimlik numarası."
          },
          "sanctionedPersonPassportNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin pasaport numarası."
          },
          "sanctionedPersonCountry": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişiye ait ülke."
          },
          "sanctionedPersonTopics": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişiye ait yaptırım konu başlıkları."
          },
          "sanctionedPersonPosition": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin görevi veya pozisyonu."
          },
          "sanctionedPersonFtmDatasets": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin bulunduğu veri setleri."
          },
          "sanctionedPersonDataSourceName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin veri kaynağının adı."
          },
          "sanctionedPersonDataSourceLink": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin veri kaynağı bağlantısı."
          },
          "sanctionedPersonDataSourceEntryLink": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen yaptırımlı kişinin veri kaynağındaki kayıt bağlantısı."
          },
          "riskScore": {
            "type": "number",
            "description": "Eşleşmeye ait risk puanı.",
            "format": "double"
          },
          "riskCategory": {
            "type": "string",
            "description": "Eşleşmeye ait risk kategorisi."
          },
          "matchedFields": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Eşleşmenin bulunduğu alanlar."
          },
          "sanctionedPersonSourceReferences": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/SanctionSourceReferenceDto"
            },
            "description": "Resmî Gazete ya da haber kaynaklı eşleşmelerde kaydın dayandığı kaynaklar."
          },
          "sanctionedPersonPhoto": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Haber kaynaklı eşleşmelerde haberde yer alan görsel.",
                "$ref": "#/components/schemas/SanctionPersonPhotoDto"
              }
            ]
          },
          "sourceRetractedTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşmenin dayandığı izlenen kayıt devre dışı bırakıldıysa ya da listeden kaldırıldıysa o zaman.",
            "format": "date-time"
          }
        }
      },
      "SanctionPersonPhotoDto": {
        "required": [
          "path",
          "publisher"
        ],
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Görselin API üzerinden alınacağı yol."
          },
          "publisher": {
            "type": "string",
            "description": "Görseli yayımlayan haber sitesi."
          },
          "articleUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Görselin yer aldığı haberin bağlantısı."
          }
        }
      },
      "SanctionSourceReferenceDto": {
        "required": [
          "kind",
          "url",
          "title",
          "publisher",
          "judicialMeasures"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "enum": [
              "GazetteDecision",
              "NewsArticle"
            ],
            "type": "string"
          },
          "url": {
            "type": "string",
            "description": "Kaynağın bağlantısı."
          },
          "title": {
            "type": "string",
            "description": "Kaynağın başlığı."
          },
          "publisher": {
            "type": "string",
            "description": "Kaynağı yayımlayan."
          },
          "publishedTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kaynağın yayımlanma zamanı.",
            "format": "date-time"
          },
          "excerpt": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kaynaktaki ilgili cümle."
          },
          "gazetteDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Resmî Gazete tarihi.",
            "format": "date"
          },
          "gazetteIssueNumber": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Resmî Gazete sayısı.",
            "format": "int32"
          },
          "gazetteMukerrerNumber": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Resmî Gazete mükerrer numarası.",
            "format": "int32"
          },
          "decisionNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Karar sayısı."
          },
          "decisionKind": {
            "enum": [
              "Freeze",
              "Removal"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "legalBasis": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kararın hukuki dayanağı."
          },
          "judicialMeasures": {
            "type": "array",
            "items": {
              "enum": [
                "AssetFreeze",
                "ArrestWarrant",
                "Arrest",
                "TravelBan",
                "AssetSeizure"
              ],
              "type": "string"
            },
            "description": "Haberde geçen adli tedbirler (yakalama kararı, tutuklama, yurt dışı çıkış yasağı, malvarlığı dondurma)."
          }
        }
      },
      "SanctionsScreeningMatchDto": {
        "required": [
          "ftmId",
          "dataSource",
          "entityType",
          "caption",
          "score",
          "matchedFields"
        ],
        "type": "object",
        "properties": {
          "ftmId": {
            "type": "string",
            "description": "Eşleşen kaydın FollowTheMoney kimliği."
          },
          "dataSource": {
            "enum": [
              "Crime",
              "Debarment",
              "Regulatory",
              "Pep",
              "Sanctions",
              "Gazette",
              "News",
              "Judicial"
            ],
            "type": "string"
          },
          "entityType": {
            "type": "string",
            "description": "Eşleşen kaydın varlık türü."
          },
          "caption": {
            "type": "string",
            "description": "Eşleşen kaydın görünen adı."
          },
          "score": {
            "type": "number",
            "description": "Eşleşme puanı.",
            "format": "double"
          },
          "matchedFields": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Eşleşmenin bulunduğu alanlar."
          },
          "names": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen kişi veya kurumun adları."
          },
          "birthDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen kişinin doğum tarihi."
          },
          "nationality": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen kişinin uyruğu."
          },
          "country": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen kayda ait ülke."
          },
          "idNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen kaydın kimlik numarası."
          },
          "topics": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen kayda ait yaptırım konu başlıkları."
          },
          "position": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen kişinin görevi veya pozisyonu."
          },
          "ftmDatasets": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşleşen kaydın bulunduğu veri setleri."
          },
          "sourceReferences": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/SanctionSourceReferenceDto"
            },
            "description": "Resmî Gazete ya da haber kaynaklı kayıtlarda kaydın dayandığı kaynaklar."
          },
          "photo": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Haber kaynaklı kayıtlarda haberde yer alan görsel.",
                "$ref": "#/components/schemas/SanctionPersonPhotoDto"
              }
            ]
          }
        }
      },
      "SanctionsScreeningResultDto": {
        "required": [
          "hasMatch",
          "hasFailed",
          "riskScore",
          "riskCategory",
          "matches"
        ],
        "type": "object",
        "properties": {
          "hasMatch": {
            "type": "boolean",
            "description": "Yaptırım listesinde eşleşme bulunup bulunmadığı."
          },
          "hasFailed": {
            "type": "boolean",
            "description": "Taramanın başarısız olup olmadığı."
          },
          "riskScore": {
            "type": "number",
            "description": "Hesaplanan risk puanı.",
            "format": "double"
          },
          "riskCategory": {
            "enum": [
              "None",
              "Low",
              "Medium",
              "High"
            ],
            "type": "string"
          },
          "matches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SanctionsScreeningMatchDto"
            },
            "description": "Bulunan yaptırım eşleşmeleri."
          }
        }
      },
      "SanctionsScreeningResultV2Dto": {
        "required": [
          "hasMatch",
          "hasFailed",
          "riskScore",
          "riskCategory",
          "matches"
        ],
        "type": "object",
        "properties": {
          "hasMatch": {
            "type": "boolean",
            "description": "Yaptırım listesinde eşleşme bulunup bulunmadığı."
          },
          "hasFailed": {
            "type": "boolean",
            "description": "Taramanın başarısız olup olmadığı."
          },
          "riskScore": {
            "type": "number",
            "description": "Hesaplanan risk puanı.",
            "format": "double"
          },
          "riskCategory": {
            "enum": [
              "None",
              "Low",
              "Medium",
              "High"
            ],
            "type": "string"
          },
          "matches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SanctionedPersonMatchDto"
            },
            "description": "Bulunan yaptırımlı kişi eşleşmeleri."
          }
        }
      },
      "ScreenAddressInput": {
        "type": "object",
        "properties": {
          "fullAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Tam adres"
          },
          "city": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şehir"
          },
          "country": {
            "type": [
              "null",
              "string"
            ],
            "description": "Ülke"
          }
        }
      },
      "ScreenEntityInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kuruluş adı"
          },
          "registrationNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kayıt numarası"
          },
          "country": {
            "type": [
              "null",
              "string"
            ],
            "description": "Ülke"
          }
        }
      },
      "ScreenPersonInput": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Ad"
          },
          "lastName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Soyad"
          },
          "fullName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Tam ad"
          },
          "birthDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Doğum tarihi"
          },
          "birthYear": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Doğum yılı",
            "format": "int32"
          },
          "birthPlace": {
            "type": [
              "null",
              "string"
            ],
            "description": "Doğum yeri"
          },
          "nationality": {
            "type": [
              "null",
              "string"
            ],
            "description": "Uyruk"
          },
          "idNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik numarası"
          },
          "passportNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Pasaport numarası"
          },
          "gender": {
            "type": [
              "null",
              "string"
            ],
            "description": "Cinsiyet"
          },
          "country": {
            "type": [
              "null",
              "string"
            ],
            "description": "Ülke"
          }
        }
      },
      "SendEVoucherVerificationCodeInput": {
        "required": [
          "phone"
        ],
        "type": "object",
        "properties": {
          "phone": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Doğrulanacak kişinin (iade eden ya da alıcı) cep telefonu."
          }
        }
      },
      "SendKvkkVerificationCodeInput": {
        "required": [
          "phoneNumber"
        ],
        "type": "object",
        "properties": {
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": "string",
            "description": "KVKK onay kodu gönderilecek telefon numarası."
          }
        }
      },
      "SetBankAccountTransactionsHiddenInput": {
        "required": [
          "transactionIds",
          "isHidden"
        ],
        "type": "object",
        "properties": {
          "transactionIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gizlilik durumu değiştirilecek hesap hareketi ID'leri."
          },
          "isHidden": {
            "type": "boolean",
            "description": "True ise gizler, false ise görünür yapar."
          }
        }
      },
      "SetBankAccountTransactionsProcessionInput": {
        "required": [
          "transactionIds",
          "isProcessed"
        ],
        "type": "object",
        "properties": {
          "transactionIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "İşlenme durumu değiştirilecek hesap hareketi ID'leri."
          },
          "isProcessed": {
            "type": "boolean",
            "description": "True ise işlenmiş olarak işaretler, false ise işaretlemeyi kaldırır."
          },
          "processionNote": {
            "maxLength": 200,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "İşlenme notu. Boş veya null gönderildiğinde not temizlenir. IsProcessed false ise her koşulda temizlenir."
          }
        }
      },
      "SetDataTablePreferenceInput": {
        "required": [
          "settings"
        ],
        "type": "object",
        "properties": {
          "settings": {
            "description": "Kaydedilecek tablo ayarları. Belirtilmeyen alanlar varsayılanlardan tamamlanır.",
            "$ref": "#/components/schemas/JsonObject"
          }
        }
      },
      "SetDefaultInventoryInput": {
        "required": [
          "inventoryId"
        ],
        "type": "object",
        "properties": {
          "inventoryId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Tenant'ın varsayılan envanter listesi olarak atanacak envanter listesi kimliği. \"default\" değeri bu uç noktada anlamsızdır ve hiçbir değişiklik yapmaz.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "SetIdentityVerificationSubjectTenantInput": {
        "required": [
          "subjectTenantId"
        ],
        "type": "object",
        "properties": {
          "subjectTenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kimlik tespitinin adına yapıldığı tenant. Kimlik tespitini yapan tenant, işlemi yapan tenant olarak korunur.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "SetInventoryItemStockInput": {
        "required": [
          "targetQuantity"
        ],
        "type": "object",
        "properties": {
          "inventoryItemId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Stok miktarı ayarlanacak envanter kalemi. Ürün ve envanter listesi bu kalemden çözümlenir. Verildiğinde productId ve inventoryId verilemez; verilmediğinde productId zorunludur.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "productId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Stok miktarı ayarlanacak envanter ürünü. inventoryItemId verilmediğinde zorunludur. Ürünün envanter listesinde kalemi yoksa otomatik oluşturulur.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "inventoryId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Stok miktarı ayarlanacak envanter listesi. Yalnızca productId ile birlikte verilebilir; verilmezse tenant'ın varsayılan envanter listesi kullanılır. \"default\" değeri varsayılan envanter listesini temsil eder."
          },
          "targetQuantity": {
            "type": "number",
            "description": "Stokun ayarlanacağı hedef miktar. Mevcut stok ile arasındaki fark giriş veya çıkış hareketi olarak kaydedilir. Negatif değerler kabul edilir.",
            "format": "double"
          },
          "comment": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Açıklama."
          }
        }
      },
      "SetInventoryItemStockResultDto": {
        "required": [
          "previousQuantity",
          "newQuantity"
        ],
        "type": "object",
        "properties": {
          "previousQuantity": {
            "type": "number",
            "description": "Stok güncellemesinden önceki miktar.",
            "format": "double"
          },
          "newQuantity": {
            "type": "number",
            "description": "Stok güncellemesinden sonraki miktar.",
            "format": "double"
          },
          "movement": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Stok güncellemesi sonucu oluşan stok hareketi.",
                "$ref": "#/components/schemas/InventoryItemMovementDto"
              }
            ]
          }
        }
      },
      "SetTenantBankAccountTransactionClassificationEnabledInput": {
        "required": [
          "isEnabled"
        ],
        "type": "object",
        "properties": {
          "isEnabled": {
            "type": "boolean",
            "description": "True ise kuralı etkinleştirir, false ise devre dışı bırakır."
          }
        }
      },
      "ShiftExpenseBillIndexesInput": {
        "required": [
          "index"
        ],
        "type": "object",
        "properties": {
          "index": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Gider pusulasına atanacak yeni sıra numarası. Bu gider pusulası ve sonrasındaki tüm gider pusulaları aynı miktarda kaydırılır.",
            "format": "int32"
          }
        }
      },
      "SynchronizeAllBankAccountsResultDto": {
        "required": [
          "queuedAccountCount",
          "skippedAccountCount",
          "queuedBankAccounts"
        ],
        "type": "object",
        "properties": {
          "queuedAccountCount": {
            "type": "integer",
            "description": "Senkronizasyon için kuyruğa alınan banka hesabı sayısı.",
            "format": "int32"
          },
          "skippedAccountCount": {
            "type": "integer",
            "description": "Bağlı olduğu banka için senkronizasyon desteği bulunmadığından atlanan banka hesabı sayısı.",
            "format": "int32"
          },
          "queuedBankAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankAccountReferenceDto"
            },
            "description": "Senkronizasyon için kuyruğa alınan banka hesapları."
          }
        }
      },
      "SynchronizeBankAccountInput": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Senkronize edilecek banka hareketlerinin başlangıç tarihi.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Senkronize edilecek banka hareketlerinin bitiş tarihi.",
            "format": "date-time"
          }
        }
      },
      "SynchronizeBankAccountResultDto": {
        "required": [
          "success"
        ],
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Senkronizasyonun başarılı olup olmadığı."
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Senkronizasyon başarısız olduysa hata mesajı."
          },
          "balance": {
            "type": [
              "null",
              "number"
            ],
            "description": "Hesabın güncel bakiyesi.",
            "format": "double"
          },
          "transactions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/BankAccountTransactionDto"
            },
            "description": "Senkronize edilen banka hesap hareketleri."
          }
        }
      },
      "SynchronizeExternalAccountInput": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşitlenecek gelen faturaların başlangıç tarihi (UTC). Boş bırakılırsa varsayılan geçmişe bakış aralığı kullanılır. Netgsm hesaplarında dikkate alınmaz.",
            "format": "date-time"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Eşitlenecek gelen faturaların bitiş tarihi (UTC). Boş bırakılırsa şu an kullanılır. Netgsm hesaplarında dikkate alınmaz.",
            "format": "date-time"
          }
        }
      },
      "SynchronizeExternalAccountResultDto": {
        "required": [
          "accountType"
        ],
        "type": "object",
        "anyOf": [
          {
            "$ref": "#/components/schemas/SynchronizeExternalAccountResultDtoIzibizSynchronizeResultDto"
          },
          {
            "$ref": "#/components/schemas/SynchronizeExternalAccountResultDtoTurkcellESirketSynchronizeResultDto"
          },
          {
            "$ref": "#/components/schemas/SynchronizeExternalAccountResultDtoUyumsoftSynchronizeResultDto"
          },
          {
            "$ref": "#/components/schemas/SynchronizeExternalAccountResultDtoNetgsmSynchronizeResultDto"
          }
        ],
        "discriminator": {
          "propertyName": "accountType",
          "mapping": {
            "Izibiz": "#/components/schemas/SynchronizeExternalAccountResultDtoIzibizSynchronizeResultDto",
            "TurkcellESirket": "#/components/schemas/SynchronizeExternalAccountResultDtoTurkcellESirketSynchronizeResultDto",
            "Uyumsoft": "#/components/schemas/SynchronizeExternalAccountResultDtoUyumsoftSynchronizeResultDto",
            "Netgsm": "#/components/schemas/SynchronizeExternalAccountResultDtoNetgsmSynchronizeResultDto"
          }
        }
      },
      "SynchronizeExternalAccountResultDtoIzibizSynchronizeResultDto": {
        "required": [
          "success"
        ],
        "properties": {
          "accountType": {
            "enum": [
              "Izibiz"
            ],
            "type": "string"
          },
          "success": {
            "type": "boolean",
            "description": "Eşitleme isteğinin sıraya alınıp alınmadığı. Eşitleme arka planda yürütülür."
          }
        }
      },
      "SynchronizeExternalAccountResultDtoNetgsmSynchronizeResultDto": {
        "required": [
          "remainingCredits",
          "success"
        ],
        "properties": {
          "accountType": {
            "enum": [
              "Netgsm"
            ],
            "type": "string"
          },
          "remainingCredits": {
            "type": "integer",
            "description": "Güncellenen kalan kontör sayısı.",
            "format": "int32"
          },
          "success": {
            "type": "boolean",
            "description": "Eşitleme isteğinin sıraya alınıp alınmadığı. Eşitleme arka planda yürütülür."
          }
        }
      },
      "SynchronizeExternalAccountResultDtoTurkcellESirketSynchronizeResultDto": {
        "required": [
          "success"
        ],
        "properties": {
          "accountType": {
            "enum": [
              "TurkcellESirket"
            ],
            "type": "string"
          },
          "success": {
            "type": "boolean",
            "description": "Eşitleme isteğinin sıraya alınıp alınmadığı. Eşitleme arka planda yürütülür."
          }
        }
      },
      "SynchronizeExternalAccountResultDtoUyumsoftSynchronizeResultDto": {
        "required": [
          "success"
        ],
        "properties": {
          "accountType": {
            "enum": [
              "Uyumsoft"
            ],
            "type": "string"
          },
          "success": {
            "type": "boolean",
            "description": "Eşitleme isteğinin sıraya alınıp alınmadığı. Eşitleme arka planda yürütülür."
          }
        }
      },
      "SynchronizeIncomingInvoiceDetailsInput": {
        "required": [
          "invoiceIds"
        ],
        "type": "object",
        "properties": {
          "invoiceIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Detayları çekilecek gelen fatura ID'leri."
          }
        }
      },
      "SynchronizeIncomingInvoiceDetailsResultDto": {
        "required": [
          "invoices",
          "failures"
        ],
        "type": "object",
        "properties": {
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DetailedInvoiceDto"
            },
            "description": "Senkronize edilen faturalar."
          },
          "failures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncomingInvoiceDetailFetchFailureDto"
            },
            "description": "Senkronizasyonu başarısız olan faturalar."
          }
        }
      },
      "TenantActivityStatsBreakdownDto": {
        "required": [
          "identityVerifications",
          "invoices",
          "customerTransactions",
          "bankAccountTransactions"
        ],
        "type": "object",
        "properties": {
          "identityVerifications": {
            "description": "Kimlik doğrulama aktivite istatistikleri.",
            "$ref": "#/components/schemas/TenantActivityStatsDto"
          },
          "invoices": {
            "description": "Fatura aktivite istatistikleri.",
            "$ref": "#/components/schemas/TenantActivityStatsDto"
          },
          "customerTransactions": {
            "description": "Cari işlem aktivite istatistikleri.",
            "$ref": "#/components/schemas/TenantActivityStatsDto"
          },
          "bankAccountTransactions": {
            "description": "Banka hesabı işlem aktivite istatistikleri.",
            "$ref": "#/components/schemas/TenantActivityStatsDto"
          }
        }
      },
      "TenantActivityStatsDto": {
        "required": [
          "last24Hours",
          "last7Days",
          "last30Days",
          "lastCreationTime"
        ],
        "type": "object",
        "properties": {
          "last24Hours": {
            "description": "Son 24 saatlik dönem istatistiği.",
            "$ref": "#/components/schemas/TenantActivityStatsPeriodDto"
          },
          "last7Days": {
            "description": "Son 7 günlük dönem istatistiği.",
            "$ref": "#/components/schemas/TenantActivityStatsPeriodDto"
          },
          "last30Days": {
            "description": "Son 30 günlük dönem istatistiği.",
            "$ref": "#/components/schemas/TenantActivityStatsPeriodDto"
          },
          "lastCreationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Son kaydın oluşturulma zamanı.",
            "format": "date-time"
          }
        }
      },
      "TenantActivityStatsPeriodDto": {
        "required": [
          "count",
          "previousCount",
          "changePercent"
        ],
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Dönem içindeki işlem sayısı.",
            "format": "int32"
          },
          "previousCount": {
            "type": "integer",
            "description": "Önceki dönemdeki işlem sayısı.",
            "format": "int32"
          },
          "changePercent": {
            "type": [
              "null",
              "number"
            ],
            "description": "Önceki döneme göre değişim oranı (%).",
            "format": "double"
          }
        }
      },
      "TenantBankAccountTransactionClassificationDto": {
        "required": [
          "id",
          "creationTime",
          "tenant",
          "name",
          "ruleType",
          "match",
          "isEnabled",
          "isBuiltIn"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Sınıflandırmanın kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Kaydın oluşturulma zamanı.",
            "format": "date-time"
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Sınıflandırmayı oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "tenant": {
            "description": "Sınıflandırmanın ait olduğu tenant.",
            "$ref": "#/components/schemas/BasicTenantDto"
          },
          "name": {
            "type": "string",
            "description": "Sınıflandırma adı."
          },
          "ruleType": {
            "enum": [
              "AutoHide"
            ],
            "type": "string"
          },
          "match": {
            "description": "Sınıflandırmanın eşleşme kuralı.",
            "$ref": "#/components/schemas/ClassificationMatchDto"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Kuralın etkin olup olmadığı. Devre dışı kurallar yeni hesap hareketlerine uygulanmaz."
          },
          "isBuiltIn": {
            "type": "boolean",
            "description": "Kuralın sistem tanımlı olup olmadığı. Sistem tanımlı kurallar silinemez ve eşleşme türleri değiştirilemez."
          }
        }
      },
      "TenantBranchActivityDto": {
        "required": [
          "kind",
          "id",
          "title",
          "time"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "enum": [
              "Invoice",
              "ExpenseBill",
              "EVoucher",
              "CustomerTransaction",
              "IdentityVerification",
              "PosSale",
              "DespatchAdvice",
              "Custody"
            ],
            "type": "string"
          },
          "id": {
            "type": "string",
            "description": "Kaynak kaydın kimliği."
          },
          "title": {
            "type": "string",
            "description": "Hareketin başlığı."
          },
          "subtitle": {
            "type": [
              "null",
              "string"
            ],
            "description": "Hareketin alt başlığı."
          },
          "amount": {
            "type": [
              "null",
              "number"
            ],
            "description": "Tutar.",
            "format": "double"
          },
          "currency": {
            "type": [
              "null",
              "string"
            ],
            "description": "Tutarın para birimi kodu."
          },
          "time": {
            "type": "string",
            "description": "Hareketin zamanı.",
            "format": "date-time"
          }
        }
      },
      "TenantBranchDto": {
        "required": [
          "tenantId",
          "creationTime",
          "userCount",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "description": "Şubenin bağlı olduğu tenant kimliği."
          },
          "creationTime": {
            "type": "string",
            "description": "Şubenin oluşturulma zamanı.",
            "format": "date-time"
          },
          "lastModificationTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Şubenin son güncellenme zamanı.",
            "format": "date-time"
          },
          "creator": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Şubeyi oluşturan kullanıcı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "userCount": {
            "type": "integer",
            "description": "Şubeye bağlı kullanıcı sayısı.",
            "format": "int32"
          },
          "id": {
            "type": "string",
            "description": "Şube kimliği."
          },
          "name": {
            "type": "string",
            "description": "Şube adı."
          }
        }
      },
      "TenantBranchStatsDto": {
        "required": [
          "branchId"
        ],
        "type": "object",
        "properties": {
          "branchId": {
            "type": "string",
            "description": "Şube kimliği."
          },
          "userCount": {
            "type": "integer",
            "description": "Şubeye bağlı kullanıcı sayısı.",
            "format": "int32"
          },
          "invoiceCount": {
            "type": "integer",
            "description": "Tarih aralığındaki giden fatura sayısı.",
            "format": "int32"
          },
          "invoiceTotal": {
            "type": "number",
            "description": "Tarih aralığındaki giden faturaların TRY karşılığı toplamı.",
            "format": "double"
          },
          "incomingInvoiceCount": {
            "type": "integer",
            "description": "Tarih aralığındaki gelen fatura sayısı.",
            "format": "int32"
          },
          "expenseBillCount": {
            "type": "integer",
            "description": "Tarih aralığındaki gider pusulası sayısı.",
            "format": "int32"
          },
          "expenseBillTotal": {
            "type": "number",
            "description": "Tarih aralığındaki gider pusulalarının toplamı.",
            "format": "double"
          },
          "eVoucherCount": {
            "type": "integer",
            "description": "Tarih aralığındaki e-gider pusulası sayısı.",
            "format": "int32"
          },
          "eVoucherTotal": {
            "type": "number",
            "description": "Tarih aralığındaki e-gider pusulalarının toplamı.",
            "format": "double"
          },
          "customerTransactionCount": {
            "type": "integer",
            "description": "Tarih aralığındaki müşteri işlemi sayısı.",
            "format": "int32"
          },
          "customerTransactionVolume": {
            "type": "number",
            "description": "Tarih aralığındaki müşteri işlemlerinin hacmi.",
            "format": "double"
          },
          "identityVerificationCount": {
            "type": "integer",
            "description": "Tarih aralığındaki kimlik tespiti sayısı.",
            "format": "int32"
          },
          "posSaleCount": {
            "type": "integer",
            "description": "Tarih aralığındaki POS satışı sayısı.",
            "format": "int32"
          },
          "posSaleTotal": {
            "type": "number",
            "description": "Tarih aralığındaki POS satışlarının toplamı.",
            "format": "double"
          },
          "despatchAdviceCount": {
            "type": "integer",
            "description": "Tarih aralığındaki irsaliye sayısı.",
            "format": "int32"
          },
          "openCustodyCount": {
            "type": "integer",
            "description": "Açık (iade edilmemiş) emanet sayısı.",
            "format": "int32"
          },
          "bankAccountCount": {
            "type": "integer",
            "description": "Şubeye bağlı banka hesabı sayısı.",
            "format": "int32"
          },
          "cashboxCount": {
            "type": "integer",
            "description": "Şubeye bağlı kasa sayısı.",
            "format": "int32"
          },
          "posDeviceCount": {
            "type": "integer",
            "description": "Şubeye bağlı POS cihazı sayısı.",
            "format": "int32"
          },
          "selfKycCodeCount": {
            "type": "integer",
            "description": "Şubeye bağlı Hızlı Kimlik Tespiti kodu sayısı.",
            "format": "int32"
          },
          "inventoryCount": {
            "type": "integer",
            "description": "Şubeye bağlı envanter sayısı.",
            "format": "int32"
          }
        }
      },
      "TenantBranchUserDto": {
        "required": [
          "id",
          "fullName",
          "roleName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Kullanıcı kimliği."
          },
          "fullName": {
            "type": "string",
            "description": "Kullanıcının tam adı."
          },
          "roleName": {
            "type": "string",
            "description": "Kullanıcının bu tenanttaki rolünün adı."
          }
        }
      },
      "TenantDto": {
        "required": [
          "userStats",
          "pushInstallStats",
          "activityStats",
          "rootUser",
          "id",
          "name",
          "isActive",
          "creationTime",
          "province",
          "companyName",
          "types",
          "invoiceInfo",
          "isDemoMode",
          "skipInvoiceIssuing",
          "isEVoucherEnabled",
          "eDocumentIntegrator",
          "externalAccounts",
          "mailSettings"
        ],
        "type": "object",
        "properties": {
          "userStats": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenant kullanıcı istatistikleri.",
                "$ref": "#/components/schemas/TenantUserStatsDto"
              }
            ]
          },
          "pushInstallStats": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenant push yükleme istatistikleri.",
                "$ref": "#/components/schemas/TenantPushInstallStatsDto"
              }
            ]
          },
          "activityStats": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenant aktivite istatistikleri.",
                "$ref": "#/components/schemas/TenantActivityStatsBreakdownDto"
              }
            ]
          },
          "rootUser": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenantın kök kullanıcısı.",
                "$ref": "#/components/schemas/BasicUserDto"
              }
            ]
          },
          "commentCount": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Tenanta ait yorum sayısı.",
            "format": "int32"
          },
          "alertCount": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Tenanta ait uyarı sayısı.",
            "format": "int32"
          },
          "pendingAlertCount": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Tenanta ait bekleyen uyarı sayısı.",
            "format": "int32"
          },
          "id": {
            "type": "string",
            "description": "Tenant kimliği."
          },
          "name": {
            "type": "string",
            "description": "Tenant adı."
          },
          "isActive": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Tenantın aktif olup olmadığı."
          },
          "creationTime": {
            "type": "string",
            "description": "Tenantın oluşturulma zamanı.",
            "format": "date-time"
          },
          "province": {
            "description": "Tenantın bulunduğu il.",
            "$ref": "#/components/schemas/ProvinceDto"
          },
          "district": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenantın bulunduğu ilçe.",
                "$ref": "#/components/schemas/DistrictDto"
              }
            ]
          },
          "addressLine": {
            "type": [
              "null",
              "string"
            ],
            "description": "Tenant adres satırı."
          },
          "taxNumber": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenant vergi numarası.",
                "$ref": "#/components/schemas/TurkishEntityNumber"
              }
            ]
          },
          "companyName": {
            "type": "string",
            "description": "Şirket adı."
          },
          "types": {
            "type": "array",
            "items": {
              "enum": [
                "GoldDealer",
                "GoldWholesaler"
              ],
              "type": "string"
            },
            "description": "Tenant tipleri."
          },
          "companyType": {
            "enum": [
              "AnonimSirket",
              "LimitedSirket",
              "KollektifSirket",
              "KomanditSirket",
              "Kooperatif",
              "SahisIsletmesi"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceSeriesEInvoice": {
            "type": [
              "null",
              "string"
            ],
            "description": "E-fatura seri numarası."
          },
          "invoiceSeriesEArchiveInvoice": {
            "type": [
              "null",
              "string"
            ],
            "description": "E-arşiv fatura seri numarası."
          },
          "despatchAdviceSeries": {
            "type": [
              "null",
              "string"
            ],
            "description": "E-irsaliye seri numarası."
          },
          "eVoucherSeries": {
            "type": [
              "null",
              "string"
            ],
            "description": "e-Gider Pusulası seri numarası."
          },
          "taxOffice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Vergi dairesi."
          },
          "invoiceInfo": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenant fatura bilgileri.",
                "$ref": "#/components/schemas/TenantInvoiceInfoDto"
              }
            ]
          },
          "logo": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenant logosu.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "signature": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenant imza dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "stampSignature": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenant kaşe imza dosyası.",
                "$ref": "#/components/schemas/BlobFileDto"
              }
            ]
          },
          "eInvoiceXsltTemplate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "e-Fatura belgeleri için atanmış XSLT şablonu.",
                "$ref": "#/components/schemas/BasicXsltTemplateDto"
              }
            ]
          },
          "eArchiveInvoiceXsltTemplate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "e-Arşiv Fatura belgeleri için atanmış XSLT şablonu.",
                "$ref": "#/components/schemas/BasicXsltTemplateDto"
              }
            ]
          },
          "eDespatchAdviceXsltTemplate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "e-İrsaliye belgeleri için atanmış XSLT şablonu.",
                "$ref": "#/components/schemas/BasicXsltTemplateDto"
              }
            ]
          },
          "eVoucherXsltTemplate": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "e-Gider Pusulası belgeleri için atanmış XSLT şablonu.",
                "$ref": "#/components/schemas/BasicXsltTemplateDto"
              }
            ]
          },
          "isDemoMode": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Tenantın demo modda olup olmadığı."
          },
          "skipInvoiceIssuing": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Fatura kesiminin atlanıp atlanmadığı."
          },
          "isEVoucherEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "e-Gider Pusulasının tenant için etkin olup olmadığı. Yalnızca host değiştirebilir."
          },
          "eDocumentIntegrator": {
            "enum": [
              "Izibiz",
              "TurkcellESirket",
              "Uyumsoft",
              "Demo"
            ],
            "type": "string"
          },
          "defaultInventory": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenantın varsayılan envanteri.",
                "$ref": "#/components/schemas/BasicInventoryDto"
              }
            ]
          },
          "reseller": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenantın bağlı olduğu bayi.",
                "$ref": "#/components/schemas/BasicFederationDto"
              }
            ]
          },
          "accountant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenantın bağlı olduğu muhasebeci.",
                "$ref": "#/components/schemas/BasicFederationDto"
              }
            ]
          },
          "crmStatus": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Tenantın güncel CRM durumu.",
                "$ref": "#/components/schemas/BasicCrmStatusDto"
              }
            ]
          },
          "financialSealActivationEmailSentTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Mali mühür aktivasyon e-postasının gönderilme zamanı.",
            "format": "date-time"
          },
          "xsltTemplateUploadEmailSentTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "XSLT şablon yükleme e-postasının gönderilme zamanı.",
            "format": "date-time"
          },
          "lastActivityTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Son aktivite zamanı.",
            "format": "date-time"
          },
          "externalAccounts": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/BasicExternalAccountDto"
            },
            "description": "Tenanta bağlı harici hesaplar."
          },
          "mailSettings": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Fatura e-postası gönderim ayarları ve gönderim için gereken koşulların durumu.",
                "$ref": "#/components/schemas/TenantMailSettingsDto"
              }
            ]
          },
          "accountingCounters": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Aktif muhasebe dönemine ait belge sayaçları. Yalnızca muhasebeci oturumlarında doldurulur.",
                "$ref": "#/components/schemas/AccountingCountersDto"
              }
            ]
          }
        }
      },
      "TenantEDocumentCapabilitiesDto": {
        "required": [
          "mainIntegrator",
          "isDemoMode",
          "skipInvoiceIssuing",
          "documentTypes"
        ],
        "type": "object",
        "properties": {
          "mainIntegrator": {
            "enum": [
              "Izibiz",
              "TurkcellESirket",
              "Uyumsoft",
              "Demo"
            ],
            "type": "string"
          },
          "isDemoMode": {
            "type": "boolean",
            "description": "Kiracı demo modunda mı."
          },
          "skipInvoiceIssuing": {
            "type": "boolean",
            "description": "Faturalar entegratöre gönderilmeden taslak olarak mı tutuluyor."
          },
          "documentTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantEDocumentCapabilityDto"
            },
            "description": "Belge türlerinin etkinlik durumu."
          }
        }
      },
      "TenantEDocumentCapabilityDto": {
        "required": [
          "type",
          "isActivated",
          "isFallback"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "EInvoice",
              "EArchiveInvoice",
              "EDespatchAdvice",
              "EVoucher"
            ],
            "type": "string"
          },
          "isActivated": {
            "type": "boolean",
            "description": "Tür bu hesap için etkin mi."
          },
          "integrator": {
            "enum": [
              "Izibiz",
              "TurkcellESirket",
              "Uyumsoft",
              "Demo"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "externalAccountId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Türü sağlayan dış hesap ID."
          },
          "isFallback": {
            "type": "boolean",
            "description": "Ana entegratör yerine yedek hesap mı kullanılıyor."
          }
        }
      },
      "TenantInvoiceInfoDto": {
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturada gösterilecek telefon numarası."
          },
          "faxNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturada gösterilecek faks numarası."
          },
          "emailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Faturada gösterilecek e-posta adresi."
          }
        }
      },
      "TenantInvoiceSeriesDto": {
        "type": "object",
        "properties": {
          "invoiceSeriesEInvoice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura serisi (e-Fatura)."
          },
          "invoiceSeriesEArchiveInvoice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura serisi (e-Arşiv Fatura)."
          },
          "despatchAdviceSeries": {
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye serisi (e-İrsaliye)."
          },
          "eVoucherSeries": {
            "type": [
              "null",
              "string"
            ],
            "description": "e-Gider Pusulası serisi (tanımlı değilse varsayılan EKG)."
          }
        },
        "description": "**Deprecated**: Use TenantInvoiceSettingsDto (Eksenova.Application.Tenants.TenantInvoiceSettings).",
        "deprecated": true
      },
      "TenantInvoiceSettingsDto": {
        "required": [
          "invoiceSeriesEInvoice",
          "invoiceSeriesEArchiveInvoice",
          "despatchAdviceSeries",
          "eVoucherSeries",
          "invoiceNote",
          "sendInvoiceEmailToLegalEntity",
          "defaultInvoiceIssueDateMode",
          "defaultExpenseBillIssueDateMode",
          "mailSenderAlias",
          "brandName",
          "mailSenderAddress"
        ],
        "type": "object",
        "properties": {
          "invoiceSeriesEInvoice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura serisi (e-Fatura)."
          },
          "invoiceSeriesEArchiveInvoice": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura serisi (e-Arşiv Fatura)."
          },
          "despatchAdviceSeries": {
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye serisi (e-İrsaliye)."
          },
          "eVoucherSeries": {
            "type": "string",
            "description": "e-Gider Pusulası serisi (tanımlı değilse varsayılan EKG)."
          },
          "invoiceNote": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kesilen tüm faturaların altına eklenen sabit not."
          },
          "sendInvoiceEmailToLegalEntity": {
            "type": "boolean",
            "description": "Kesilen faturaların, e-posta adresi kayıtlı carilere otomatik olarak e-posta ile gönderilmesi."
          },
          "defaultInvoiceIssueDateMode": {
            "enum": [
              "Today",
              "TransactionDate"
            ],
            "type": "string"
          },
          "defaultExpenseBillIssueDateMode": {
            "enum": [
              "Today",
              "TransactionDate"
            ],
            "type": "string"
          },
          "mailSenderAlias": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura e-postalarının gönderileceği adresin kullanıcı adı kısmı (tam adres: <kullanıcı adı>@fatura.eksengold.com); tanımlı değilse varsayılan adres kullanılır."
          },
          "brandName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Marka adı. Fatura e-postalarında gönderen adı ve e-posta başlığı olarak kullanılır; tanımlı değilse gönderen adı kullanılmaz."
          },
          "mailSenderAddress": {
            "type": "string",
            "description": "Fatura e-postalarının gönderileceği tam e-posta adresi; gönderen adresi tanımlı değilse varsayılan adrestir."
          }
        }
      },
      "TenantIssueDateDefaultsDto": {
        "required": [
          "defaultInvoiceIssueDateMode",
          "defaultExpenseBillIssueDateMode"
        ],
        "type": "object",
        "properties": {
          "defaultInvoiceIssueDateMode": {
            "enum": [
              "Today",
              "TransactionDate"
            ],
            "type": "string"
          },
          "defaultExpenseBillIssueDateMode": {
            "enum": [
              "Today",
              "TransactionDate"
            ],
            "type": "string"
          }
        }
      },
      "TenantMailRequirementDto": {
        "required": [
          "requirement",
          "isMet"
        ],
        "type": "object",
        "properties": {
          "requirement": {
            "enum": [
              "InvoiceEmailEnabled",
              "NotInDemoMode"
            ],
            "type": "string"
          },
          "isMet": {
            "type": "boolean",
            "description": "Koşulun karşılanıp karşılanmadığı."
          }
        }
      },
      "TenantMailSettingsDto": {
        "required": [
          "mailSenderAlias",
          "brandName",
          "mailSenderAddress",
          "defaultMailSenderAddress",
          "sendInvoiceEmailToLegalEntity",
          "canSendInvoiceEmails",
          "requirements"
        ],
        "type": "object",
        "properties": {
          "mailSenderAlias": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura e-postalarının gönderileceği adresin kullanıcı adı kısmı; tanımlı değilse varsayılan adres kullanılır."
          },
          "brandName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Marka adı. Fatura e-postalarında gönderen adı ve e-posta başlığı olarak kullanılır; tanımlı değilse gönderen adı kullanılmaz."
          },
          "mailSenderAddress": {
            "type": "string",
            "description": "Fatura e-postalarının gönderileceği tam e-posta adresi; gönderen adresi tanımlı değilse varsayılan adrestir."
          },
          "defaultMailSenderAddress": {
            "type": "string",
            "description": "Gönderen adresi tanımlı olmayan firmalar için kullanılan varsayılan gönderen e-posta adresi."
          },
          "sendInvoiceEmailToLegalEntity": {
            "type": "boolean",
            "description": "Kesilen faturaların, e-posta adresi kayıtlı carilere otomatik olarak e-posta ile gönderilmesi."
          },
          "canSendInvoiceEmails": {
            "type": "boolean",
            "description": "Tüm gereksinimler karşılandığı için fatura e-postalarının gönderilip gönderilmeyeceği."
          },
          "requirements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantMailRequirementDto"
            },
            "description": "Fatura e-postası gönderimi için gereken koşulların listesi ve karşılanma durumları."
          }
        }
      },
      "TenantPushInstallStatsDto": {
        "required": [
          "installedUserCount",
          "neverInstalledUserCount",
          "uninstalledUserCount"
        ],
        "type": "object",
        "properties": {
          "installedUserCount": {
            "type": "integer",
            "description": "Push bildirimini yüklemiş kullanıcı sayısı.",
            "format": "int32"
          },
          "neverInstalledUserCount": {
            "type": "integer",
            "description": "Push bildirimini hiç yüklememiş kullanıcı sayısı.",
            "format": "int32"
          },
          "uninstalledUserCount": {
            "type": "integer",
            "description": "Push bildirimini kaldırmış kullanıcı sayısı.",
            "format": "int32"
          }
        }
      },
      "TenantUserStatsDto": {
        "required": [
          "activeUserCount",
          "inactiveUserCount",
          "totalUserCount"
        ],
        "type": "object",
        "properties": {
          "activeUserCount": {
            "type": "integer",
            "description": "Aktif kullanıcı sayısı.",
            "format": "int32"
          },
          "inactiveUserCount": {
            "type": "integer",
            "description": "Pasif kullanıcı sayısı.",
            "format": "int32"
          },
          "totalUserCount": {
            "type": "integer",
            "description": "Toplam kullanıcı sayısı.",
            "format": "int32"
          }
        }
      },
      "TransferExpenseBillItemToInventoryInput": {
        "required": [
          "expenseBillItemId",
          "inventoryProductId"
        ],
        "type": "object",
        "properties": {
          "expenseBillItemId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Stoğa aktarılacak gider pusulası kalemi ID'si.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "inventoryProductId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kalemin eşleştirileceği envanter ürünü ID'si.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "TransferExpenseBillToInventoryInput": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "items": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransferExpenseBillItemToInventoryInput"
            },
            "description": "Stoğa aktarılacak kalemler ve eşleştirilecek envanter ürünleri. Yalnızca envanter ürünü atanmamış kalemler gönderilebilir."
          }
        }
      },
      "TurkishDriversLicenseDetailedDto": {
        "required": [
          "issueDate",
          "expiryDate",
          "issuer",
          "nationalIdentityNumber",
          "documentNumber"
        ],
        "type": "object",
        "properties": {
          "issueDate": {
            "type": "string",
            "description": "Sürücü belgesinin düzenlenme tarihi.",
            "format": "date"
          },
          "expiryDate": {
            "type": "string",
            "description": "Sürücü belgesinin son geçerlilik tarihi.",
            "format": "date"
          },
          "issuer": {
            "type": "string",
            "description": "Sürücü belgesini düzenleyen makam."
          },
          "nationalIdentityNumber": {
            "type": "string",
            "description": "Kişinin T.C. kimlik numarası."
          },
          "documentNumber": {
            "type": "string",
            "description": "Sürücü belgesi seri numarası."
          }
        }
      },
      "TurkishDriversLicenseDto": {
        "required": [
          "nationalIdentityNumber",
          "documentNumber"
        ],
        "type": "object",
        "properties": {
          "nationalIdentityNumber": {
            "type": "string",
            "description": "Kişinin T.C. kimlik numarası."
          },
          "documentNumber": {
            "type": "string",
            "description": "Sürücü belgesi seri numarası."
          }
        }
      },
      "TurkishEntityNumber": {
        "maxLength": 11,
        "minLength": 6,
        "pattern": "^[0-9]{6,11}$",
        "type": "string",
        "description": "Vergi kimlik numarası (VKN) veya T.C. kimlik numarası (TCKN). 10 haneden kısa gönderilen VKN değerleri başına sıfır eklenerek 10 haneye tamamlanır; 11 haneli gönderilen değerler TCKN kabul edilir ve TCKN kontrol hanesi doğrulaması yapılır, bu doğrulamayı geçmeyen 11 haneli değerler reddedilir. Yanıtlarda her zaman sıfır dolgulu kanonik biçimde (VKN için 10, TCKN için 11 hane) döner.",
        "example": "1234567890"
      },
      "TurkishIdentityCardDetailedDto": {
        "required": [
          "nationalIdentityNumber",
          "expiryDate",
          "hasNfcData"
        ],
        "type": "object",
        "properties": {
          "nationalIdentityNumber": {
            "type": "string",
            "description": "Kişinin T.C. kimlik numarası."
          },
          "expiryDate": {
            "type": "string",
            "description": "Kimlik kartının son geçerlilik tarihi.",
            "format": "date"
          },
          "documentNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik kartı seri numarası."
          },
          "motherName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kişinin anne adı."
          },
          "fatherName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kişinin baba adı."
          },
          "hasNfcData": {
            "type": "boolean",
            "description": "Kimlik kartından NFC verisi okunup okunmadığı."
          }
        }
      },
      "TurkishIdentityCardDto": {
        "required": [
          "nationalIdentityNumber",
          "hasNfcData"
        ],
        "type": "object",
        "properties": {
          "nationalIdentityNumber": {
            "type": "string",
            "description": "Kişinin T.C. kimlik numarası."
          },
          "hasNfcData": {
            "type": "boolean",
            "description": "Kimlik kartından NFC verisi okunup okunmadığı."
          }
        }
      },
      "TurkishIdentityNumber": {
        "maxLength": 11,
        "minLength": 11,
        "pattern": "^[0-9]{11}$",
        "type": "string",
        "description": "T.C. kimlik numarası. 11 haneli olmak ve TCKN kontrol hanesi doğrulamasını geçmek zorundadır.",
        "example": "12345678901"
      },
      "UnreadCountDto": {
        "required": [
          "unreadCount"
        ],
        "type": "object",
        "properties": {
          "unreadCount": {
            "type": "integer",
            "description": "Okunmamış bildirim sayısı.",
            "format": "int32"
          }
        }
      },
      "UpdateBankAccountDisplayOrderInput": {
        "required": [
          "bankAccountId"
        ],
        "type": "object",
        "properties": {
          "bankAccountId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Display order değeri güncellenecek banka hesabı ID'si.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "displayOrder": {
            "type": "integer",
            "description": "Banka hesabının listede görüneceği sıra. Küçük değerler önce gelir.",
            "format": "int32"
          }
        }
      },
      "UpdateBankAccountDisplayOrdersInput": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "items": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateBankAccountDisplayOrderInput"
            },
            "description": "Banka hesapları için toplu display order güncelleme listesi."
          }
        }
      },
      "UpdateBankAccountInfoInput": {
        "required": [
          "ownerName"
        ],
        "type": "object",
        "properties": {
          "ownerName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Hesap sahibi adı."
          },
          "entityNumber": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Hesap sahibinin T.C. / vergi kimlik numarası.",
                "$ref": "#/components/schemas/TurkishEntityNumber"
              }
            ]
          },
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Hesap için kısa ad / rumuz."
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "UpdateBankAccountInput": {
        "required": [
          "iban",
          "accountName",
          "currency",
          "bank"
        ],
        "type": "object",
        "properties": {
          "iban": {
            "maxLength": 34,
            "minLength": 0,
            "type": "string",
            "description": "IBAN numarası."
          },
          "accountName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Hesap adı (rumuz)."
          },
          "accountingCode": {
            "maxLength": 20,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Muhasebe hesap kodu."
          },
          "currency": {
            "enum": [
              "TRY",
              "USD",
              "EUR",
              "GBP",
              "XAU",
              "CHF",
              "CAD",
              "RUB",
              "AED",
              "AUD",
              "DKK",
              "SEK",
              "NOK",
              "JPY",
              "KWD",
              "ZAR",
              "BHD",
              "LYD",
              "SAR",
              "IQD",
              "ILS",
              "INR",
              "MXN",
              "HUF",
              "NZD",
              "BRL",
              "IDR",
              "CZK",
              "PLN",
              "RON",
              "CNY",
              "ARS",
              "ALL",
              "AZN",
              "BAM",
              "CLP",
              "COP",
              "CRC",
              "DZD",
              "EGP",
              "HKD",
              "ISK",
              "KRW",
              "KZT",
              "LBP",
              "LKR",
              "MAD",
              "MDL",
              "MKD",
              "MYR",
              "OMR",
              "PEN",
              "PHP",
              "PKR",
              "QAR",
              "RSD",
              "SGD",
              "SYP",
              "THB",
              "TWD",
              "UAH",
              "UYU",
              "GEL",
              "TND",
              "BGN"
            ],
            "type": "string"
          },
          "bank": {
            "enum": [
              "GarantiBBVA",
              "Akbank",
              "QNBFinansbank",
              "YapiKredi",
              "IsBankasi",
              "ZiraatBankasi",
              "HalkBankasi",
              "VakifBank",
              "DenizBank",
              "TEB",
              "ING",
              "HSBC",
              "Enpara",
              "Kuveytturk",
              "VakifKatilim",
              "Albaraka",
              "TekstilBankasi",
              "Sekerbank",
              "TurkiyeFinans",
              "DunyaKatilim",
              "Anadolubank",
              "ZiraatKatilim",
              "TurkishBank",
              "Fibabanka",
              "Turklandbank",
              "PashaBank",
              "Alternatifbank",
              "BurganBank",
              "AktifYatirim",
              "OdeaBank",
              "ColendiBank",
              "FupsBank",
              "EmlakKatilim",
              "HayatFinans",
              "TomKatilim"
            ],
            "type": "string"
          },
          "bankAccountCredentialsId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Entegrasyon için banka hesap erişim bilgileri.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "displayOrder": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Banka hesabının listede görüneceği sıra. Küçük değerler önce gelir.",
            "format": "int32"
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın yeni şubesi. Boşsa şube değişmez.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "UpdateDespatchAdviceInput": {
        "required": [
          "deliveryName",
          "deliveryTaxNumber",
          "deliveryAddress",
          "deliveryPostalCode",
          "deliveryProvinceId",
          "deliveryDistrictId",
          "deliveryTaxOffice",
          "items"
        ],
        "type": "object",
        "properties": {
          "deliveryName": {
            "type": "string",
            "description": "Malları teslim alan tarafın ünvanı."
          },
          "deliveryTaxNumber": {
            "description": "Teslim alan tarafın VKN/TCKN değeri.",
            "$ref": "#/components/schemas/TurkishEntityNumber"
          },
          "deliveryAddress": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "Teslim adresi."
          },
          "deliveryPostalCode": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Teslim adresi posta kodu."
          },
          "deliveryProvinceId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Teslim adresi ili.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "deliveryDistrictId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Teslim adresi ilçesi.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "deliveryTaxOffice": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Teslim alan tarafın vergi dairesi."
          },
          "items": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateDespatchAdviceItemInput"
            },
            "description": "İrsaliye kalemleri."
          },
          "despatchTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fiili sevk zamanı.",
            "format": "date-time"
          },
          "vehicles": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/DespatchVehicleInput"
            },
            "description": "Araç ve dorse bilgileri."
          },
          "drivers": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/DespatchDriverInput"
            },
            "description": "Şoför bilgileri."
          },
          "carrierName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Taşıyıcı firma ünvanı."
          },
          "carrierTaxNumber": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Taşıyıcı firma VKN değeri.",
                "$ref": "#/components/schemas/TurkishEntityNumber"
              }
            ]
          },
          "note": {
            "maxLength": 1000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye notu."
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın yeni şubesi. Boşsa şube değişmez.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "UpdateExcelExportColumnInput": {
        "required": [
          "key",
          "order",
          "isVisible"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Sütun anahtarı."
          },
          "header": {
            "maxLength": 200,
            "type": [
              "null",
              "string"
            ],
            "description": "Özel sütun başlığı. Boş bırakılırsa varsayılan başlık kullanılır."
          },
          "order": {
            "maximum": 100,
            "minimum": 0,
            "type": "integer",
            "description": "Sütun sırası.",
            "format": "int32"
          },
          "isVisible": {
            "type": "boolean",
            "description": "Sütun görünür mü?"
          },
          "format": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sütun formatı (ör: DotSeparatedDateTime, ThousandsSeparated2Decimals)."
          },
          "width": {
            "type": [
              "null",
              "string"
            ],
            "description": "Sütun genişliği (ör: Narrow, Medium, Wide, ExtraWide)."
          },
          "alignment": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yatay hizalama (ör: Left, Center, Right)."
          },
          "bold": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Kalın yazı tipi."
          }
        }
      },
      "UpdateExcelExportSettingInput": {
        "required": [
          "columns"
        ],
        "type": "object",
        "properties": {
          "columns": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateExcelExportColumnInput"
            },
            "description": "Excel dışa aktarma sütun ayarları."
          },
          "metadata": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Ek ayarlar (JSON).",
                "$ref": "#/components/schemas/JsonElement"
              }
            ]
          },
          "negativeOutgoingAmounts": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Para çıkışı olan kayıtların tutarları Excel'e eksi (-) olarak yazılsın mı? Boş bırakılırsa mevcut ayar korunur."
          }
        }
      },
      "UpdateExpenseBillIndexInput": {
        "required": [
          "index"
        ],
        "type": "object",
        "properties": {
          "index": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Gider pusulasının yeni sıra numarası.",
            "format": "int32"
          }
        }
      },
      "UpdateExternalAccountInput": {
        "required": [
          "isSynchronizationEnabled"
        ],
        "type": "object",
        "properties": {
          "isSynchronizationEnabled": {
            "type": "boolean",
            "description": "Hesap için otomatik senkronizasyonun (gelen fatura keşfi, durum sorgulama, kontör yenileme) etkin olup olmadığı belirler."
          }
        }
      },
      "UpdateInventoryProductInput": {
        "required": [
          "name",
          "unit"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Ürün adı."
          },
          "sku": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Stok kodu (SKU)."
          },
          "unit": {
            "enum": [
              "Gr",
              "Item",
              "NIU",
              "KGM",
              "R9",
              "LTR",
              "MTR",
              "SET"
            ],
            "type": "string"
          },
          "displayOrder": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "Sıralama indeksi.",
            "format": "int32"
          },
          "lowStockQuantity": {
            "minimum": 0,
            "type": [
              "null",
              "number"
            ],
            "description": "Düşük stok uyarı eşiği.",
            "format": "double"
          },
          "accountingCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Muhasebe kodu."
          }
        }
      },
      "UpdateLegalEntityInput": {
        "required": [
          "fullName"
        ],
        "type": "object",
        "properties": {
          "fullName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Cari adı / unvanı."
          },
          "taxOffice": {
            "maxLength": 30,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Vergi dairesi."
          },
          "provinceId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "İl ID'si.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "districtId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "İlçe ID'si.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "address": {
            "maxLength": 255,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Adres."
          },
          "emailAddress": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "E-posta adresi."
          },
          "note": {
            "maxLength": 2000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Notlar."
          },
          "customerAccountingCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Müşteri cari hesap kodu. Satış tarafındaki evraklarda (giden fatura, para girişi) kullanılır."
          },
          "supplierAccountingCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Tedarikçi hesap kodu. Alış tarafındaki evraklarda (gelen fatura, gider pusulası, para çıkışı) kullanılır."
          },
          "coreBusiness": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "enum": [
                "GoldDealing",
                "Staff"
              ],
              "type": "string"
            },
            "description": "Faaliyet alanları."
          }
        }
      },
      "UpdateNotificationPoliciesInput": {
        "required": [
          "policies"
        ],
        "type": "object",
        "properties": {
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateNotificationPolicyInput"
            },
            "description": "Güncellenecek bildirim politikaları."
          },
          "audiences": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/UpdateNotificationPolicyAudienceInput"
            },
            "description": "Rol bazlı hedef kitle (alım yetkisi) değişiklikleri. Belirtilirse ek olarak rol güncelleme yetkisi gerektirir."
          },
          "riskSettings": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/UpdateNotificationRiskPolicyInput"
            },
            "description": "Risk bildirim tipleri için tip bazlı risk ayarları (minimum risk seviyesi, gecikme, şüpheli açıklama). Yalnızca tenant kapsamında geçerlidir."
          },
          "scheduleSettings": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/UpdateNotificationScheduleSettingInput"
            },
            "description": "Zamanlanmış bildirim tipleri için tip bazlı zamanlama ayarları (günlük gönderim saati, geçmesi gereken gün sayısı). Yalnızca tenant kapsamında geçerlidir."
          },
          "transactionTypeSettings": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/UpdateNotificationTransactionTypeSettingInput"
            },
            "description": "Hesap hareketi bildirim tipleri için kapsanacak işlem türleri. Yalnızca tenant kapsamında geçerlidir."
          }
        }
      },
      "UpdateNotificationPolicyAudienceInput": {
        "required": [
          "roleId",
          "type",
          "receivesAll",
          "receivesOwn"
        ],
        "type": "object",
        "properties": {
          "roleId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Hedef kitlesi düzenlenecek rol.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "receivesAll": {
            "type": "boolean",
            "description": "Rolün tipin tüm olaylarını alıp almayacağı."
          },
          "receivesOwn": {
            "type": "boolean",
            "description": "Rolün yalnızca kendi olaylarını alıp almayacağı."
          }
        }
      },
      "UpdateNotificationPolicyInput": {
        "required": [
          "roleId",
          "type",
          "isMandatoryForRole"
        ],
        "type": "object",
        "properties": {
          "roleId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Politikanın uygulanacağı rol.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "isMandatoryForRole": {
            "type": "boolean",
            "description": "Bildirimin bu rol için zorunlu olup olmadığı."
          },
          "options": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "Politika seçenekleri."
          }
        }
      },
      "UpdateNotificationPreferenceChannelInput": {
        "required": [
          "channel",
          "enabled"
        ],
        "type": "object",
        "properties": {
          "channel": {
            "enum": [
              "InApp",
              "Push",
              "Slack"
            ],
            "type": "string"
          },
          "enabled": {
            "type": "boolean",
            "description": "Kanalın açık olup olmadığı."
          }
        }
      },
      "UpdateNotificationPreferenceInput": {
        "required": [
          "type",
          "channels"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "channels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateNotificationPreferenceChannelInput"
            },
            "description": "Kanal bazlı tercih durumları."
          },
          "settings": {
            "type": [
              "null",
              "object"
            ],
            "description": "Tipe özel bildirim ayarları."
          }
        }
      },
      "UpdateNotificationPreferencesInput": {
        "required": [
          "preferences"
        ],
        "type": "object",
        "properties": {
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateNotificationPreferenceInput"
            },
            "description": "Güncellenecek bildirim tercihleri."
          }
        }
      },
      "UpdateNotificationRiskPolicyInput": {
        "required": [
          "type",
          "minimumRiskCategory"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "minimumRiskCategory": {
            "enum": [
              "None",
              "Low",
              "Medium",
              "High"
            ],
            "type": "string"
          },
          "delayHours": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Bildirim gecikmesi (saat); yalnızca gecikmeyi destekleyen tipler için, en az 1. Boş bırakılırsa gecikme uygulanmaz.",
            "format": "int32"
          },
          "suspiciousDescriptionSentInstantly": {
            "type": "boolean",
            "description": "Şüpheli açıklama risklerinin gecikme/gruplama olmadan anında gönderilip gönderilmeyeceği."
          }
        }
      },
      "UpdateNotificationScheduleSettingInput": {
        "required": [
          "type",
          "sendTimeOfDay",
          "minimumDaysElapsed"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "sendTimeOfDay": {
            "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
            "type": "string",
            "description": "Bildirimin gönderileceği günlük saat (Türkiye saati / UTC+3), SS:dd biçiminde."
          },
          "minimumDaysElapsed": {
            "maximum": 7,
            "minimum": 0,
            "type": "integer",
            "description": "Bir faturanın eksik sayılması için üzerinden geçmesi gereken en az gün sayısı (0-7).",
            "format": "int32"
          }
        }
      },
      "UpdateNotificationTransactionTypeSettingInput": {
        "required": [
          "type",
          "transactionTypes"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "IdentityVerificationRisk",
              "BankTransactionRisk",
              "TenantAlert",
              "SubscriptionRenewal",
              "TenantCreated",
              "TenantCommentCreated",
              "TenantRegistration",
              "ContactRequest",
              "LeadCreated",
              "LeadAlert",
              "LeadCommentCreated",
              "LeadConverted",
              "ReportGenerated",
              "BackgroundJobFailed",
              "InvoiceCreationFailed",
              "InvoiceReconciliationRequired",
              "BankTransactionImportFailed",
              "InvoiceError",
              "TenantFederationAssignmentChanged",
              "LeadResellerAssignmentChanged",
              "LowCredits",
              "BankCredentialsAccessIssue",
              "BankCredentialsAccessRestored",
              "PublicFeedUnverifiedAccess",
              "PublicFeedExcessiveUsage",
              "PublicFeedBlockedConnection",
              "TenantRegistrationAlert",
              "DespatchAdviceError",
              "InvoiceSubmissionError",
              "InvoiceSubmissionRecovered",
              "InvoiceIssuingFailed",
              "DespatchAdviceReconciliationRequired",
              "DespatchAdviceTenantError",
              "IncomingDocumentImportFailed",
              "Manual",
              "MissingInvoices",
              "SelfKycIdentityVerificationSubmitted",
              "CustodyReturnDue",
              "MissingExpenseBills",
              "Announcement",
              "IncomingBankTransaction",
              "OutgoingBankTransaction",
              "GoldDealingWholesalerLinkRequestCreated",
              "EVoucherError",
              "EVoucherTenantError",
              "EVoucherReconciliationRequired",
              "EVoucherSmsFailed"
            ],
            "type": "string"
          },
          "transactionTypes": {
            "minItems": 1,
            "type": "array",
            "items": {
              "enum": [
                "None",
                "Other",
                "Havale",
                "EFT",
                "FAST",
                "PosPayment",
                "Bsmv",
                "Komisyon",
                "Masraf",
                "PosKesinti"
              ],
              "type": "string"
            },
            "description": "Bildirimin gönderileceği işlem türleri."
          }
        }
      },
      "UpdatePosDeviceInput": {
        "required": [
          "name",
          "isEnabled"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "POS cihazı adı."
          },
          "isEnabled": {
            "type": "boolean",
            "description": "POS cihazı aktif/pasif durumu."
          },
          "pushNotificationToken": {
            "type": [
              "null",
              "string"
            ],
            "description": "Push bildirim token'ı."
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın yeni şubesi. Boşsa şube değişmez.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "UpdateProfileDto": {
        "required": [
          "fullName"
        ],
        "type": "object",
        "properties": {
          "fullName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Kullanıcı adı."
          },
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcı telefon numarası."
          },
          "smsVerificationToken": {
            "type": [
              "null",
              "string"
            ],
            "description": "Telefon numarası değişikliği için doğrulama tokeni."
          }
        }
      },
      "UpdateRoleDto": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Rol adı."
          }
        }
      },
      "UpdateRolePermissionCategoryInput": {
        "type": "object",
        "properties": {
          "permissions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Kategoride role verilecek yetkilerin tamamı. Tam ad (Kts.BankAccounts.Get) ya da kategori içindeki eylem adı (Get) kullanılabilir. Listede yer almayan yetkiler kaldırılır. Alan gönderilmezse kategorinin yetkilerine dokunulmaz."
          },
          "policies": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/UpdateRolePolicyInput"
            },
            "description": "Kategoriye bağlı politikaların tamamı. Listede yer almayan politikalar kaldırılır. Alan gönderilmezse kategorinin politikalarına dokunulmaz."
          }
        }
      },
      "UpdateRolePoliciesInput": {
        "required": [
          "policies"
        ],
        "type": "object",
        "properties": {
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateRolePolicyInput"
            },
            "description": "Rol için tanımlanacak politikaların tamamı. Listede yer almayan politikalar kaldırılır."
          }
        }
      },
      "UpdateRolePolicyInput": {
        "required": [
          "policyType"
        ],
        "type": "object",
        "anyOf": [
          {
            "$ref": "#/components/schemas/UpdateRolePolicyInputRestrictBankAccountAccessPolicyInput"
          },
          {
            "$ref": "#/components/schemas/UpdateRolePolicyInputRestrictBankTransactionsAccessPolicyInput"
          },
          {
            "$ref": "#/components/schemas/UpdateRolePolicyInputRestrictBranchAccessPolicyInput"
          }
        ],
        "discriminator": {
          "propertyName": "policyType",
          "mapping": {
            "RestrictBankAccountAccess": "#/components/schemas/UpdateRolePolicyInputRestrictBankAccountAccessPolicyInput",
            "RestrictBankTransactionsAccess": "#/components/schemas/UpdateRolePolicyInputRestrictBankTransactionsAccessPolicyInput",
            "RestrictBranchAccess": "#/components/schemas/UpdateRolePolicyInputRestrictBranchAccessPolicyInput"
          }
        }
      },
      "UpdateRolePolicyInputRestrictBankAccountAccessPolicyInput": {
        "required": [
          "isEnabled"
        ],
        "properties": {
          "policyType": {
            "enum": [
              "RestrictBankAccountAccess"
            ],
            "type": "string"
          },
          "allowedBankAccounts": {
            "type": "array",
            "items": {
              "maxLength": 26,
              "minLength": 26,
              "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "description": "Rolün erişebileceği banka hesaplarının kimlikleri."
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Politikanın rol için etkin olup olmadığı."
          }
        },
        "description": "Rolün yalnızca seçilen banka hesaplarını ve o hesaplara ait hareketleri görmesini sağlar."
      },
      "UpdateRolePolicyInputRestrictBankTransactionsAccessPolicyInput": {
        "required": [
          "isEnabled"
        ],
        "properties": {
          "policyType": {
            "enum": [
              "RestrictBankTransactionsAccess"
            ],
            "type": "string"
          },
          "maxTransactionAge": {
            "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
            "type": "string",
            "description": "Görülebilecek en eski hareketin yaşı. Belirtilmezse 7 gün kullanılır."
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Politikanın rol için etkin olup olmadığı."
          }
        },
        "description": "Rolün yalnızca belirtilen süre içindeki banka hareketlerini görmesini sağlar."
      },
      "UpdateRolePolicyInputRestrictBranchAccessPolicyInput": {
        "required": [
          "isEnabled"
        ],
        "properties": {
          "policyType": {
            "enum": [
              "RestrictBranchAccess"
            ],
            "type": "string"
          },
          "allowedBranches": {
            "type": "array",
            "items": {
              "maxLength": 26,
              "minLength": 26,
              "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
              "type": "string",
              "format": "ulid",
              "example": "01KD0ZX9P61N7AHAV35R79XGQM"
            },
            "description": "Rolün verilerini görebileceği şubelerin kimlikleri."
          },
          "allowOwnBranch": {
            "type": "boolean",
            "description": "Kullanıcının kendi şubesinin (üyeliğinin şubesi) verilerini de görebilmesi."
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Politikanın rol için etkin olup olmadığı."
          }
        },
        "description": "Rolün yalnızca seçilen şubelerin ve isteğe bağlı olarak kullanıcının kendi şubesinin verilerini görmesini sağlar."
      },
      "UpdateTenantBankAccountTransactionClassificationInput": {
        "required": [
          "name",
          "ruleType",
          "match",
          "isEnabled"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Sınıflandırma adı."
          },
          "ruleType": {
            "enum": [
              "AutoHide"
            ],
            "type": "string"
          },
          "match": {
            "description": "Eşleşme kuralı. $type alanı ile tipi belirtilir: EntityNumber | OwnerName | Iban | DescriptionRegex | DescriptionContains | PaymentRefunds | InternalTransfer. Sistem tanımlı kurallarda eşleşme türü değiştirilemez.",
            "$ref": "#/components/schemas/ClassificationMatchDto"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Kuralın etkin olup olmadığı."
          }
        }
      },
      "UpdateTenantBranchInput": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Şubenin yeni adı."
          }
        }
      },
      "UpdateTenantInvoiceSeriesDto": {
        "type": "object",
        "properties": {
          "invoiceSeriesEInvoice": {
            "maxLength": 3,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura serisi (e-Fatura). 3 karakter (harf/rakam). Boş gönderilirse seri kaldırılır."
          },
          "invoiceSeriesEArchiveInvoice": {
            "maxLength": 3,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura serisi (e-Arşiv Fatura). 3 karakter (harf/rakam). Boş gönderilirse seri kaldırılır."
          },
          "despatchAdviceSeries": {
            "maxLength": 3,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye serisi (e-İrsaliye). 3 karakter (harf/rakam). Boş gönderilirse seri kaldırılır."
          },
          "eVoucherSeries": {
            "maxLength": 3,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "e-Gider Pusulası serisi. 3 karakter (harf/rakam). Gönderilmezse mevcut seri korunur, boş gönderilirse varsayılan (EKG) kullanılır."
          }
        },
        "description": "**Deprecated**: Use UpdateTenantInvoiceSettingsInput (Eksenova.Application.Tenants.TenantInvoiceSettings).",
        "deprecated": true
      },
      "UpdateTenantInvoiceSettingsInput": {
        "type": "object",
        "properties": {
          "invoiceSeriesEInvoice": {
            "maxLength": 3,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura serisi (e-Fatura). 3 karakter (harf/rakam). Boş gönderilirse seri kaldırılır."
          },
          "invoiceSeriesEArchiveInvoice": {
            "maxLength": 3,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Fatura serisi (e-Arşiv Fatura). 3 karakter (harf/rakam). Boş gönderilirse seri kaldırılır."
          },
          "despatchAdviceSeries": {
            "maxLength": 3,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "İrsaliye serisi (e-İrsaliye). 3 karakter (harf/rakam). Boş gönderilirse seri kaldırılır."
          },
          "eVoucherSeries": {
            "maxLength": 3,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "e-Gider Pusulası serisi. 3 karakter (harf/rakam). Gönderilmezse mevcut seri korunur, boş gönderilirse varsayılan (EKG) kullanılır."
          },
          "invoiceNote": {
            "maxLength": 1000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Kesilen tüm faturaların altına eklenecek sabit not. Boş gönderilirse not kaldırılır."
          },
          "sendInvoiceEmailToLegalEntity": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Kesilen faturaların, e-posta adresi kayıtlı carilere otomatik olarak e-posta ile gönderilmesi. Gönderilmezse mevcut ayar korunur."
          },
          "defaultInvoiceIssueDateMode": {
            "enum": [
              "Today",
              "TransactionDate"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "defaultExpenseBillIssueDateMode": {
            "enum": [
              "Today",
              "TransactionDate"
            ],
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "UpdateUserDto": {
        "required": [
          "roleId",
          "fullName"
        ],
        "type": "object",
        "properties": {
          "roleId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcı rolü.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "fullName": {
            "maxLength": 140,
            "minLength": 0,
            "type": "string",
            "description": "Kullanıcı adı."
          },
          "emailAddress": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcı e-posta adresi. Telefon numarası verildiyse boş bırakılabilir."
          },
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcı telefon numarası."
          },
          "isActive": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Kullanıcı aktif mi?"
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kullanıcının tenanttaki yeni şubesi. Boşsa şube değişmez; tenant bağlamı olmayan kullanıcılarda yok sayılır.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "UserDto": {
        "required": [
          "id",
          "fullName",
          "creationTime",
          "isActive",
          "isRootUser"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Kullanıcı kimliği."
          },
          "emailAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının e-posta adresi."
          },
          "phoneNumber": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının telefon numarası."
          },
          "fullName": {
            "type": "string",
            "description": "Kullanıcının tam adı."
          },
          "creationTime": {
            "type": "string",
            "description": "Kullanıcının oluşturulma zamanı.",
            "format": "date-time"
          },
          "lastActivityTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının son aktif olduğu zaman.",
            "format": "date-time"
          },
          "isActive": {
            "type": "boolean",
            "description": "Kullanıcının aktif olup olmadığı."
          },
          "isRootUser": {
            "type": "boolean",
            "description": "Kullanıcının kök (root) kullanıcı olup olmadığı."
          },
          "role": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kullanıcının kapsamdaki tenanttaki rolü.",
                "$ref": "#/components/schemas/BasicRoleDto"
              }
            ]
          },
          "tenant": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kullanıcının kapsamdaki tenantı.",
                "$ref": "#/components/schemas/BasicTenantDto"
              }
            ]
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kullanıcının kapsamdaki tenant üyeliğinin şubesi.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          },
          "tenants": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/UserTenantMembershipDto"
            },
            "description": "Kullanıcının tüm işletme üyelikleri. Yalnızca host ve bayi çağıranlara doldurulur."
          },
          "federation": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kullanıcının bağlı olduğu bayi.",
                "$ref": "#/components/schemas/BasicFederationDto"
              }
            ]
          }
        }
      },
      "UserTenantMembershipDto": {
        "required": [
          "tenant",
          "role",
          "isCurrent"
        ],
        "type": "object",
        "properties": {
          "tenant": {
            "description": "Üyeliğin ait olduğu tenant.",
            "$ref": "#/components/schemas/MembershipTenantDto"
          },
          "role": {
            "description": "Kullanıcının bu tenanttaki rolü.",
            "$ref": "#/components/schemas/BasicRoleDto"
          },
          "lastActivityTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kullanıcının bu tenanttaki son etkinlik zamanı.",
            "format": "date-time"
          },
          "isCurrent": {
            "type": "boolean",
            "description": "Bu tenantın oturumda seçili olup olmadığı."
          },
          "branch": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kullanıcının bu tenanttaki şubesi.",
                "$ref": "#/components/schemas/BasicTenantBranchDto"
              }
            ]
          }
        }
      },
      "VerifyEVoucherVerificationCodeInput": {
        "required": [
          "verificationId",
          "phone",
          "code"
        ],
        "type": "object",
        "properties": {
          "verificationId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kod gönderiminde dönen doğrulama isteği ID.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "phone": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Kodun gönderildiği telefon."
          },
          "code": {
            "maxLength": 12,
            "minLength": 0,
            "type": "string",
            "description": "Kişinin telefonuna gelen 6 haneli kod."
          }
        }
      },
      "VerifyKvkkCodeInput": {
        "required": [
          "phoneNumber",
          "code"
        ],
        "type": "object",
        "properties": {
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": "string",
            "description": "KVKK onay kodu gönderilen telefon numarası."
          },
          "code": {
            "type": "string",
            "description": "SMS ile gönderilen KVKK onay kodu."
          }
        }
      },
      "VerifyWithBlueCardInput": {
        "required": [
          "firstName",
          "lastName",
          "birthDate",
          "gender",
          "nationalIdentityNumber",
          "blueCardDocumentNumber",
          "blueCardFrontPhotoFileId",
          "blueCardBackPhotoFileId",
          "blueCardExpiryDate",
          "provinceName",
          "addressLine",
          "occupation",
          "phoneNumber",
          "signatureFileId",
          "verificationPurpose"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "maxLength": 24,
            "minLength": 0,
            "type": "string",
            "description": "Mavi Kart'ta yer alan ad."
          },
          "lastName": {
            "maxLength": 24,
            "minLength": 0,
            "type": "string",
            "description": "Mavi Kart'ta yer alan soyad."
          },
          "birthDate": {
            "type": "string",
            "description": "Mavi Kart'ta yer alan doğum tarihi.",
            "format": "date"
          },
          "gender": {
            "description": "Mavi Kart'ta yer alan cinsiyet.",
            "$ref": "#/components/schemas/Gender"
          },
          "nationality": {
            "maxLength": 3,
            "minLength": 3,
            "type": [
              "null",
              "string"
            ],
            "description": "Mavi Kart sahibinin vatandaşlığı. 3 harfli ISO 3166-1 alpha-3 kodu, örnek: DEU. Belirtilmezse TUR kabul edilir."
          },
          "nationalIdentityNumber": {
            "maxLength": 11,
            "minLength": 11,
            "type": "string",
            "description": "Mavi Kart kütüğüne kayıtlı T.C. Kimlik Numarası. 11 haneli olmak zorunda."
          },
          "blueCardDocumentNumber": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Mavi Kart'ın arka yüzünde yer alan seri / kart numarası."
          },
          "blueCardFrontPhotoFileId": {
            "type": "string",
            "description": "Mavi Kart'ın ön yüzünü gösteren fotoğraf.",
            "format": "uuid"
          },
          "blueCardBackPhotoFileId": {
            "type": "string",
            "description": "Mavi Kart'ın arka yüzünü gösteren fotoğraf.",
            "format": "uuid"
          },
          "blueCardExpiryDate": {
            "type": "string",
            "description": "Mavi Kart'ın son geçerlilik tarihi.",
            "format": "date"
          },
          "motherName": {
            "maxLength": 140,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Mavi Kart arka yüzünde yer alan anne adı."
          },
          "fatherName": {
            "maxLength": 140,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Mavi Kart arka yüzünde yer alan baba adı."
          },
          "provinceName": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin ikamet ettiği ilin adı."
          },
          "addressLine": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin açık ikamet adresi."
          },
          "occupation": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin mesleği."
          },
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişiye ait Türkiye'de kayıtlı olan telefon numarası."
          },
          "signatureFileId": {
            "type": "string",
            "description": "Kimlik tespiti sırasında alınan imzanın görseli.",
            "format": "uuid"
          },
          "declarationDocumentFileId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti sırasında imzalanan beyanname belgesi. Gönderilmezse belge backend'de oluşturulur.",
            "format": "uuid"
          },
          "verificationPurpose": {
            "description": "Kimlik tespitin sebebi.",
            "$ref": "#/components/schemas/IdentityVerificationPurpose"
          },
          "kvkkVerificationToken": {
            "type": [
              "null",
              "string"
            ],
            "description": "KVKK onay kodu doğrulandıktan sonra alınan doğrulama tokeni."
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti için opsiyonel açıklama."
          },
          "placeOfBirth": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti yapılacak kişinin doğum yeri."
          },
          "subjectTenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Adına işlem yapılacak tenant. Daha önce gönderilmiş bir izin talebin ilgili tenant tarafından onaylanmış olması gerekmektedir.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "identityType": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kimlik tipi. Boş gönderildiğinde gerçek kişi (Person) varsayılır.",
                "$ref": "#/components/schemas/IdentityTypeDto"
              }
            ]
          },
          "taxNumber": {
            "maxLength": 11,
            "minLength": 10,
            "type": [
              "null",
              "string"
            ],
            "description": "Tüzel kişiler için vergi numarası."
          },
          "companyName": {
            "maxLength": 150,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Tüzel kişiler için firma unvanı."
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "VerifyWithForeignNationalInput": {
        "required": [
          "firstName",
          "lastName",
          "birthDate",
          "nationality",
          "placeOfBirth",
          "foreignIdentityDocumentType",
          "foreignIdentityDocumentNumber",
          "residenceDocumentFileId",
          "gender",
          "provinceName",
          "addressLine",
          "occupation",
          "phoneNumber",
          "signatureFileId",
          "verificationPurpose"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "maxLength": 24,
            "minLength": 0,
            "type": "string",
            "description": "Yabancı kimlik belgesinde yer alan ad."
          },
          "lastName": {
            "maxLength": 24,
            "minLength": 0,
            "type": "string",
            "description": "Yabancı kimlik belgesinde yer alan soyad."
          },
          "birthDate": {
            "type": "string",
            "description": "Yabancı kimlik belgesinde yer alan doğum tarihi.",
            "format": "date"
          },
          "nationality": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin uyruğu. 3 harfli ISO 3166-1 alpha-3 kodu, örnek: DEU."
          },
          "placeOfBirth": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin doğum yeri."
          },
          "foreignIdentityDocumentType": {
            "enum": [
              "Passport",
              "IdentityCard",
              "DriversLicense",
              "ResidencePermit",
              "Other"
            ],
            "type": "string"
          },
          "foreignIdentityDocumentNumber": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "İbraz edilen yabancı kimlik belgesinin numarası."
          },
          "residenceDocumentFileId": {
            "type": "string",
            "description": "Yerleşim adresini gösteren belge (oturum izni, ikametgah vb.) görseli.",
            "format": "uuid"
          },
          "foreignIdentityFrontPhotoFileId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yabancı kimlik belgesinin ön yüzünü gösteren fotoğraf.",
            "format": "uuid"
          },
          "foreignIdentityBackPhotoFileId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yabancı kimlik belgesinin arka yüzünü gösteren fotoğraf.",
            "format": "uuid"
          },
          "foreignIdentityExpiryDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Yabancı kimlik belgesinin son geçerlilik tarihi.",
            "format": "date"
          },
          "nationalIdentityNumber": {
            "maxLength": 11,
            "minLength": 11,
            "type": [
              "null",
              "string"
            ],
            "description": "Varsa yabancı kimlik numarası (99 ile başlayan 11 haneli numara)."
          },
          "gender": {
            "description": "Kimlik tespiti yapılacak kişinin cinsiyeti.",
            "$ref": "#/components/schemas/Gender"
          },
          "provinceName": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin ikamet ettiği ilin adı."
          },
          "addressLine": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin açık ikamet adresi."
          },
          "occupation": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin mesleği."
          },
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişiye ait Türkiye'de kayıtlı olan telefon numarası."
          },
          "signatureFileId": {
            "type": "string",
            "description": "Kimlik tespiti sırasında alınan imzanın görseli.",
            "format": "uuid"
          },
          "declarationDocumentFileId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti sırasında imzalanan beyanname belgesi. Gönderilmezse belge backend'de oluşturulur.",
            "format": "uuid"
          },
          "verificationPurpose": {
            "description": "Kimlik tespitin sebebi.",
            "$ref": "#/components/schemas/IdentityVerificationPurpose"
          },
          "kvkkVerificationToken": {
            "type": [
              "null",
              "string"
            ],
            "description": "KVKK onay kodu doğrulandıktan sonra alınan doğrulama tokeni."
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti için opsiyonel açıklama."
          },
          "subjectTenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Adına işlem yapılacak tenant. Daha önce gönderilmiş bir izin talebin ilgili tenant tarafından onaylanmış olması gerekmektedir.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "identityType": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kimlik tipi. Boş gönderildiğinde gerçek kişi (Person) varsayılır.",
                "$ref": "#/components/schemas/IdentityTypeDto"
              }
            ]
          },
          "taxNumber": {
            "maxLength": 11,
            "minLength": 10,
            "type": [
              "null",
              "string"
            ],
            "description": "Tüzel kişiler için vergi numarası."
          },
          "companyName": {
            "maxLength": 150,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Tüzel kişiler için firma unvanı."
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "VerifyWithPassportInput": {
        "required": [
          "nationality",
          "passportNumber",
          "passportPhotoFileId",
          "passportExpiryDate",
          "placeOfBirth",
          "firstName",
          "lastName",
          "birthDate",
          "gender",
          "provinceName",
          "addressLine",
          "occupation",
          "phoneNumber",
          "signatureFileId",
          "verificationPurpose"
        ],
        "type": "object",
        "properties": {
          "nationality": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin vatandaşlığı. 3 harfli ISO 3166-1 alpha-3 kodu, örnek: TUR."
          },
          "passportNumber": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Pasaport belge numarası."
          },
          "passportPhotoFileId": {
            "type": "string",
            "description": "Pasaportun data sayfasını gösteren fotoğraf.",
            "format": "uuid"
          },
          "passportExpiryDate": {
            "type": "string",
            "description": "Pasaportun son geçerlilik tarihi.",
            "format": "date"
          },
          "passportIssueDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Pasaportun veriliş tarihi.",
            "format": "date"
          },
          "nationalIdentityNumber": {
            "maxLength": 11,
            "minLength": 11,
            "type": [
              "null",
              "string"
            ],
            "description": "T.C. vatandaşları için T.C. Kimlik Numarası. 11 haneli olmak zorunda."
          },
          "placeOfBirth": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Pasaport sahibinin doğum yeri."
          },
          "firstName": {
            "maxLength": 24,
            "minLength": 0,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin adı."
          },
          "lastName": {
            "maxLength": 24,
            "minLength": 0,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin soyadı."
          },
          "birthDate": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin doğum tarihi.",
            "format": "date"
          },
          "gender": {
            "description": "Kimlik tespiti yapılacak kişinin cinsiyeti.",
            "$ref": "#/components/schemas/Gender"
          },
          "provinceName": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin ikamet ettiği ilin adı."
          },
          "addressLine": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin açık ikamet adresi."
          },
          "occupation": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin mesleği."
          },
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişiye ait Türkiye'de kayıtlı olan telefon numarası."
          },
          "signatureFileId": {
            "type": "string",
            "description": "Kimlik tespiti sırasında alınan imzanın görseli.",
            "format": "uuid"
          },
          "declarationDocumentFileId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti sırasında imzalanan beyanname belgesi. Gönderilmezse belge backend'de oluşturulur.",
            "format": "uuid"
          },
          "verificationPurpose": {
            "description": "Kimlik tespitin sebebi.",
            "$ref": "#/components/schemas/IdentityVerificationPurpose"
          },
          "kvkkVerificationToken": {
            "type": [
              "null",
              "string"
            ],
            "description": "KVKK onay kodu doğrulandıktan sonra alınan doğrulama tokeni."
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti için opsiyonel açıklama."
          },
          "subjectTenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Adına işlem yapılacak tenant. Daha önce gönderilmiş bir izin talebin ilgili tenant tarafından onaylanmış olması gerekmektedir.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "identityType": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kimlik tipi. Boş gönderildiğinde gerçek kişi (Person) varsayılır.",
                "$ref": "#/components/schemas/IdentityTypeDto"
              }
            ]
          },
          "taxNumber": {
            "maxLength": 11,
            "minLength": 10,
            "type": [
              "null",
              "string"
            ],
            "description": "Tüzel kişiler için vergi numarası."
          },
          "companyName": {
            "maxLength": 150,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Tüzel kişiler için firma unvanı."
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "VerifyWithTurkishDriversLicenseInput": {
        "required": [
          "lastName",
          "firstName",
          "birthDate",
          "licenseIssueDate",
          "licenseExpiryDate",
          "licenseIssuer",
          "nationalIdentityNumber",
          "licenseNumber",
          "driversLicenseFrontPhotoFileId",
          "gender",
          "provinceName",
          "addressLine",
          "occupation",
          "phoneNumber",
          "signatureFileId",
          "verificationPurpose"
        ],
        "type": "object",
        "properties": {
          "lastName": {
            "maxLength": 24,
            "minLength": 0,
            "type": "string",
            "description": "Sürücü belgesinde yer alan soyad (1. alan)."
          },
          "firstName": {
            "maxLength": 24,
            "minLength": 0,
            "type": "string",
            "description": "Sürücü belgesinde yer alan ad (2. alan)."
          },
          "birthDate": {
            "type": "string",
            "description": "Sürücü belgesinde yer alan doğum tarihi (3. alan) zorunlu alandır.",
            "format": "date"
          },
          "licenseIssueDate": {
            "type": "string",
            "description": "Sürücü belgesinin veriliş tarihi (4a alanı).",
            "format": "date"
          },
          "licenseExpiryDate": {
            "type": "string",
            "description": "Sürücü belgesinin son geçerlikik tarihi (4b alanı).",
            "format": "date"
          },
          "licenseIssuer": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Sürücü belgesini çıkaran makam (4c alanı)."
          },
          "nationalIdentityNumber": {
            "maxLength": 11,
            "minLength": 11,
            "type": "string",
            "description": "Sürücü belge sahibinin T.C. Kimlik Numarası (4d alanı). 11 haneli olmak zorunda."
          },
          "licenseNumber": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Sürücü belgesi belge numarası (5. alan)."
          },
          "driversLicenseFrontPhotoFileId": {
            "type": "string",
            "description": "Sürücü belgesinin ön yüzünü gösteren fotoğraf.",
            "format": "uuid"
          },
          "gender": {
            "description": "Kimlik tespiti yapılacak kişinin cinsiyeti.",
            "$ref": "#/components/schemas/Gender"
          },
          "provinceName": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin ikamet ettiği ilin adı."
          },
          "addressLine": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin açık ikamet adresi."
          },
          "occupation": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin mesleği."
          },
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişiye ait Türkiye'de kayıtlı olan telefon numarası."
          },
          "signatureFileId": {
            "type": "string",
            "description": "Kimlik tespiti sırasında alınan imzanın görseli.",
            "format": "uuid"
          },
          "declarationDocumentFileId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti sırasında imzalanan beyanname belgesi. Gönderilmezse belge backend'de oluşturulur.",
            "format": "uuid"
          },
          "verificationPurpose": {
            "description": "Kimlik tespitin sebebi.",
            "$ref": "#/components/schemas/IdentityVerificationPurpose"
          },
          "kvkkVerificationToken": {
            "type": [
              "null",
              "string"
            ],
            "description": "KVKK onay kodu doğrulandıktan sonra alınan doğrulama tokeni."
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti için opsiyonel açıklama."
          },
          "placeOfBirth": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti yapılacak kişinin doğum yeri."
          },
          "subjectTenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Adına işlem yapılacak tenant. Daha önce gönderilmiş bir izin talebin ilgili tenant tarafından onaylanmış olması gerekmektedir.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "identityType": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kimlik tipi. Boş gönderildiğinde gerçek kişi (Person) varsayılır.",
                "$ref": "#/components/schemas/IdentityTypeDto"
              }
            ]
          },
          "taxNumber": {
            "maxLength": 11,
            "minLength": 10,
            "type": [
              "null",
              "string"
            ],
            "description": "Tüzel kişiler için vergi numarası."
          },
          "companyName": {
            "maxLength": 150,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Tüzel kişiler için firma unvanı."
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      },
      "VerifyWithTurkishIdentityCardInput": {
        "required": [
          "firstName",
          "lastName",
          "birthDate",
          "gender",
          "nationalIdentityNumber",
          "identityCardDocumentNumber",
          "identityCardFrontPhotoFileId",
          "identityCardBackPhotoFileId",
          "identityCardExpiryDate",
          "provinceName",
          "addressLine",
          "occupation",
          "phoneNumber",
          "signatureFileId",
          "verificationPurpose"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "maxLength": 24,
            "minLength": 0,
            "type": "string",
            "description": "T.C. Kimlik Kartı'nda yer alan ad."
          },
          "lastName": {
            "maxLength": 24,
            "minLength": 0,
            "type": "string",
            "description": "T.C. Kimlik Kartı'nda yer alan soyad."
          },
          "birthDate": {
            "type": "string",
            "description": "T.C. Kimlik Kartı'nda yer alan doğum tarihi.",
            "format": "date"
          },
          "gender": {
            "description": "T.C. Kimlik Kartı'nda yer alan cinsiyet.",
            "$ref": "#/components/schemas/Gender"
          },
          "nationalIdentityNumber": {
            "maxLength": 11,
            "minLength": 11,
            "type": "string",
            "description": "T.C. Kimlik Numarası. 11 haneli olmak zorunda."
          },
          "identityCardDocumentNumber": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "T.C. Kimlik Kartı'nın belge numarası."
          },
          "identityCardFrontPhotoFileId": {
            "type": "string",
            "description": "T.C. Kimlik Kartı'nın ön yüzünü gösteren fotoğraf.",
            "format": "uuid"
          },
          "identityCardBackPhotoFileId": {
            "type": "string",
            "description": "T.C. Kimlik Kartı'nın arka yüzünü gösteren fotoğraf.",
            "format": "uuid"
          },
          "identityCardExpiryDate": {
            "type": "string",
            "description": "T.C. Kimlik Kartı'nın son geçerlikik tarihi.",
            "format": "date"
          },
          "identityPhotoFileId": {
            "type": [
              "null",
              "string"
            ],
            "description": "T.C. Kimlik Kartında yer alan kimlik fotoğrafı.",
            "format": "uuid"
          },
          "motherName": {
            "maxLength": 140,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "T.C. Kimlik Kartı arka yüzünde yer alan anne adı."
          },
          "fatherName": {
            "maxLength": 140,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "T.C. Kimlik Kartı arka yüzünde yer alan baba adı."
          },
          "nfcData": {
            "maxLength": 87380,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Base64 kodlanmış imzalı NFC verisi."
          },
          "livenessPhotos": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/IdentityVerificationLivenessPhotoInput"
            },
            "description": "Canlılık kontrolü fotoğrafları. Canlılık kontrolü gerektiren Hızlı Kimlik Tespiti oturumlarında ön, sol ve sağ açıdan birer fotoğraf zorunludur; diğer durumlarda gönderilmemelidir."
          },
          "provinceName": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin ikamet ettiği ilin adı."
          },
          "addressLine": {
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin açık ikamet adresi."
          },
          "occupation": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişinin mesleği."
          },
          "phoneNumber": {
            "maxLength": 50,
            "minLength": 7,
            "type": "string",
            "description": "Kimlik tespiti yapılacak kişiye ait Türkiye'de kayıtlı olan telefon numarası."
          },
          "signatureFileId": {
            "type": "string",
            "description": "Kimlik tespiti sırasında alınan imzanın görseli.",
            "format": "uuid"
          },
          "declarationDocumentFileId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti sırasında imzalanan beyanname belgesi. Gönderilmezse belge backend'de oluşturulur.",
            "format": "uuid"
          },
          "verificationPurpose": {
            "description": "Kimlik tespitin sebebi.",
            "$ref": "#/components/schemas/IdentityVerificationPurpose"
          },
          "kvkkVerificationToken": {
            "type": [
              "null",
              "string"
            ],
            "description": "KVKK onay kodu doğrulandıktan sonra alınan doğrulama tokeni."
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti için opsiyonel açıklama."
          },
          "placeOfBirth": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Kimlik tespiti yapılacak kişinin doğum yeri."
          },
          "subjectTenantId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Adına işlem yapılacak tenant. Daha önce gönderilmiş bir izin talebin ilgili tenant tarafından onaylanmış olması gerekmektedir.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          },
          "identityType": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Kimlik tipi. Boş gönderildiğinde gerçek kişi (Person) varsayılır.",
                "$ref": "#/components/schemas/IdentityTypeDto"
              }
            ]
          },
          "taxNumber": {
            "maxLength": 11,
            "minLength": 10,
            "type": [
              "null",
              "string"
            ],
            "description": "Tüzel kişiler için vergi numarası."
          },
          "companyName": {
            "maxLength": 150,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Tüzel kişiler için firma unvanı."
          },
          "branchId": {
            "maxLength": 26,
            "minLength": 26,
            "pattern": "^[0-9A-HJKMNP-TV-Z]{26}$",
            "type": "string",
            "description": "Kaydın şubesi. Boşsa bağlamdan ya da oturumdaki kullanıcının şubesinden çözülür.",
            "format": "ulid",
            "example": "01KD0ZX9P61N7AHAV35R79XGQM"
          }
        }
      }
    },
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "password": {
            "tokenUrl": "https://api.eksenova.com/connect/token",
            "refreshUrl": "https://api.eksenova.com/connect/token",
            "scopes": {
              "accounting_codes.read_write": "Muhasebe kodları (okuma/yazma) - Muhasebe kodlarınıza okuma ve yazma erişimi sağlar.",
              "accounting_transfers": "Muhasebe aktarımları - Bekleyen muhasebe fişi aktarımlarını almaya ve sonuçlarını bildirmeye erişim sağlar.",
              "bank_accounts.read": "Banka hesapları (okuma) - Banka hesaplarınıza okuma erişimi sağlar.",
              "bank_accounts.read_write": "Banka hesapları (okuma/yazma) - Banka hesaplarınıza okuma ve yazma erişimi sağlar.",
              "bank_transactions.read": "Banka hareketleri (okuma) - Banka hesap hareketlerinize okuma erişimi sağlar.",
              "currency_rates.read": "Döviz ve altın kurları (okuma) - Güncel döviz ve altın kurlarına okuma erişimi sağlar.",
              "email": "E-posta adresi - E-posta adresinize erişim sağlar.",
              "invoices.read": "Faturalar (okuma) - Faturalarınıza okuma erişimi sağlar.",
              "legal_entities.read": "Cariler (okuma) - Cari kayıtlarınıza okuma erişimi sağlar.",
              "offline_access": "Çevrimdışı erişim - Oturum süresini uzatmak için yenileme anahtarı sağlar.",
              "openid": "Kimlik doğrulama - OpenID Connect kimlik doğrulaması için zorunludur.",
              "pos_sales.read": "POS satışları (okuma) - POS satış kayıtlarınıza okuma erişimi sağlar.",
              "pos_terminal": "POS terminal işlemleri - POS terminal işlemlerine erişim sağlar.",
              "profile": "Profil bilgileri - Ad ve kullanıcı adı gibi profil bilgilerinize erişim sağlar.",
              "profile.read": "Profil (okuma) - Ad, kullanıcı adı, e-posta ve işletme bilgilerinize okuma erişimi sağlar.",
              "roles": "Rol bilgileri - Rol bilgilerinize erişim sağlar.",
              "tenant": "İşletme bilgileri - Bağlı olduğunuz işletme bilgilerine erişim sağlar.",
              "tenant.read": "İşletmeler (okuma) - İşletme kayıtlarına okuma erişimi sağlar."
            }
          },
          "authorizationCode": {
            "authorizationUrl": "https://api.eksenova.com/connect/authorize",
            "tokenUrl": "https://api.eksenova.com/connect/token",
            "refreshUrl": "https://api.eksenova.com/connect/token",
            "scopes": {
              "accounting_codes.read_write": "Muhasebe kodları (okuma/yazma) - Muhasebe kodlarınıza okuma ve yazma erişimi sağlar.",
              "accounting_transfers": "Muhasebe aktarımları - Bekleyen muhasebe fişi aktarımlarını almaya ve sonuçlarını bildirmeye erişim sağlar.",
              "bank_accounts.read": "Banka hesapları (okuma) - Banka hesaplarınıza okuma erişimi sağlar.",
              "bank_accounts.read_write": "Banka hesapları (okuma/yazma) - Banka hesaplarınıza okuma ve yazma erişimi sağlar.",
              "bank_transactions.read": "Banka hareketleri (okuma) - Banka hesap hareketlerinize okuma erişimi sağlar.",
              "currency_rates.read": "Döviz ve altın kurları (okuma) - Güncel döviz ve altın kurlarına okuma erişimi sağlar.",
              "email": "E-posta adresi - E-posta adresinize erişim sağlar.",
              "invoices.read": "Faturalar (okuma) - Faturalarınıza okuma erişimi sağlar.",
              "legal_entities.read": "Cariler (okuma) - Cari kayıtlarınıza okuma erişimi sağlar.",
              "offline_access": "Çevrimdışı erişim - Oturum süresini uzatmak için yenileme anahtarı sağlar.",
              "openid": "Kimlik doğrulama - OpenID Connect kimlik doğrulaması için zorunludur.",
              "pos_sales.read": "POS satışları (okuma) - POS satış kayıtlarınıza okuma erişimi sağlar.",
              "pos_terminal": "POS terminal işlemleri - POS terminal işlemlerine erişim sağlar.",
              "profile": "Profil bilgileri - Ad ve kullanıcı adı gibi profil bilgilerinize erişim sağlar.",
              "profile.read": "Profil (okuma) - Ad, kullanıcı adı, e-posta ve işletme bilgilerinize okuma erişimi sağlar.",
              "roles": "Rol bilgileri - Rol bilgilerinize erişim sağlar.",
              "tenant": "İşletme bilgileri - Bağlı olduğunuz işletme bilgilerine erişim sağlar.",
              "tenant.read": "İşletmeler (okuma) - İşletme kayıtlarına okuma erişimi sağlar."
            }
          }
        },
        "x-default-scopes": [
          "accounting_codes.read_write",
          "bank_accounts.read",
          "bank_accounts.read_write",
          "bank_transactions.read",
          "email",
          "invoices.read",
          "legal_entities.read",
          "offline_access",
          "openid",
          "pos_sales.read",
          "profile",
          "roles",
          "tenant",
          "tenant.read"
        ]
      },
      "Bearer": {
        "type": "http",
        "scheme": "Bearer",
        "bearerFormat": "JWT"
      },
      "ApiKey": {
        "type": "apiKey",
        "description": "client_credentials akışına izin verilen bir OpenID istemcisine ait API anahtarı. Token alınmadan doğrudan istek göndermek için kullanılır.",
        "name": "X-API-KEY",
        "in": "header"
      }
    }
  },
  "tags": [
    {
      "name": "OpenID Connect ile Yetkilendirme",
      "description": "API'ye yapılan her istek OAuth 2.0 / OpenID Connect ile yetkilendirilir. Aşağıdaki adımlar\r\nbir erişim tokenı (`access_token`) almanız, tokenı yenilemeniz ve oturumu sonlandırmanız\r\niçin gereken her şeyi içerir.\r\n\r\nSunucunun tüm uç noktalarını ve desteklediği özellikleri makine tarafından okunabilir\r\nbiçimde `GET https://api.eksenova.com/.well-known/openid-configuration` adresinden alabilirsiniz.\r\n\r\n### Hangi yöntemi kullanmalıyım?\r\n\r\n| Durum | Yöntem |\r\n| --- | --- |\r\n| Kullanıcının tarayıcıda giriş yaptığı web/mobil uygulama | `authorization_code` akışı (PKCE zorunlu) |\r\n| Sunucu-sunucu entegrasyonu (kullanıcı arayüzü yok) | API anahtarı (`X-API-KEY` başlığı) |\r\n| Tokenın süresi dolduğunda yenileme | `refresh_token` |\r\n\r\nKullanıcı adına işlem yapıyorsanız **`authorization_code`** kullanın; kullanıcı parolasını\r\nhiçbir zaman kendi uygulamanızda saklamanız gerekmez. Kullanıcı etkileşimi olmayan bir\r\nentegrasyon yazıyorsanız (arka plan servisi, zamanlanmış iş, sunucu-sunucu senkronizasyonu)\r\n**API anahtarı** kullanın.\r\n\r\n### 1. Authorization code akışı ile giriş\r\n\r\n**Adım 1: PKCE değerlerini üretin.** `code_verifier` rastgele bir dizedir; `code_challenge`\r\nonun SHA-256 özetinin base64url halidir. Yalnızca `S256` desteklenir.\r\n\r\n```bash\r\ncode_verifier=$(openssl rand -base64 60 | tr -d '\\n=+/' | cut -c1-64)\r\ncode_challenge=$(printf '%s' \"$code_verifier\" \\\r\n  | openssl dgst -binary -sha256 \\\r\n  | openssl base64 \\\r\n  | tr '+/' '-_' | tr -d '=\\n')\r\n```\r\n\r\n**Adım 2: Kullanıcıyı yetkilendirme adresine yönlendirin.** `state` değerini siz üretir ve\r\ngeri döndüğünde doğrularsınız (CSRF koruması).\r\n\r\n```http\r\nGET https://api.eksenova.com/connect/authorize\r\n  ?response_type=code\r\n  &client_id=ornek-istemci\r\n  &redirect_uri=https://uygulamaniz.example/oauth/callback\r\n  &scope=openid%20profile%20tenant%20offline_access\r\n  &state=rastgele-deger\r\n  &code_challenge=<code_challenge>\r\n  &code_challenge_method=S256\r\n```\r\n\r\nKullanıcının oturumu yoksa giriş ekranı, onay gerekiyorsa onay ekranı gösterilir.\r\n\r\n**Adım 3: Dönen kodu tokena çevirin.** Kullanıcı `redirect_uri` adresinize\r\n`?code=...&state=...` ile döner. `state` değerinin gönderdiğinizle aynı olduğunu doğrulayın,\r\nardından kodu takas edin:\r\n\r\n```bash\r\ncurl -X POST https://api.eksenova.com/connect/token \\\r\n  -H 'Content-Type: application/x-www-form-urlencoded' \\\r\n  -d 'grant_type=authorization_code' \\\r\n  -d 'client_id=ornek-istemci' \\\r\n  -d 'code=<code>' \\\r\n  -d 'redirect_uri=https://uygulamaniz.example/oauth/callback' \\\r\n  -d \"code_verifier=$code_verifier\"\r\n```\r\n\r\n```json\r\n{\r\n  \"access_token\": \"eyJhbGciOi...\",\r\n  \"token_type\": \"Bearer\",\r\n  \"expires_in\": 3600,\r\n  \"refresh_token\": \"CFDL7...\",\r\n  \"id_token\": \"eyJhbGciOi...\",\r\n  \"scope\": \"openid profile tenant offline_access\"\r\n}\r\n```\r\n\r\n`access_token` 1 saat (`expires_in`: 3600 saniye) geçerlidir.\r\n\r\n**Adım 4: Tokenı isteklerde kullanın.**\r\n\r\n```bash\r\ncurl https://api.eksenova.com/api/invoices -H \"Authorization: Bearer $access_token\"\r\n```\r\n\r\n### 2. API anahtarı ile sunucu-sunucu entegrasyonu\r\n\r\nKullanıcı arayüzü olmayan entegrasyonlar için (arka plan servisi, zamanlanmış iş,\r\nsunucu-sunucu senkronizasyonu) API anahtarı kullanın. Token almanıza, tokenı\r\nyenilemenize ya da bir kullanıcı adına giriş yapmanıza gerek kalmaz; anahtarı her\r\nisteğe başlık olarak eklemeniz yeterlidir:\r\n\r\n```bash\r\ncurl https://api.eksenova.com/api/invoices -H \"X-API-KEY: <api_key>\"\r\n```\r\n\r\nAPI anahtarları Eksenova ekibi tarafından, sizin adınıza oluşturulan size özel bir\r\nistemciye (`Client`) bağlı olarak verilir; kendi başınıza oluşturamazsınız. Bir istemci\r\nve API anahtarı talep etmek için [Eksenova ile iletişime geçin](https://eksenova.com/en/contact/).\r\nAnahtar, bağlı olduğu istemciye tanınan izinlerle sınırlıdır: istemciye hangi kaynaklara\r\nerişim izni verildiyse anahtarınız da yalnızca onlara erişebilir, kullanıcı rollerindeki\r\nizin modeliyle aynı mantık. İstemci bir tenanta bağlıysa anahtarla yaptığınız tüm istekler\r\no tenant bağlamında çalışır.\r\n\r\nAnahtarın süresi isteğe bağlı olarak belirlenebilir ya da süresiz olabilir; her iki\r\ndurumda da Eksenova tarafından istediğiniz an iptal edilebilir. `X-API-KEY` başlığı\r\nSignalR bağlantılarında da (bkz. **SignalR ile Anlık Bildirimler** bölümü) aynı\r\nşekilde çalışır.\r\n\r\n### 3. Kapsamlar (scope)\r\n\r\nKapsam, tokenın **neye erişebileceğini** belirler. İstediğiniz kapsamları `scope`\r\nparametresinde boşlukla ayırarak gönderirsiniz; sunucu yalnızca izin verilenleri döner ve\r\ndönen listeyi yanıttaki `scope` alanında görürsünüz. Yetkinizin olmadığı bir kapsamı istemek\r\nisteği başarısız kılmaz, o kapsam verilmez.\r\n\r\nEn az yetki ilkesini uygulayın: yalnızca gerçekten kullandığınız kapsamları isteyin.\r\n\r\n| Kapsam | Ne işe yarar |\r\n| --- | --- |\r\n| `openid` | **Zorunlu.** OpenID Connect kimlik doğrulamasını başlatır ve `id_token` döner. |\r\n| `offline_access` | `refresh_token` verilmesini sağlar. Token yenilemek istiyorsanız gerekli. |\r\n| `profile` | Ad, soyad ve kullanıcı adı bilgilerini tokena ekler. |\r\n| `email` | E-posta adresini tokena ekler. |\r\n| `roles` | Kullanıcının rollerini tokena ekler. |\r\n| `tenant` | Tenant kimliği, adı ve bayi bilgisini tokena ekler. Tenant bağlamı gereken tüm entegrasyonlarda kullanın. |\r\n| `tenant.read` | Tenant kayıtlarını okuma erişimi. |\r\n| `profile.read` | Profil, e-posta ve tenant bilgisini okuma erişimi. |\r\n| `invoices.read` | Faturaları okuma erişimi. |\r\n| `legal_entities.read` | Cari kayıtlarını okuma erişimi. |\r\n| `bank_accounts.read` | Banka hesaplarını okuma erişimi. |\r\n| `bank_accounts.read_write` | Banka hesaplarında okuma ve yazma erişimi. |\r\n| `bank_transactions.read` | Banka hesap hareketlerini okuma erişimi. |\r\n| `pos_sales.read` | POS satışlarını okuma erişimi. |\r\n| `currency_rates.read` | Döviz ve altın kurlarını okuma erişimi. |\r\n| `accounting_codes.read_write` | Muhasebe kodu şablonlarında okuma ve yazma erişimi. |\r\n| `accounting_transfers` | Muhasebe aktarım paketlerini çekme ve onaylama erişimi. |\r\n\r\nTipik bir başlangıç seti: `openid offline_access tenant profile`.\r\n\r\n### 4. Tokenı yenileme\r\n\r\n`access_token` kısa ömürlüdür; 1 saat sonra süresi dolar (`expires_in` alanında saniye\r\ncinsinden belirtilir). Süresi dolduğunda kullanıcıyı yeniden giriş yapmaya zorlamak yerine\r\n`refresh_token` ile yeni bir token alın. Bunun için ilk istekte `offline_access` kapsamını\r\nistemiş olmanız gerekir.\r\n\r\n```bash\r\ncurl -X POST https://api.eksenova.com/connect/token \\\r\n  -H 'Content-Type: application/x-www-form-urlencoded' \\\r\n  -d 'grant_type=refresh_token' \\\r\n  -d 'client_id=ornek-istemci' \\\r\n  -d \"refresh_token=$refresh_token\"\r\n```\r\n\r\nYanıt yeni bir `access_token` **ve yeni bir `refresh_token`** içerir. Yenileme tokenları\r\ndöndürülür: eskisini saklamayı bırakıp yenisini kaydedin. Kapsamlar ilk istekten devralınır,\r\nyeniden göndermeniz gerekmez.\r\n\r\n`401` alırsanız tokenın süresi dolmuştur; yenileyin. Yenileme de başarısız olursa\r\n(kullanıcı pasife alınmış, oturum kapatılmış veya token iptal edilmiş olabilir) akışı\r\n1. adımdan yeniden başlatın.\r\n\r\n### 5. Oturumu sonlandırma\r\n\r\nÇıkış yaparken tokenı sunucu tarafında iptal edin; yalnızca istemciden silmek yeterli\r\ndeğildir.\r\n\r\n```bash\r\ncurl -X POST https://api.eksenova.com/connect/logout -H \"Authorization: Bearer $access_token\"\r\n```\r\n\r\nBu istek erişim tokenını iptal eder, ilişkili oturumu sonlandırır ve kimlik sağlayıcı oturum\r\nçerezini siler. `access_token` süresi dolmamış olsa bile bu işlemden sonra hemen geçersiz\r\nolur; sunucu her istekte tokenın iptal durumunu kontrol eder. `refresh_token` da aynı anda\r\nkullanılamaz hale gelir."
    },
    {
      "name": "SignalR ile Anlık Bildirimler",
      "description": "Banka hesaplarındaki bakiye değişikliklerini ve yeni hesap hareketlerini öğrenmek için API'yi\r\nsürekli sorgulamanız gerekmez. Eksenova, bu olayları [SignalR](https://learn.microsoft.com/aspnet/core/signalr/introduction)\r\nüzerinden anlık olarak iletir; siz yalnızca bir kez bağlanır ve olay geldikçe ilgili kaydı\r\nREST uç noktalarından çekersiniz.\r\n\r\n### Bağlantı adresi ve yetkilendirme\r\n\r\n| | |\r\n| --- | --- |\r\n| Hub adresi | `https://api.eksenova.com/hubs/app` |\r\n| Protokol | SignalR |\r\n| Yetkilendirme | `access_token` veya API anahtarını |\r\n\r\nKullanıcı tokenıyla bağlanıyorsanız `Authorization: Bearer <access_token>` başlığını gönderin.\r\nAPI anahtarıyla bağlanıyorsanız `X-API-KEY: <api_key>` başlığını gönderin; API anahtarlarının nasıl\r\noluşturulacağı **OpenID Connect ile Yetkilendirme** bölümünde anlatılmıştır. Tarayıcıdaki WebSocket\r\nbağlantıları özel başlık gönderemediği için her iki yöntem için de bir sorgu parametresi alternatifi\r\nvardır: token için `?access_token=<access_token>`, API anahtarı için `?api_key=<api_key>`. Bir\r\nbağlantıda yalnızca birini kullanın; ikisi birden gönderilirse API anahtarı önceliklidir.\r\n\r\nBağlantı, kimliğin `tenant_id` claim'ine bakarak sizi otomatik olarak tenantınızın grubuna ekler.\r\nEk bir abonelik çağrısı yapmanız gerekmez; bağlanan istemci o tenantın tüm banka olaylarını alır.\r\nHost (tenant'sız) kimlikler tenant gruplarına eklenmez, dolayısıyla banka olaylarını almaz. API\r\nanahtarı kullanıyorsanız bu, anahtarın bağlı olduğu istemcinin (`Client`) tenantıdır.\r\n\r\n### Yetki kontrolü\r\n\r\nHer olay, REST'teki karşılığıyla **aynı izne** bağlıdır. Bağlantınız (kullanıcı tokenı veya API\r\nanahtarı fark etmeksizin) o izne sahip değilse ilgili olayı hiç almazsınız; sunucu olayı o bağlantıya\r\ngöndermeden önce filtreler, istemci tarafında ekstra bir kontrol yapmanıza gerek yoktur:\r\n\r\n| Olay | Gereken izin |\r\n| --- | --- |\r\n| `NewBankTransactions` | `Kts.BankAccountTransactions.GetList` |\r\n| `BankAccountBalanceUpdated` | `Kts.BankAccounts.GetList` |\r\n\r\nAPI anahtarı için bu, anahtarın bağlı olduğu istemciye (`Client`) tanınan token izinlerine karşılık\r\ngelir. REST uç noktalarında `403 Forbidden` alan bir izin, SignalR'da o olayın hiç gelmemesi olarak\r\nkarşınıza çıkar.\r\n\r\n### Olaylar\r\n\r\n| Olay (metot adı) | Ne zaman tetiklenir? |\r\n| --- | --- |\r\n| `NewBankTransactions` | Bir banka hesabı için yeni hareketler içeri alındığında (yalnızca daha önce kaydedilmemiş hareketler sayılır) |\r\n| `BankAccountBalanceUpdated` | Bankadan okunan bakiye, kayıtlı bakiyeden farklı olduğunda |\r\n\r\nOlay yükleri JSON'dur ve alan adları camelCase'tir:\r\n\r\n```json\r\n{\r\n  \"eventType\": \"NewBankTransactions\",\r\n  \"tenantId\": \"01KT78Z0BNQ8ZP2V5M9Y6R3XKD\",\r\n  \"bankAccountId\": \"01KV2A6H3J8N1QF4TR7WY0C5ME\",\r\n  \"transactionCount\": 3,\r\n  \"timestamp\": \"2026-09-03T09:14:22.184Z\"\r\n}\r\n```\r\n\r\n```json\r\n{\r\n  \"eventType\": \"BankAccountBalanceUpdated\",\r\n  \"tenantId\": \"01KT78Z0BNQ8ZP2V5M9Y6R3XKD\",\r\n  \"bankAccountId\": \"01KV2A6H3J8N1QF4TR7WY0C5ME\",\r\n  \"balance\": 148250.75,\r\n  \"currency\": \"TRY\",\r\n  \"timestamp\": \"2026-09-03T09:14:22.184Z\"\r\n}\r\n```\r\n\r\n`balance` alanı, bakiye bankadan okunamadıysa `null` olabilir. Olay yükleri hareketlerin kendisini\r\ntaşımaz; yalnızca hangi hesapta kaç yeni hareket olduğunu bildirir.\r\n\r\n### Bağlanma\r\n\r\n<div class=\"eks-code-tabs\">\r\n\r\n```csharp\r\nusing Microsoft.AspNetCore.SignalR.Client;\r\n\r\nconst string api = \"https://api.eksenova.com\";\r\n\r\nvar connection = new HubConnectionBuilder()\r\n    .WithUrl($\"{api}/hubs/app\", options =>\r\n    {\r\n        options.AccessTokenProvider = async () => await tokenStore.GetAccessTokenAsync();\r\n    })\r\n    .WithAutomaticReconnect()\r\n    .Build();\r\n\r\nconnection.On<NewBankTransactionsEvent>(\"NewBankTransactions\", async payload =>\r\n{\r\n    Console.WriteLine($\"{payload.BankAccountId} hesabına {payload.TransactionCount} yeni hareket geldi.\");\r\n    await SyncTransactionsAsync(payload.BankAccountId);\r\n});\r\n\r\nconnection.On<BankAccountBalanceUpdatedEvent>(\"BankAccountBalanceUpdated\", payload =>\r\n{\r\n    Console.WriteLine($\"{payload.BankAccountId} bakiyesi: {payload.Balance} {payload.Currency}\");\r\n});\r\n\r\nconnection.Reconnected += async _ =>\r\n{\r\n    await SyncTransactionsAsync(bankAccountId: null);\r\n};\r\n\r\nawait connection.StartAsync();\r\n\r\npublic sealed record NewBankTransactionsEvent(\r\n    string EventType,\r\n    string TenantId,\r\n    string BankAccountId,\r\n    int TransactionCount,\r\n    DateTimeOffset Timestamp);\r\n\r\npublic sealed record BankAccountBalanceUpdatedEvent(\r\n    string EventType,\r\n    string TenantId,\r\n    string BankAccountId,\r\n    decimal? Balance,\r\n    string Currency,\r\n    DateTimeOffset Timestamp);\r\n```\r\n\r\n```js\r\nimport { HubConnectionBuilder, LogLevel } from '@microsoft/signalr'\r\n\r\nconst api = 'https://api.eksenova.com'\r\n\r\nconst connection = new HubConnectionBuilder()\r\n  .withUrl(`${api}/hubs/app`, {\r\n    accessTokenFactory: () => tokenStore.getAccessToken(),\r\n  })\r\n  .withAutomaticReconnect()\r\n  .configureLogging(LogLevel.Warning)\r\n  .build()\r\n\r\nconnection.on('NewBankTransactions', async (payload) => {\r\n  console.log(`${payload.bankAccountId} hesabına ${payload.transactionCount} yeni hareket geldi.`)\r\n  await syncTransactions(payload.bankAccountId)\r\n})\r\n\r\nconnection.on('BankAccountBalanceUpdated', (payload) => {\r\n  console.log(`${payload.bankAccountId} bakiyesi: ${payload.balance} ${payload.currency}`)\r\n})\r\n\r\nconnection.onreconnected(() => syncTransactions())\r\n\r\nawait connection.start()\r\n```\r\n\r\n</div>\r\n\r\nC# için `Microsoft.AspNetCore.SignalR.Client`, Node.js için `@microsoft/signalr` paketini kurmanız\r\ngerekir:\r\n\r\n<div class=\"eks-code-tabs\">\r\n\r\n**C#**\r\n\r\n```bash\r\ndotnet add package Microsoft.AspNetCore.SignalR.Client\r\n```\r\n\r\n**Node.js**\r\n\r\n```bash\r\nnpm install @microsoft/signalr\r\n```\r\n\r\n</div>\r\n\r\n`accessTokenFactory` / `AccessTokenProvider` her bağlantı denemesinde yeniden çağrılır. Tokenı burada\r\nönbellekten okuyup süresi dolduysa yenilerseniz, uzun süreli bağlantılarda yeniden yetkilendirme\r\nkendiliğinden çalışır.\r\n\r\n### Olayı aldıktan sonra hareketleri çekme\r\n\r\n<div class=\"eks-code-tabs\">\r\n\r\n```csharp\r\nprivate async Task SyncTransactionsAsync(string? bankAccountId)\r\n{\r\n    const string api = \"https://api.eksenova.com\";\r\n\r\n    var query = bankAccountId is null\r\n        ? \"?Sorting=CreationTime DESC&MaxResultCount=50\"\r\n        : $\"?BankAccountIds={bankAccountId}&Sorting=CreationTime DESC&MaxResultCount=50\";\r\n\r\n    using var request = new HttpRequestMessage(\r\n        HttpMethod.Get,\r\n        $\"{api}/api/bank-account-transactions{query}\");\r\n\r\n    request.Headers.Authorization = new AuthenticationHeaderValue(\r\n        \"Bearer\",\r\n        await tokenStore.GetAccessTokenAsync());\r\n\r\n    using var response = await httpClient.SendAsync(request);\r\n    response.EnsureSuccessStatusCode();\r\n\r\n    var page = await response.Content.ReadFromJsonAsync<PagedList<BankAccountTransaction>>();\r\n\r\n    foreach (var transaction in page!.Items)\r\n    {\r\n        await UpsertAsync(transaction);\r\n    }\r\n}\r\n```\r\n\r\n```js\r\nasync function syncTransactions(bankAccountId) {\r\n  const api = 'https://api.eksenova.com'\r\n\r\n  const query = new URLSearchParams({\r\n    Sorting: 'CreationTime DESC',\r\n    MaxResultCount: '50',\r\n  })\r\n\r\n  if (bankAccountId) {\r\n    query.append('BankAccountIds', bankAccountId)\r\n  }\r\n\r\n  const response = await fetch(`${api}/api/bank-account-transactions?${query}`, {\r\n    headers: { Authorization: `Bearer ${await tokenStore.getAccessToken()}` },\r\n  })\r\n\r\n  if (!response.ok) {\r\n    throw new Error(`Hareketler alınamadı: ${response.status}`)\r\n  }\r\n\r\n  const page = await response.json()\r\n\r\n  for (const transaction of page.items) {\r\n    await upsert(transaction)\r\n  }\r\n}\r\n```\r\n\r\n</div>\r\n\r\n### Dikkat edilmesi gerekenler\r\n\r\n- **Olaylar garanti edilmez, kayıtlar edilir.** Bağlantınız koptuğu sırada gönderilen olaylar\r\n  yeniden bağlandığınızda tekrar iletilmez. Bu yüzden `Reconnected` / `onreconnected` anında\r\n  son hareketleri bir kez çekin; kalıcı doğruluk için günde birkaç kez tam senkronizasyon yapın.\r\n- **Aynı olay birden çok kez gelebilir.** İşlemleri hareket ID'sine göre idempotent kaydedin.\r\n- **`transactionCount` yalnızca yeni kaydedilen hareket sayısıdır.** Bankadan okunup daha önce\r\n  kaydedilmiş olan hareketler bu sayıya dahil değildir.\r\n- **Bakiye olayı hareketten bağımsızdır.** Bakiye değiştiğinde yeni hareket olmayabilir\r\n  (örneğin blokaj), yeni hareket geldiğinde de bakiye aynı kalabilir.\r\n- **Bağlantı başına tek token.** Token yenilendiğinde SignalR mevcut bağlantıyı kapatmaz;\r\n  yenileme yalnızca sonraki bağlantı denemesinde etkili olur."
    },
    {
      "name": "CurrentSubscription",
      "description": "Tenant'ın kendi aboneliği ve faturalama kayıtları.",
      "x-displayName": "Abonelik"
    },
    {
      "name": "TenantBankAccountTransactionClassifications",
      "description": "Banka hesap hareketleri için otomatik sınıflandırma ve gizleme kuralları.",
      "x-displayName": "Banka Hareketi Sınıflandırma Kuralları"
    },
    {
      "name": "BankAccountTransactionExcelExport",
      "description": "Banka hesap hareketlerinin Excel olarak dışa aktarımı.",
      "x-displayName": "Banka Hareketleri Excel Aktarımı"
    },
    {
      "name": "BankAccountTransactionExcelExportSettings",
      "description": "Banka hesap hareketi Excel dışa aktarma sütun ayarları.",
      "x-displayName": "Banka Hareketleri Excel Ayarları"
    },
    {
      "name": "BankAccountTransactions",
      "description": "Banka hesap hareketlerinin listelenmesi, sınıflandırılması ve gizlenmesi.",
      "x-displayName": "Banka Hesap Hareketleri"
    },
    {
      "name": "BankAccounts",
      "description": "Tenant banka hesaplarının tanımlanması ve yönetimi.",
      "x-displayName": "Banka Hesapları"
    },
    {
      "name": "TenantInvoiceSettings",
      "description": "Tenant'ın belge serileri ve tüm faturalara eklenen sabit fatura notu.",
      "x-displayName": "Belge Ayarları"
    },
    {
      "name": "NotificationPolicies",
      "description": "Rol bazlı bildirim politikalarının yönetimi.",
      "x-displayName": "Bildirim Politikaları"
    },
    {
      "name": "NotificationPreferences",
      "description": "Kullanıcının bildirim tercihlerinin yönetimi.",
      "x-displayName": "Bildirim Tercihleri"
    },
    {
      "name": "NotificationTypes",
      "description": "Bildirim tipi kataloğu.",
      "x-displayName": "Bildirim Tipleri"
    },
    {
      "name": "Notifications",
      "description": "Kullanıcı bildirimlerinin listelenmesi ve okundu olarak işaretlenmesi.",
      "x-displayName": "Bildirimler"
    },
    {
      "name": "LegalEntityExcelExport",
      "description": "Cari kayıtlarının Excel olarak dışa aktarımı.",
      "x-displayName": "Cari Excel Aktarımı"
    },
    {
      "name": "LegalEntityExcelExportSettings",
      "description": "Cari Excel dışa aktarma sütun ayarları.",
      "x-displayName": "Cari Excel Ayarları"
    },
    {
      "name": "BankAccountInfos",
      "description": "IBAN ve kimlik numarasına göre banka hesap bilgisi sorgulama.",
      "x-displayName": "Cari Hesapları"
    },
    {
      "name": "LegalEntities",
      "description": "Cari (müşteri ve tedarikçi) kayıtlarının yönetimi.",
      "x-displayName": "Cariler"
    },
    {
      "name": "DataTablePreferences",
      "description": "Tablo görünüm tercihleri: sütun düzeni, varsayılan sıralama ve varsayılan filtreler."
    },
    {
      "name": "Files",
      "description": "Dosya yükleme, indirme ve meta veri işlemleri.",
      "x-displayName": "Dosyalar"
    },
    {
      "name": "CurrencyRates",
      "description": "Güncel döviz ve altın kurları.",
      "x-displayName": "Döviz ve Altın Kurları"
    },
    {
      "name": "TenantEDocumentCapabilities",
      "description": "Kiracının bağlı entegratör hesaplarına göre etkin e-belge türleri (e-Fatura, e-Arşiv, e-İrsaliye, e-Gider Pusulası).",
      "x-displayName": "e-Belge Türleri"
    },
    {
      "name": "EVouchers",
      "description": "e-Gider Pusulası oluşturma, oluşturma öncesi SMS doğrulaması, entegratöre gönderme, durum takibi ve belge indirme işlemleri.",
      "x-displayName": "e-Gider Pusulası"
    },
    {
      "name": "EVoucherExcelExport",
      "description": "e-Gider Pusulalarının Excel olarak dışa aktarımı.",
      "x-displayName": "e-Gider Pusulası Excel Aktarımı"
    },
    {
      "name": "EVoucherExcelExportSettings",
      "description": "e-Gider Pusulası Excel dışa aktarma sütun ayarları.",
      "x-displayName": "e-Gider Pusulası Excel Ayarları"
    },
    {
      "name": "InventorySettings",
      "description": "Envanter modülü ayarları.",
      "x-displayName": "Envanter Ayarları"
    },
    {
      "name": "InventoryExcelExports",
      "description": "Envanter, ürün ve kalem listelerinin Excel olarak dışa aktarımı.",
      "x-displayName": "Envanter Excel Aktarımları"
    },
    {
      "name": "InventoryExcelExportSettings",
      "description": "Envanter, ürün, kalem ve hareket listelerinin Excel dışa aktarma sütun ayarları.",
      "x-displayName": "Envanter Excel Ayarları"
    },
    {
      "name": "InventoryMovements",
      "description": "Envanter giriş/çıkış hareketleri ve stok ayarlama işlemleri.",
      "x-displayName": "Envanter Hareketleri"
    },
    {
      "name": "InventoryItems",
      "description": "Envanter kalemlerinin listelenmesi.",
      "x-displayName": "Envanter Kalemleri"
    },
    {
      "name": "InventoryProducts",
      "description": "Envanter ürün kartlarının yönetimi.",
      "x-displayName": "Envanter Ürünleri"
    },
    {
      "name": "Invoices",
      "description": "e-Fatura ve e-Arşiv faturalarının oluşturulması, gönderilmesi ve takibi.",
      "x-displayName": "Fatura"
    },
    {
      "name": "InvoiceExcelExport",
      "description": "Faturaların Excel olarak dışa aktarımı.",
      "x-displayName": "Fatura Excel Aktarımı"
    },
    {
      "name": "InvoiceExcelExportSettings",
      "description": "Fatura Excel dışa aktarma sütun ayarları.",
      "x-displayName": "Fatura Excel Ayarları"
    },
    {
      "name": "TenantInvoiceSeries",
      "description": "Tenant'ın e-Fatura ve e-Arşiv fatura serileri. Yerini /api/tenant/invoice-settings aldı.",
      "x-displayName": "Fatura Serileri"
    },
    {
      "name": "ExpenseBills",
      "description": "Gider pusulalarının oluşturulması ve yönetimi.",
      "x-displayName": "Gider Pusulaları"
    },
    {
      "name": "ExpenseBillExcelExport",
      "description": "Gider pusulalarının Excel olarak dışa aktarımı.",
      "x-displayName": "Gider Pusulası Excel Aktarımı"
    },
    {
      "name": "ExpenseBillExcelExportSettings",
      "description": "Gider pusulası Excel dışa aktarma sütun ayarları.",
      "x-displayName": "Gider Pusulası Excel Ayarları"
    },
    {
      "name": "ExternalAccounts",
      "description": "Harici hesap yönetimi.",
      "x-displayName": "Harici Hesaplar"
    },
    {
      "name": "DespatchAdvices",
      "description": "e-İrsaliye oluşturma, gönderme ve yanıtlama işlemleri.",
      "x-displayName": "İrsaliye"
    },
    {
      "name": "DespatchAdviceExcelExport",
      "description": "İrsaliyelerin Excel olarak dışa aktarımı.",
      "x-displayName": "İrsaliye Excel Aktarımı"
    },
    {
      "name": "DespatchAdviceExcelExportSettings",
      "description": "İrsaliye Excel dışa aktarma sütun ayarları.",
      "x-displayName": "İrsaliye Excel Ayarları"
    },
    {
      "name": "CashboxRecordExcelExport",
      "description": "Kasa hareketlerinin Excel olarak dışa aktarımı.",
      "x-displayName": "Kasa Hareketi Excel Aktarımı"
    },
    {
      "name": "CashboxRecordExcelExportSettings",
      "description": "Kasa hareketi Excel dışa aktarma sütun ayarları.",
      "x-displayName": "Kasa Hareketi Excel Ayarları"
    },
    {
      "name": "IdentityVerifications",
      "description": "MASAK kimlik tespiti işlemleri ve doğrulama kayıtları.",
      "x-displayName": "Kimlik Tespiti"
    },
    {
      "name": "Provinces",
      "description": "İl ve ilçe listeleri.",
      "x-displayName": "Konum Bilgileri"
    },
    {
      "name": "Users",
      "description": "Kullanıcıların, rollerinin ve şifre işlemlerinin yönetimi.",
      "x-displayName": "Kullanıcılar"
    },
    {
      "name": "GoldDealingWholesalers",
      "description": "Oturum açan tenant'ın bağlı olduğu kuyumculuk toptancıları.",
      "x-displayName": "Kuyumcu Toptancıları"
    },
    {
      "name": "GoldDealingWholesalerTenantLinkRequests",
      "description": "Kuyumculuk toptancılarının kuyumcularla bağlantı kurma talepleri ve bu taleplerin sonuçlandırılması.",
      "x-displayName": "Kuyumculuk Toptancı Bağlantı Talepleri"
    },
    {
      "name": "GoldDealingWholesalerTenants",
      "description": "Kuyumcu toptancıları ile kuyumcular arasındaki bağlantılar. Bağlantı bir talep onayıyla ya da doğrudan bu uçlardan kurulabilir.",
      "x-displayName": "Kuyumculuk Toptancı Bağlantıları"
    },
    {
      "name": "KvkkConsents",
      "description": "KVKK rıza kayıtlarının görüntülenmesi.",
      "x-displayName": "KVKK Rıza Kayıtları"
    },
    {
      "name": "CustomerTransactions",
      "description": "MASAK kapsamındaki müşteri işlemlerinin kaydı ve listelenmesi.",
      "x-displayName": "Müşteri İşlemleri"
    },
    {
      "name": "PosDevices",
      "description": "POS cihazlarının tanımlanması ve yönetimi.",
      "x-displayName": "POS Cihazları"
    },
    {
      "name": "PosTransactions",
      "description": "POS işlemlerinin listelenmesi.",
      "x-displayName": "POS İşlemleri"
    },
    {
      "name": "PosAccounts",
      "description": "POS üye işyeri hesaplarının yönetimi ve senkronizasyonu.",
      "x-displayName": "POS Üye İşyerleri"
    },
    {
      "name": "Reports",
      "description": "Rapor taleplerinin sıraya alınması ve rapor sonuçlarının getirilmesi.",
      "x-displayName": "Raporlar"
    },
    {
      "name": "RolePolicies",
      "description": "Rollere tanımlanan politikaların ve yapılandırmalarının yönetimi.",
      "x-displayName": "Rol Politikaları"
    },
    {
      "name": "Roles",
      "description": "Rollerin ve rol izinlerinin yönetimi.",
      "x-displayName": "Roller"
    },
    {
      "name": "TenantBranches",
      "description": "İşletme şubelerinin yönetimi, şube istatistikleri ve kayıtların şubelere atanması.",
      "x-displayName": "Şubeler"
    },
    {
      "name": "TenantUsers",
      "description": "Bir tenanttaki kullanıcı üyeliklerinin yönetimi.",
      "x-displayName": "Tenant Kullanıcı Üyelikleri"
    },
    {
      "name": "Sanctions",
      "description": "Kişi ve kuruluşların yaptırım ve PEP listelerine karşı taranması.",
      "x-displayName": "Yaptırım Taraması"
    },
    {
      "name": "PermissionsDefinitions",
      "description": "Yetki tanımları ve kullanıcının sahip olduğu yetkiler.",
      "x-displayName": "Yetki Tanımları"
    }
  ]
}