POST /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

customer_user_idstringrequired

El ID de tu usuario en tu sistema

paddle_tokenstringrequired

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
dataobjectrequired
app_idstringrequired

El ID interno de tu aplicación

profile_idstringrequired

ID de perfil de Adapty

customer_user_idstringrequired

El ID de tu usuario en tu sistema

total_revenue_usdnumberrequired

Un valor de tipo float que representa los ingresos totales en USD obtenidos en el perfil

segment_hashstringrequired

Parámetro interno

timestampintegerrequired

Tiempo de respuesta en milisegundos, necesario para resolver una condición de carrera

custom_attributesarray of objectrequired

Se permite establecer un máximo de 30 atributos personalizados en el perfil

keystringrequired

La clave debe ser una cadena de no más de 30 caracteres. Solo se permiten letras, números, guiones, puntos y guiones bajos

valuestring | numberrequired

El valor del atributo no debe superar los 50 caracteres. Solo se permiten cadenas y números en coma flotante como valores

access_levelsarray of objectrequired

Array de objetos de nivel de acceso. Array vacío si el cliente no tiene niveles de acceso

access_level_idstring

Identificador del nivel de acceso

storestring

Store donde se adquirió el nivel de acceso

store_product_idstring

ID del producto en el store

store_base_plan_idstring

ID del plan base en el store

store_transaction_idstring

ID de la transacción en el store

store_original_transaction_idstring

ID de la transacción original en el store

offerallOf

Detalles de la oferta, si se aplicó una oferta promocional o introductoria

categorystring

Categoría de la oferta

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

typestring

Tipo de oferta

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

idstring

ID de la oferta

starts_atstring

Cuándo comienza el nivel de acceso

purchased_atstring

Cuándo se adquirió el nivel de acceso

originally_purchased_atstring

Cuándo se adquirió el nivel de acceso originalmente

expires_atstring

Cuándo expira el nivel de acceso

renewal_cancelled_atstring

Cuándo se canceló la renovación

billing_issue_detected_atstring

Cuándo se detectó el problema de facturación

is_in_grace_periodboolean

Si el nivel de acceso está en período de gracia

cancellation_reasonstring

Motivo de la cancelación

subscriptionsarray of objectrequired

Array de objetos de suscripción. Array vacío si el cliente no tiene suscripciones

storestring

Store donde se realizó la compra de la suscripción

store_product_idstring

ID del producto en el store

store_base_plan_idstring

ID del plan base en el store

store_transaction_idstring

ID de la transacción en el store

store_original_transaction_idstring

ID de la transacción original en el store

offerallOf

Detalles de la oferta, si se aplicó una oferta promocional o introductoria

categorystring

Categoría de la oferta

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

typestring

Tipo de oferta

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

idstring

ID de la oferta

environmentstring

Entorno (Sandbox, Production)

purchased_atstring

Fecha en que se compró la suscripción

originally_purchased_atstring

Fecha en que se compró originalmente la suscripción

expires_atstring

Fecha en que expira la suscripción

renewal_cancelled_atstring

Fecha en que se canceló la renovación

billing_issue_detected_atstring

Fecha en que se detectó un problema de facturación

is_in_grace_periodboolean

Si la suscripción está en período de gracia

cancellation_reasonstring

Motivo de la cancelación

non_subscriptionsarray of objectrequired

Array de objetos de compra única. Array vacío si el cliente no tiene compras

purchase_idstring

Identificador único de la compra

storestring

Store donde se realizó la compra

store_product_idstring

ID del producto en el store

store_base_plan_idstring

ID del plan base en el store

store_transaction_idstring

ID de la transacción en el store

store_original_transaction_idstring

ID de la transacción original en el store

purchased_atstring

Fecha y hora en que se realizó la compra

environmentstring

Entorno (Sandbox, Production)

is_refundboolean

Indica si se trata de un reembolso

is_consumableboolean

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
errorsarray of objectrequired
sourcestring

Fuente del error

errorsarray of string

Array de mensajes de error

error_codestringrequired

Nombre corto del error

status_codeintegerrequired

Código de estado HTTP

Example
{
  "errors": [
    "No products found"
  ],
  "error_code": "no_products_found",
  "status_code": 400
}

No autorizado

Schema
errorsarray of objectrequired
sourcestring

Fuente del error

errorsarray of string

Array de mensajes de error

error_codestringrequired

Nombre corto del error

status_codeintegerrequired

Código de estado HTTP

Example
{
  "errors": [
    "Invalid API key"
  ],
  "error_code": "unauthorized",
  "status_code": 401
}

Error interno del servidor

Schema
errorsarray of objectrequired
sourcestring

Fuente del error

errorsarray of string

Array de mensajes de error

error_codestringrequired

Nombre corto del error

status_codeintegerrequired

Código de estado HTTP