# Profili sil

> Bir profilin kişisel verilerini siler ve zamanlanmış e-postalarını iptal eder. Silinme
> hakkı taleplerini yerine getirmek için kullanın.
>
> Profili `external_profile_id`, `customer_user_id` ve `email` alanlarının herhangi bir
> kombinasyonuyla tanımlayın — Adapty Mail, profili kaydetme işlemindeki gibi çözer.
>
> Silme işlemi kalıcıdır. Aynı tanımlayıcıları taşıyan sonraki bir
> [Profili kaydet](#operation/saveProfile) isteği profili yeniden oluşturmaz.
>
> `external_profile_id` veya `customer_user_id` ile tekrarlanan bir silme işlemi, hiçbir
> şeyi değiştirmeden yeniden başarılı olur. Yalnızca `email` ile yapılan bir silme işlemi
> tekrarlandığında `404` döner: silme işlemi kayıtlı adresi temizler, dolayısıyla e-postanın
> eşleşebileceği bir şey kalmaz.

## OpenAPI

```yaml
/api-specs/adapty-mail-api.yaml post /api/v1/profile/delete/
openapi: 3.1.0
info:
  title: Adapty Mail API
  version: 1.0.0
  description: |
    Adapty Mail API, kullanıcı profillerini ve işlem olaylarını Adapty SDK üzerinden yönlendirmeden
    doğrudan sunucunuzdan Adapty Mail'e göndermenizi sağlar.

    Kullanım alanları:

    - Adapty Mail'de henüz bir tabanınız yokken aboneler eklemek.
    - Diğer uygulamalarınızdaki abone tabanını yeniden kullanmak.
    - Adapty Mail'i sunucudan sunucuya beslemek; arka ucunuzu gerçeğin kaynağı olarak kullanmak.

    E-posta adresi olan bir profil, **hiç satın alma yapmamış** flow için yeterlidir. Diğer tüm
    flow'lar (yenileme iptal edildi, ödeme sorunu, süresi doldu, iade edildi) satın alma geçmişiyle
    yönlendirilir; bu nedenle bu profillerin doğru flow'a yerleştirilebilmesi için işlem olaylarına
    da ihtiyacı vardır.

    Adım adım açıklama için bkz. [Adapty Mail API aracılığıyla e-posta ve işlem gönderme](/docs/mail-send-data-via-api).
servers:
  - url: https://api-mail.adapty.io
    description: Üretim sunucusu
paths:
  /api/v1/profile/delete/:
    post:
      summary: Profili sil
      description: |
        Bir profilin kişisel verilerini siler ve zamanlanmış e-postalarını iptal eder. Silinme
        hakkı taleplerini yerine getirmek için kullanın.

        Profili `external_profile_id`, `customer_user_id` ve `email` alanlarının herhangi bir
        kombinasyonuyla tanımlayın — Adapty Mail, profili kaydetme işlemindeki gibi çözer.

        Silme işlemi kalıcıdır. Aynı tanımlayıcıları taşıyan sonraki bir
        [Profili kaydet](#operation/saveProfile) isteği profili yeniden oluşturmaz.

        `external_profile_id` veya `customer_user_id` ile tekrarlanan bir silme işlemi, hiçbir
        şeyi değiştirmeden yeniden başarılı olur. Yalnızca `email` ile yapılan bir silme işlemi
        tekrarlandığında `404` döner: silme işlemi kayıtlı adresi temizler, dolayısıyla e-postanın
        eşleşebileceği bir şey kalmaz.
      operationId: deleteProfile
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProfileDeleteDTO"
            examples:
              byExternalProfileId:
                summary: Profili kaydederken gönderdiğiniz tanımlayıcıyla sil
                value:
                  external_profile_id: user_12345
              byEmail:
                summary: E-posta adresiyle sil
                value:
                  email: jane@example.com
      responses:
        "204":
          description: Profil silindi. Yanıt gövdesi yoktur.
        "400":
          description: Hiçbir tanımlayıcı sağlanmadı.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
              examples:
                default:
                  value:
                    errors:
                      - message: At least one of external_profile_id, customer_user_id or email must be provided
                        error_code: missing_identifier
                        status_code: 400
                        field_name: null
        "403":
          description: Gizli API anahtarı eksik veya geçersiz.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
              examples:
                default:
                  value:
                    errors:
                      - message: Secret key doesn't exist
                        error_code: secret_key_does_not_exist_error
                        status_code: 403
                        field_name: null
        "404":
          description: Gönderdiğiniz tanımlayıcılarla eşleşen profil bulunamadı.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
              examples:
                default:
                  value:
                    errors:
                      - message: Profile not found
                        error_code: profile_not_found_error
                        status_code: 404
                        field_name: null
components:
  schemas:
    ProfileDeleteDTO:
      type: object
      description: |
        Silinecek profil için tanımlayıcılar. `external_profile_id`,
        `customer_user_id` veya `email` alanlarından en az birini gönderin.
      anyOf:
        - required:
            - external_profile_id
        - required:
            - customer_user_id
        - required:
            - email
      properties:
        external_profile_id:
          type: string
          description: Profili kaydederken gönderdiğiniz tanımlayıcı.
        customer_user_id:
          type: string
          description: Kullanıcının kendi sisteminizdeki tanımlayıcısı.
        email:
          type: string
          format: email
          description: Profildeki e-posta adresi.
    Errors:
      type: object
      description: Standart hata yanıtı. Her başarısız istek bu yapıyla birlikte 4XX durumu döndürür.
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
                description: Hatanın insan tarafından okunabilir açıklaması.
              error_code:
                type: string
                description: Makine tarafından okunabilir hata tanımlayıcısı.
              status_code:
                type: integer
                description: Bu hataya ait HTTP durum kodu.
              field_name:
                type: string
                description: Hataya neden olan istek alanı veya hata belirli bir alana özgü değilse `null`.
  securitySchemes:
    apikeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: |
        Her isteği Adapty Mail gizli API anahtarınızla kimlik doğrulayın; anahtar **Authorization**
        başlığında `Bearer {your_secret_api_key}` değeriyle gönderilir, örneğin `Bearer secret_live_...`.

        Bu anahtarı Adapty Mail'de **Settings** altında bulabilirsiniz. Anahtar projeye özgüdür — ait
        olduğu projeyi tanımlar; bu nedenle profil ve işlem uç noktaları bir proje kimliği almaz.
```
