/api/v1/profile/transaction-event/save/ Сохранить событие транзакции
Записывает событие транзакции стора для профиля. Adapty Mail использует события транзакций для
помещения профилей в флоу на основе покупок — event_type соответствует флоу, таким как
renewal cancelled, billing issue, expired и refunded — а также для атрибуции выручки.
Отправляйте эти события по мере обработки покупок, продлений и отмен. Без них работает только флоу never purchased.
Request body
Тип события транзакции. Флоу на основе покупок запускаются этими значениями.
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"
Уникальный идентификатор этого события, принадлежащий вашей системе. Используйте его для обеспечения идемпотентности событий.
Время записи события в формате ISO 8601.
Тот же стабильный external_profile_id, который вы передаёте при сохранении профиля. Связывает транзакцию с нужным профилем.
Стор, из которого пришла транзакция, например app_store, play_store или stripe.
Идентификатор приобретённого продукта в сторе.
Идентификатор данной транзакции в сторе.
Идентификатор первой транзакции в цепочке подписки. Для первой покупки совпадает с store_transaction_id.
Время совершения данной транзакции в формате ISO 8601.
Время первой покупки подписки в формате ISO 8601.
Сумма транзакции в USD в виде десятичной строки (например, "9.99").
Время истечения или истёкшего срока действия подписки в формате ISO 8601. Не указывайте для разовых покупок.
Детали promotional offer или introductory offer, применённого к транзакции.
One of: "introductory", "promotional", "offer_code", "win_back"
One of: "free_trial", "pay_as_you_go", "pay_up_front"
Идентификатор офера в сторе, если применимо.
Responses
Событие транзакции успешно сохранено. Тело ответа — пустой объект.
Schema
Example
{} Ошибка валидации — обязательное поле отсутствует или содержит недопустимое значение. field_name указывает, какое поле вызвало ошибку.
Schema
Стандартный ответ об ошибке. Каждый сбой возвращает статус 4XX с этой структурой.
Описание ошибки в читаемом виде.
Машиночитаемый идентификатор ошибки.
HTTP-код статуса для данной ошибки.
Поле запроса, вызвавшее ошибку, или null, если ошибка не связана с конкретным полем.
Example
{
"errors": [
{
"message": "Field required",
"error_code": "base_error",
"status_code": 400,
"field_name": "event_type"
}
]
} Секретный API-ключ отсутствует или недействителен.
Schema
Стандартный ответ об ошибке. Каждый сбой возвращает статус 4XX с этой структурой.
Описание ошибки в читаемом виде.
Машиночитаемый идентификатор ошибки.
HTTP-код статуса для данной ошибки.
Поле запроса, вызвавшее ошибку, или null, если ошибка не связана с конкретным полем.
Example
{
"errors": [
{
"message": "Secret key doesn't exist",
"error_code": "secret_key_does_not_exist_error",
"status_code": 403,
"field_name": null
}
]
}