POST /api/v1/profile/transaction-event/save/

İşlem olayını kaydet

Bir profil için store işlem olayını kaydeder. Adapty Mail, profilleri satın alma tabanlı flow'lara yerleştirmek için işlem olaylarını kullanır — event_type, yenileme iptal edildi, faturalama sorunu, süresi doldu ve iade edildi gibi flow'larla eşleşir — ve gelir attribution için kullanılır.

Bu olayları satın alma, yenileme ve iptal işlemlerini gerçekleştirirken gönderin. Yalnızca hiç satın almamış flow'u bunlar olmadan çalışır.

Request body

event_typestringrequired

İşlem olayının türü. Satın alma tabanlı akışlar bu değerler tarafından tetiklenir.

One of: "subscription_started", "subscription_renewed", "subscription_renewal_cancelled", "subscription_renewal_reactivated", "billing_issue_detected", "entered_grace_period", "subscription_refunded", "subscription_expired", "non_subscription_purchase", "non_subscription_purchase_refunded"

event_idstringrequired

Bu olaya ait benzersiz tanımlayıcı; kendi sisteminize aittir. Olayların idempotent kalmasını sağlamak için kullanın.

event_datetimestringrequired

Olayın kaydedildiği zaman, ISO 8601 formatında.

external_profile_idstringrequired

Profili kaydederken gönderdiğiniz aynı kararlı external_profile_id. İşlemi doğru profile bağlar. Profil henüz mevcut olmadan önce bir işlem gönderebilirsiniz. Adapty Mail, olayı bağlanmamış olarak saklar ve aynı tanımlayıcıyı taşıyan bir sonraki kayıtta profile bağlar.

customer_user_idstring

Kullanıcının kendi sisteminizdeki tanımlayıcısı. Adapty Mail, external_profile_id eşleşmediğinde profili bulmak için bunu kullanır. Olayda saklanmaz.

emailstring

Alıcının e-posta adresi. Adapty Mail, hiçbir tanımlayıcı eşleşmediğinde profili bulmak için bunu kullanır. Olayda saklanmaz.

storestringrequired

İşlemin geldiği mağaza; örneğin app_store, play_store veya stripe.

store_product_idstringrequired

Mağazada satın alınan ürünün tanımlayıcısı.

store_transaction_idstringrequired

Bu işlemin mağazadaki tanımlayıcısı.

store_original_transaction_idstringrequired

Abonelik zincirindeki ilk işlemin tanımlayıcısı. İlk satın alma için bu değer store_transaction_id ile aynıdır.

purchased_atstringrequired

Bu işlemin gerçekleştiği zaman, ISO 8601 formatında.

originally_purchased_atstringrequired

Aboneliğin ilk satın alındığı zaman, ISO 8601 formatında.

price_usdstring

İşlem tutarı USD cinsinden, ondalık dize olarak (örneğin "9.99").

expires_atstring

Aboneliğin sona erdiği veya sona ereceği zaman, ISO 8601 formatında. Abonelik olmayan satın almalar için belirtmeyin.

offerobject

İşleme uygulanan promosyon teklifi veya başlangıç teklifine ait ayrıntılar.

categorystringrequired

One of: "introductory", "promotional", "offer_code", "win_back"

offer_typestringrequired

One of: "free_trial", "pay_as_you_go", "pay_up_front"

offer_idstring

Varsa, mağazadaki teklifin tanımlayıcısı.

Responses

İşlem olayı başarıyla kaydedildi. Yanıt gövdesi boş bir nesnedir.

Schema
object
Example
{}

Doğrulama başarısız — zorunlu bir alan eksik veya geçersiz. field_name hangi alanın sorunlu olduğunu gösterir.

Schema

Standart hata yanıtı. Her başarısız istek bu yapıyla birlikte 4XX durumu döndürür.

errorsarray of object
messagestring

Hatanın insan tarafından okunabilir açıklaması.

error_codestring

Makine tarafından okunabilir hata tanımlayıcısı.

status_codeinteger

Bu hataya ait HTTP durum kodu.

field_namestring

Hataya neden olan istek alanı veya hata belirli bir alana özgü değilse null.

Example
{
  "errors": [
    {
      "message": "Field required",
      "error_code": "base_error",
      "status_code": 400,
      "field_name": "event_type"
    }
  ]
}

Eksik veya geçersiz gizli API anahtarı.

Schema

Standart hata yanıtı. Her başarısız istek bu yapıyla birlikte 4XX durumu döndürür.

errorsarray of object
messagestring

Hatanın insan tarafından okunabilir açıklaması.

error_codestring

Makine tarafından okunabilir hata tanımlayıcısı.

status_codeinteger

Bu hataya ait HTTP durum kodu.

field_namestring

Hataya neden olan istek alanı veya hata belirli bir alana özgü değilse null.

Example
{
  "errors": [
    {
      "message": "Secret key doesn't exist",
      "error_code": "secret_key_does_not_exist_error",
      "status_code": 403,
      "field_name": null
    }
  ]
}