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

Lưu sự kiện giao dịch

Ghi lại một sự kiện giao dịch từ cửa hàng cho một hồ sơ người dùng. Adapty Mail sử dụng các sự kiện giao dịch để đặt hồ sơ vào các flow dựa trên giao dịch mua — event_type ánh xạ đến các flow như renewal cancelled, billing issue, expired và refunded — cũng như cho attribution doanh thu.

Gửi các sự kiện này khi bạn xử lý các giao dịch mua, gia hạn và hủy bỏ. Chỉ có flow never purchased hoạt động mà không cần chúng.

Request body

event_typestringrequired

Loại sự kiện giao dịch. Các flow dựa trên giao dịch mua được kích hoạt bởi các giá trị này.

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

Mã định danh duy nhất cho sự kiện này, do hệ thống của bạn quản lý. Sử dụng để đảm bảo tính idempotent của các sự kiện.

event_datetimestringrequired

Thời điểm sự kiện được ghi lại, theo định dạng ISO 8601.

external_profile_idstringrequired

Cùng một external_profile_id ổn định bạn gửi khi lưu hồ sơ người dùng. Liên kết giao dịch với đúng hồ sơ.

storestringrequired

Cửa hàng mà giao dịch đến từ, ví dụ: app_store, play_store hoặc stripe.

store_product_idstringrequired

Mã định danh của sản phẩm đã mua trong cửa hàng.

store_transaction_idstringrequired

Mã định danh của giao dịch này trong cửa hàng.

store_original_transaction_idstringrequired

Mã định danh của giao dịch đầu tiên trong chuỗi gói đăng ký. Đối với giao dịch mua đầu tiên, giá trị này bằng store_transaction_id.

purchased_atstringrequired

Thời điểm giao dịch này xảy ra, theo định dạng ISO 8601.

originally_purchased_atstringrequired

Thời điểm gói đăng ký được mua lần đầu tiên, theo định dạng ISO 8601.

price_usdstring

Số tiền giao dịch bằng USD, dưới dạng chuỗi thập phân (ví dụ: "9.99").

expires_atstring

Thời điểm gói đăng ký hết hạn hoặc đã hết hạn, theo định dạng ISO 8601. Bỏ qua đối với các giao dịch mua không phải gói đăng ký.

offerobject

Chi tiết của một ưu đãi hoặc ưu đãi giới thiệu được áp dụng cho giao dịch.

categorystringrequired

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

offer_typestringrequired

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

offer_idstring

Mã định danh của ưu đãi trong cửa hàng, nếu có.

Responses

Sự kiện giao dịch đã được lưu thành công. Nội dung phản hồi là một đối tượng rỗng.

Schema
object
Example
{}

Xác thực thất bại — một trường bắt buộc bị thiếu hoặc không hợp lệ. field_name cho biết trường nào.

Schema

Phản hồi lỗi chuẩn. Mọi lỗi đều trả về trạng thái 4XX với cấu trúc này.

errorsarray of object
messagestring

Mô tả lỗi dễ đọc cho người dùng.

error_codestring

Mã định danh lỗi dễ đọc cho máy.

status_codeinteger

Mã trạng thái HTTP cho lỗi này.

field_namestring

Trường trong yêu cầu gây ra lỗi, hoặc null nếu lỗi không liên quan đến trường cụ thể nào.

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

Thiếu hoặc sai secret API key.

Schema

Phản hồi lỗi chuẩn. Mọi lỗi đều trả về trạng thái 4XX với cấu trúc này.

errorsarray of object
messagestring

Mô tả lỗi dễ đọc cho người dùng.

error_codestring

Mã định danh lỗi dễ đọc cho máy.

status_codeinteger

Mã trạng thái HTTP cho lỗi này.

field_namestring

Trường trong yêu cầu gây ra lỗi, hoặc null nếu lỗi không liên quan đến trường cụ thể nào.

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