POST /api/v2/server-side-api/purchase/set/transaction/

Đặt giao dịch

Tạo một giao dịch mới cho người dùng cuối của ứng dụng trong Adapty và cung cấp mức độ truy cập. Giao dịch được tạo bởi phương thức này sẽ xuất hiện trong phân tích và Event Feed của bạn, đồng thời sẽ được gửi đến tất cả các tích hợp.

Cập nhật gói đăng ký hiện có: Để cập nhật billing_issue_detected_at hoặc renew_status_changed_at mà không tạo sự kiện subscription_renewed mới, hãy sử dụng lại store_transaction_id hiện có (trong cùng store_original_transaction_id). Việc gửi bất kỳ store_transaction_id mới nào sẽ được coi là một giao dịch mới và kích hoạt sự kiện subscription_renewed.

Header parameters

adapty-customer-user-idstring

ID duy nhất của khách hàng trong hệ thống của bạn. Yêu cầu phải có adapty-customer-user-id hoặc adapty-profile-id.

adapty-profile-idstring

ID duy nhất của hồ sơ người dùng trong hệ thống của bạn. Lựa chọn tốt nhất nếu bạn đang làm việc với các hồ sơ người dùng ẩn danh. Yêu cầu phải có adapty-customer-user-id hoặc adapty-profile-id.

Request body

Option 1 — object

Dữ liệu giao dịch cho một sản phẩm mua một lần

purchase_typestringrequired

Loại giao dịch mua

One of: "one_time_purchase"

storestringrequired

Cửa hàng nơi giao dịch mua được thực hiện. Các giá trị phổ biến bao gồm app_store, play_store, stripe, paddle, hoặc bất kỳ định danh cửa hàng tùy chỉnh nào

environmentstring

Môi trường nơi giao dịch mua được thực hiện

One of: "Production", "Sandbox"

store_product_idstringrequired

ID sản phẩm trong cửa hàng

store_transaction_idstringrequired

ID giao dịch trong cửa hàng. Tối đa 50 ký tự. ID giao dịch của PayPal và một số cửa hàng tùy chỉnh có thể vượt quá giới hạn này — hãy cắt bớt hoặc băm giá trị trước khi gửi, nếu không yêu cầu sẽ thất bại.

store_original_transaction_idstringrequired

ID giao dịch gốc trong cửa hàng

is_family_sharedboolean

Liệu giao dịch mua có được chia sẻ gia đình hay không

priceobjectrequired
countrystringrequired

Mã quốc gia theo định dạng ISO 3166-1 alpha-2, ví dụ US

currencystringrequired

Mã tiền tệ theo định dạng ISO 4217, ví dụ USD

valuenumberrequired

Giá trị giá

purchased_atstringrequired

Thời điểm giao dịch mua được thực hiện

variation_idstring

ID biến thể dùng cho A/B test

offerobject
categorystringrequired

Danh mục ưu đãi

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

typestringrequired

Loại ưu đãi

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

idstring

ID ưu đãi

refunded_atstring

Thời điểm giao dịch mua được hoàn tiền

cancellation_reasonstring

Lý do hủy

One of: "billing_error", "cancelled_by_developer", "new_subscription_replace", "price_increase", "product_was_not_available", "refund", "unknown", "upgraded", "voluntarily_cancelled", "adapty_revoked"

Option 2 — object

Dữ liệu giao dịch cho một giao dịch mua gói đăng ký

purchase_typestringrequired

Loại giao dịch mua

One of: "subscription"

storestringrequired

Cửa hàng nơi giao dịch mua được thực hiện. Các giá trị phổ biến bao gồm app_store, play_store, stripe, paddle, hoặc bất kỳ định danh cửa hàng tùy chỉnh nào

environmentstring

Môi trường nơi giao dịch mua được thực hiện

One of: "Production", "Sandbox"

store_product_idstringrequired

ID sản phẩm trong cửa hàng

store_transaction_idstringrequired

ID giao dịch trong cửa hàng. Tối đa 50 ký tự. ID giao dịch của PayPal và một số cửa hàng tùy chỉnh có thể vượt quá giới hạn này — hãy cắt bớt hoặc băm giá trị trước khi gửi, nếu không yêu cầu sẽ thất bại.

store_original_transaction_idstringrequired

ID giao dịch gốc trong cửa hàng

is_family_sharedboolean

Giao dịch mua có được chia sẻ gia đình hay không

priceobjectrequired
countrystringrequired

Mã quốc gia theo định dạng ISO 3166-1 alpha-2, ví dụ US

currencystringrequired

Mã tiền tệ theo định dạng ISO 4217, ví dụ USD

valuenumberrequired

Giá trị giá

purchased_atstringrequired

Thời điểm giao dịch mua được thực hiện

variation_idstring

ID biến thể dùng cho A/B test

offerobject
categorystringrequired

Danh mục ưu đãi

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

typestringrequired

Loại ưu đãi

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

idstring

ID ưu đãi

refunded_atstring

Thời điểm giao dịch mua được hoàn tiền

cancellation_reasonstring

Lý do hủy

One of: "billing_error", "cancelled_by_developer", "new_subscription_replace", "price_increase", "product_was_not_available", "refund", "unknown", "upgraded", "voluntarily_cancelled", "adapty_revoked"

originally_purchased_atstringrequired

Thời điểm gói đăng ký được mua lần đầu tiên

expires_atstringrequired

Thời điểm gói đăng ký hết hạn

renew_statusbooleanrequired

Gói đăng ký có tự động gia hạn hay không

renew_status_changed_atstring

Thời điểm trạng thái gia hạn thay đổi

billing_issue_detected_atstring

Thời điểm phát hiện sự cố thanh toán

grace_period_expires_atstring

Thời điểm thời gian ân hạn kết thúc

Responses

Giao dịch đã được ghi lại thành công

Schema
dataobjectrequired
app_idstringrequired

ID nội bộ của ứng dụng của bạn

profile_idstringrequired

ID hồ sơ người dùng Adapty

customer_user_idstringrequired

ID của người dùng trong hệ thống của bạn

total_revenue_usdnumberrequired

Giá trị số thực đại diện cho tổng doanh thu tính bằng USD thu được trong hồ sơ người dùng

segment_hashstringrequired

Tham số nội bộ

timestampintegerrequired

Thời gian phản hồi tính bằng mili giây, dùng để giải quyết race condition

custom_attributesarray of objectrequired

Tối đa 30 thuộc tính tùy chỉnh được phép thiết lập cho hồ sơ người dùng

keystringrequired

Khóa phải là một chuỗi không quá 30 ký tự. Chỉ cho phép các chữ cái, số, dấu gạch ngang, dấu chấm và dấu gạch dưới

valuestring | numberrequired

Giá trị thuộc tính không được vượt quá 50 ký tự. Chỉ cho phép chuỗi và số thực (float) làm giá trị

access_levelsarray of objectrequired

Mảng các đối tượng mức độ truy cập. Mảng rỗng nếu khách hàng không có mức độ truy cập nào

access_level_idstring

Mã định danh mức độ truy cập

storestring

Cửa hàng nơi mức độ truy cập được mua

store_product_idstring

ID sản phẩm trong cửa hàng. Đối với gói cam kết 12 tháng trên App Store, ID kết thúc bằng :monthly.

store_base_plan_idstring

ID gói cơ bản trong cửa hàng

store_transaction_idstring

ID giao dịch trong cửa hàng

store_original_transaction_idstring

ID giao dịch gốc trong cửa hàng

offerallOf

Chi tiết ưu đãi, nếu có ưu đãi hoặc ưu đãi giới thiệu được áp dụng

categorystring

Danh mục ưu đãi

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

typestring

Loại ưu đãi

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

idstring

ID ưu đãi

starts_atstring

Thời điểm mức độ truy cập bắt đầu

purchased_atstring

Thời điểm mức độ truy cập được mua

originally_purchased_atstring

Thời điểm mức độ truy cập được mua lần đầu

expires_atstring

Thời điểm mức độ truy cập hết hạn

renewal_cancelled_atstring

Thời điểm hủy gia hạn

billing_issue_detected_atstring

Thời điểm phát hiện sự cố thanh toán

is_in_grace_periodboolean

Mức độ truy cập có đang trong thời gian ân hạn hay không

cancellation_reasonstring

Lý do hủy

subscriptionsarray of objectrequired

Mảng các đối tượng gói đăng ký. Mảng rỗng nếu khách hàng không có gói đăng ký nào

storestring

Cửa hàng nơi gói đăng ký được mua

store_product_idstring

ID sản phẩm trong cửa hàng. Đối với gói cam kết 12 tháng của App Store, ID kết thúc bằng :monthly.

store_base_plan_idstring

ID gói cơ bản trong cửa hàng

store_transaction_idstring

ID giao dịch trong cửa hàng

store_original_transaction_idstring

ID giao dịch gốc trong cửa hàng

offerallOf

Chi tiết ưu đãi, nếu có ưu đãi hoặc ưu đãi giới thiệu được áp dụng

categorystring

Danh mục ưu đãi

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

typestring

Loại ưu đãi

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

idstring

ID ưu đãi

environmentstring

Môi trường (Sandbox, Production)

purchased_atstring

Thời điểm gói đăng ký được mua

originally_purchased_atstring

Thời điểm gói đăng ký được mua lần đầu tiên

expires_atstring

Thời điểm gói đăng ký hết hạn

renewal_cancelled_atstring

Thời điểm hủy gia hạn. Đối với gói cam kết 12 tháng, giá trị này vẫn là null sau khi người đăng ký hủy, vì các khoản thanh toán hàng tháng vẫn tiếp tục. Hãy sử dụng commitment.will_renew thay thế.

billing_issue_detected_atstring

Thời điểm phát hiện sự cố thanh toán

is_in_grace_periodboolean

Gói đăng ký có đang trong thời gian ân hạn hay không

cancellation_reasonstring

Lý do hủy

commitmentallOf

Cam kết 12 tháng của gói cam kết App Store. Không được thiết lập cho các gói đăng ký khác.

will_renewboolean

Liệu một cam kết 12 tháng mới có bắt đầu sau khi cam kết này kết thúc hay không. false sau khi người đăng ký hủy, trong khi các khoản thanh toán hàng tháng vẫn tiếp tục cho đến expires_at.

billing_period_numberinteger

Số thứ tự của khoản thanh toán hàng tháng hiện tại trong cam kết, bắt đầu từ 1

total_billing_periodsinteger

Số lần thanh toán hàng tháng trong cam kết

expires_atstring

Thời điểm cam kết kết thúc. expires_at của chính gói đăng ký là thời điểm kết thúc tháng đã thanh toán hiện tại.

non_subscriptionsarray of objectrequired

Mảng các đối tượng sản phẩm mua một lần. Mảng rỗng nếu khách hàng chưa thực hiện giao dịch mua nào

purchase_idstring

Mã định danh mua hàng duy nhất

storestring

Cửa hàng nơi thực hiện giao dịch mua

store_product_idstring

ID sản phẩm trong cửa hàng

store_base_plan_idstring

ID gói cơ bản trong cửa hàng

store_transaction_idstring

ID giao dịch trong cửa hàng

store_original_transaction_idstring

ID giao dịch gốc trong cửa hàng

purchased_atstring

Thời điểm thực hiện giao dịch mua

environmentstring

Môi trường (Sandbox, Production)

is_refundboolean

Liệu đây có phải là giao dịch hoàn tiền hay không

is_consumableboolean

Liệu đây có phải là giao dịch mua consumable hay không

Yêu cầu không hợp lệ

Schema
errorsarray of objectrequired
sourcestring

Nguồn gốc của lỗi

errorsarray of string

Mảng các thông báo lỗi

error_codestringrequired

Tên lỗi rút gọn

status_codeintegerrequired

Mã trạng thái HTTP

Không được phép

Schema
errorsarray of objectrequired
sourcestring

Nguồn gốc của lỗi

errorsarray of string

Mảng các thông báo lỗi

error_codestringrequired

Tên lỗi rút gọn

status_codeintegerrequired

Mã trạng thái HTTP

Không tìm thấy hồ sơ người dùng

Schema
errorsarray of objectrequired
sourcestring

Nguồn gốc của lỗi

errorsarray of string

Mảng các thông báo lỗi

error_codestringrequired

Tên lỗi rút gọn

status_codeintegerrequired

Mã trạng thái HTTP

Lỗi máy chủ nội bộ