/api/v2/server-side-api/purchase/paddle/token/validate/ Validar compra de Paddle
Valida una compra utilizando el token de Paddle proporcionado, usando las credenciales de Paddle configuradas en los ajustes de tu aplicación dentro del Adapty Dashboard. Si la compra es válida, el historial de transacciones se importa desde Paddle al perfil en Adapty con el customer_user_id especificado. Si no existía ningún perfil con ese customer_user_id anteriormente, se creará uno nuevo.
Request body
El ID de tu usuario en tu sistema
Token de un objeto Paddle que representa una compra única. Puede ser un ID de transacción (txn_...) o un ID de suscripción (sub_...)
Responses
Compra validada correctamente
Schema
El ID interno de tu aplicación
ID de perfil de Adapty
El ID de tu usuario en tu sistema
Un valor de tipo float que representa los ingresos totales en USD obtenidos en el perfil
Parámetro interno
Tiempo de respuesta en milisegundos, necesario para resolver una condición de carrera
Se permite establecer un máximo de 30 atributos personalizados en el perfil
La clave debe ser una cadena de no más de 30 caracteres. Solo se permiten letras, números, guiones, puntos y guiones bajos
El valor del atributo no debe superar los 50 caracteres. Solo se permiten cadenas y números en coma flotante como valores
Array de objetos de nivel de acceso. Array vacío si el cliente no tiene niveles de acceso
Identificador del nivel de acceso
Store donde se adquirió el nivel de acceso
ID del producto en el store. Para un plan de compromiso de 12 meses de App Store, el ID termina con :monthly.
ID del plan base en el store
ID de transacción en el store
ID de transacción original en el store
Detalles de la oferta, si se aplicó una oferta promocional o introductoria
Categoría de la oferta
One of: "introductory", "promotional", "offer_code", "win_back"
Tipo de oferta
One of: "free_trial", "pay_as_you_go", "pay_up_front"
ID de la oferta
Cuándo comienza el nivel de acceso
Cuándo se adquirió el nivel de acceso
Cuándo se adquirió originalmente el nivel de acceso
Cuándo expira el nivel de acceso
Cuándo se canceló la renovación
Cuándo se detectó el problema de facturación
Si el nivel de acceso está en período de gracia
Motivo de la cancelación
Array de objetos de suscripción. Array vacío si el cliente no tiene suscripciones
Store donde se realizó la compra de la suscripción
ID del producto en el store. Para un plan de compromiso de 12 meses de App Store, el ID termina con :monthly.
ID del plan base en el store
ID de transacción en el store
ID de transacción original en el store
Detalles de la oferta, si se aplicó una oferta promocional o introductoria
Categoría de la oferta
One of: "introductory", "promotional", "offer_code", "win_back"
Tipo de oferta
One of: "free_trial", "pay_as_you_go", "pay_up_front"
ID de la oferta
Entorno (Sandbox, Production)
Fecha en que se compró la suscripción
Fecha en que se compró la suscripción originalmente
Fecha de vencimiento de la suscripción
Fecha en que se canceló la renovación. Para un plan de compromiso de 12 meses, permanece como null después de que el suscriptor cancela, porque los pagos mensuales continúan. Utilice commitment.will_renew en su lugar.
Fecha en que se detectó un problema de facturación
Indica si la suscripción se encuentra en período de gracia
Motivo de la cancelación
El compromiso de 12 meses de un plan de compromiso de App Store. No se establece para otras suscripciones.
Indica si un nuevo compromiso de 12 meses comienza después de que este termine. false tras la cancelación por parte del suscriptor, mientras los pagos mensuales continúan hasta expires_at.
Número del pago mensual actual en el compromiso, comenzando desde 1
Número de pagos mensuales en el compromiso
Cuándo finaliza el compromiso. El propio expires_at de la suscripción es el final del mes pagado actual.
Array de objetos de compra única. Array vacío si el cliente no tiene compras
Identificador único de la compra
Store donde se realizó la compra
ID del producto en el store
ID del plan base en el store
ID de la transacción en el store
ID de la transacción original en el store
Fecha y hora en que se realizó la compra
Entorno (Sandbox, Production)
Indica si se trata de un reembolso
Indica si se trata de una compra consumible
Example
{
"data": {
"app_id": "14c3d623-2f3a-455a-aa86-ef83dff6913b",
"profile_id": "3286abd3-48b0-4e9c-a5f6-ac0a006804a6",
"customer_user_id": "Jane.doe@example.com",
"total_revenue_usd": 0,
"segment_hash": "8f45947bad31ab0c",
"timestamp": 1736436751469,
"custom_attributes": [
{
"key": "favourite_sport",
"value": "yoga"
}
],
"access_levels": [],
"subscriptions": [
{
"purchase_id": "5a7ab471-2299-45f7-ad69-1d395c1256e3",
"store": "app_store",
"store_product_id": "1year.premium",
"store_base_plan_id": null,
"store_transaction_id": "30002109551456",
"store_original_transaction_id": "30002109551456",
"purchased_at": "2022-10-12T09:42:50+00:00",
"environment": "Production",
"is_refund": false,
"is_consumable": false
}
],
"non_subscriptions": []
}
} Solicitud incorrecta
Schema
Fuente del error
Array de mensajes de error
Nombre corto del error
Código de estado HTTP
Example
{
"errors": [
"No products found"
],
"error_code": "no_products_found",
"status_code": 400
} No autorizado
Schema
Fuente del error
Array de mensajes de error
Nombre corto del error
Código de estado HTTP
Example
{
"errors": [
"Invalid API key"
],
"error_code": "unauthorized",
"status_code": 401
} Error interno del servidor
Schema
Fuente del error
Array de mensajes de error
Nombre corto del error
Código de estado HTTP