/api/v1/profile/transaction-event/save/ Guardar evento de transacción
Registra un evento de transacción del store para un perfil. Adapty Mail utiliza los eventos de transacción para ubicar
perfiles en flows basados en compras — el event_type se corresponde con flows como renewal cancelled,
billing issue, expired y refunded — y para la atribución de ingresos.
Envía estos eventos a medida que gestionas compras, renovaciones y cancelaciones. Solo el flow never purchased funciona sin ellos.
Request body
El tipo de evento de transacción. Los flows basados en compras se activan con estos valores.
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"
Identificador único de este evento, gestionado por tu sistema. Úsalo para mantener los eventos idempotentes.
Cuándo se registró el evento, en formato ISO 8601.
El mismo external_profile_id estable que envías al guardar el perfil. Vincula la transacción al perfil correcto.
El store del que proviene la transacción, por ejemplo, app_store, play_store o stripe.
Identificador del producto comprado en el store.
Identificador de esta transacción en el store.
Identificador de la primera transacción de la cadena de suscripción. Para la primera compra, coincide con store_transaction_id.
Cuándo ocurrió esta transacción, en formato ISO 8601.
Cuándo se realizó la primera compra de la suscripción, en formato ISO 8601.
El importe de la transacción en USD, como cadena decimal (por ejemplo, "9.99").
Cuándo expira o expiró la suscripción, en formato ISO 8601. Omitir para compras que no son suscripciones.
Detalles de una oferta promocional o introductoria aplicada a la transacción.
One of: "introductory", "promotional", "offer_code", "win_back"
One of: "free_trial", "pay_as_you_go", "pay_up_front"
Identificador de la oferta en el store, si existe.
Responses
Evento de transacción guardado correctamente. El cuerpo de la respuesta es un objeto vacío.
Schema
Example
{} Validación fallida — falta un campo obligatorio o es inválido. field_name indica qué campo.
Schema
Respuesta de error estándar. Cada fallo devuelve un estado 4XX con esta estructura.
Descripción legible del error.
Identificador del error legible por máquina.
Código de estado HTTP para este error.
El campo de la solicitud que provocó el error, o null si el error no está asociado a un campo específico.
Example
{
"errors": [
{
"message": "Field required",
"error_code": "base_error",
"status_code": 400,
"field_name": "event_type"
}
]
} Clave API secreta ausente o inválida.
Schema
Respuesta de error estándar. Cada fallo devuelve un estado 4XX con esta estructura.
Descripción legible del error.
Identificador del error legible por máquina.
Código de estado HTTP para este error.
El campo de la solicitud que provocó el error, o null si el error no está asociado a un campo específico.
Example
{
"errors": [
{
"message": "Secret key doesn't exist",
"error_code": "secret_key_does_not_exist_error",
"status_code": 403,
"field_name": null
}
]
}