# Obtener paywall

> Obtiene el paywall del placement indicado.

## OpenAPI

```yaml
/api-specs/web-api.yaml post /api/v2/web-api/paywall/
openapi: 3.1.0
info:
  title: Adapty Web API
  version: 1.0.0
  description: |
    La Adapty Web API te permite integrar la plataforma de gestión de suscripciones de Adapty
    en tus aplicaciones web. Esta API proporciona endpoints para obtener paywalls,
    registrar visitas a paywalls y añadir datos de atribución.
servers:
  - url: https://api.adapty.io
    description: Servidor de producción
security:
  - apikeyAuth: []
paths:
  /api/v2/web-api/paywall/:
    post:
      summary: Obtener paywall
      description: Obtiene el paywall del placement indicado.
      operationId: getPaywall
      security:
        - apikeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GetPaywallRequest"
            examples:
              basic:
                summary: Solicitud básica de paywall
                value:
                  store: app_store
                  locale: en
                  placement_id: PaywallPlacementId
                  customer_user_id: user123
      responses:
        "200":
          description: La respuesta satisfactoria contendrá el objeto Paywall.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaywallResponse"
              examples:
                basic:
                  summary: Basic paywall response
                  value:
                    placement_id: onboarding
                    variation_id: d76feea0-c0cf-4942-bef5-84ed701fc6db
                    paywall_id: 9a93fe6f-9162-4dc0-b4b7-73079ed95c34
                    ab_test_name: 1 week + 1 month | apple picture
                    paywall_name: 1 week + 1 month | apple picture
                    products:
                      - title: 1 week
                        is_consumable: false
                        adapty_product_id: 1c3e03e1-9c43-4f94-aeb5-c7ae2f73d0c2
                        vendor_product_id: 1_week_apple
                        introductory_offer_eligibility: true
                        promotional_offer_eligibility: true
                        base_plan_id: null
                        offer: null
                      - title: 1 month
                        is_consumable: false
                        adapty_product_id: f4088450-45a8-4737-8db0-367e642d7dcb
                        vendor_product_id: 1_month_apple
                        introductory_offer_eligibility: true
                        promotional_offer_eligibility: true
                        base_plan_id: null
                        offer: null
                    remote_config:
                      lang: en
                      data: "{\"default_product_number\":1,\"features\":[\"#fresh\",\"#green\",\"#healthy1\"],\"soft_paywall\":false,\"image_url\":\"https://adapty.io/apple.png\"}"
        "400":
          description: Solicitud incorrecta
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ParseError"
        "401":
          description: No autorizado
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UnauthorizedError"
        "404":
          description: No encontrado
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VariationIdNotFoundError"
components:
  schemas:
    GetPaywallRequest:
      type: object
      required:
        - store
        - placement_id
      properties:
        store:
          type: string
          description: |
            Store donde se realizó la compra del producto. Valores posibles: `app_store`, `play_store`, `stripe` o el `Store ID` de tu store personalizado.
          example: app_store
        locale:
          type: string
          description: Identificador de la configuración regional del paywall. Se espera que este parámetro sea un código de idioma compuesto por una o más subetiquetas separadas por el carácter "-". La primera subetiqueta corresponde al idioma y la segunda a la región.
          example: en
        placement_id:
          type: string
          description: El identificador del placement. Es el valor que especificaste al crear un placement en tu Adapty Dashboard.
          example: PaywallPlacementId
        customer_user_id:
          type: string
          description: Se requiere `customer_user_id` o `profile_id`. ID de usuario que utilizas en tu aplicación para identificar al usuario. Por ejemplo, puede ser tu UUID de usuario, correo electrónico o cualquier otro ID.
          example: user123
        profile_id:
          type: string
          description: Se requiere `customer_user_id` o `profile_id`. Identificador de un usuario en Adapty.
          example: 3286abd3-48b0-4e9c-a5f6-ac0a006804a6
    PaywallResponse:
      type: object
      required:
        - placement_id
        - variation_id
        - paywall_id
        - paywall_name
        - products
      properties:
        placement_id:
          type: string
          description: El ID del placement donde se muestra este paywall. Este valor se establece al crear un placement en tu Adapty Dashboard.
          example: onboarding
        variation_id:
          type: string
          format: uuid
          description: El ID de variante utilizado para rastrear las compras vinculadas a este paywall específico.
          example: d76feea0-c0cf-4942-bef5-84ed701fc6db
        paywall_id:
          type: string
          format: uuid
          description: El identificador único del paywall.
          example: 9a93fe6f-9162-4dc0-b4b7-73079ed95c34
        ab_test_name:
          type: string
          description: El nombre de la prueba A/B padre.
          example: 1 week + 1 month | apple picture
        paywall_name:
          type: string
          description: El nombre del paywall, tal como se define en tu Adapty Dashboard.
          example: 1 week + 1 month | apple picture
        products:
          type: array
          items:
            $ref: "#/components/schemas/Product"
          description: Array de objetos Product que contienen la información de los productos del paywall.
        remote_config:
          $ref: "#/components/schemas/RemoteConfig"
          description: Un objeto RemoteConfig que contiene el Remote Config completo del paywall.
    ParseError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
              errors:
                type: array
                items:
                  type: string
        error_code:
          type: string
        status_code:
          type: integer
    UnauthorizedError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
              errors:
                type: array
                items:
                  type: string
        error_code:
          type: string
        status_code:
          type: integer
    VariationIdNotFoundError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
              errors:
                type: array
                items:
                  type: string
        error_code:
          type: string
        status_code:
          type: integer
    Product:
      type: object
      required:
        - is_consumable
        - vendor_product_id
      properties:
        title:
          type: string
          description: Nombre del producto de la sección de productos en el Adapty Dashboard.
        is_consumable:
          type: boolean
          description: Indica si el producto es consumible.
        adapty_product_id:
          type: string
          format: uuid
          description: ID interno del producto tal como se utiliza en Adapty.
        vendor_product_id:
          type: string
          description: El ID del producto en los stores de aplicaciones.
        introductory_offer_eligibility:
          type: boolean
          description: Indica si el usuario es elegible para una oferta introductoria de iOS.
        promotional_offer_eligibility:
          type: boolean
          description: Indica si el usuario es elegible para una oferta promocional.
        base_plan_id:
          type: string
          nullable: true
          description: |
            ID del plan base para Google Play o ID de precio para Stripe.
            Consulta [Base plan ID](https://support.google.com/googleplay/android-developer/answer/12154973) para Google Play o
            [price ID](https://docs.stripe.com/products-prices/how-products-and-prices-work#use-products-and-prices) para Stripe.
        offer:
          allOf:
            - $ref: "#/components/schemas/Offer"
          nullable: true
          description: Un objeto Offer como JSON.
    RemoteConfig:
      type: object
      required:
        - lang
        - data
      properties:
        lang:
          type: string
          description: |
            Código de configuración regional para la localización del paywall. Utiliza subetiquetas de idioma y región
            separadas por un guion (-). Ejemplos: `en` para inglés, `pt-br` para portugués de Brasil.
          example: en
        data:
          type: string
          description: |
            Cadena JSON serializada que representa el Remote Config de tu paywall.
            Puedes encontrarla en la pestaña Remote Config de un paywall específico en el Adapty Dashboard.
    Offer:
      type: object
      required:
        - category
        - type
      properties:
        category:
          type: string
          enum:
            - introductory
            - promotional
            - offer_code
            - win_back
          description: La categoría de la oferta aplicada.
        type:
          type: string
          enum:
            - free_trial
            - pay_as_you_go
            - pay_up_front
            - unknown
          description: El tipo de oferta activa. Si este valor no es nulo, significa que la oferta se aplicó en el período de suscripción actual.
        id:
          type: string
          nullable: true
          description: El ID de la oferta aplicada.
  securitySchemes:
    apikeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: |
        Las solicitudes a la API deben autenticarse con tu clave API pública en la cabecera **Authorization**
        con el valor `Api-Key {tu_clave_api_publica}`, por ejemplo,
        `Api-Key public_live_...`. Encuentra esta clave en el Adapty Dashboard ->
        **App Settings** -> pestaña **General** -> sección **API keys**.
```
