Objetivo

Pintar tus propias tarjetas de precios o tu propia tabla comparativa con los datos reales del catálogo, sin copiarlos a mano y sin que se queden viejos cuando cambien.

Hay dos puertas, y la que te toca depende de dónde vaya el contenido:

Dónde lo muestrasQué usas
Una página sin sesión — tu landing, un widget que incrustan tercerosGET /v1/plans/public y GET /v1/plans/public/comparison. Sin credenciales, con caché de cinco minutos y límite de tasa por IP.
Una página detrás de tu API key — el panel de tu productoGET /v1/plans y GET /v1/plans/{slug}/prices.

Requisitos previos

  • Para la puerta pública, nada.
  • Para la otra, una API key activa (veriko_…).

Pasos

1. Traer el catálogo público

curl 'https://api.veriko.mx/v1/plans/public'

Devuelve los planes que están activos y marcados como públicos, cada uno con sus precios y sus viñetas ya filtrados a los activos:

{
  "data": [
    {
      "type": "plan",
      "id": "pro",
      "attributes": {
        "slug": "pro",
        "name": "Pro",
        "billing_model": "subscription",
        "monthly_validation_limit": 5000,
        "trial_days": 14,
        "sort_order": 20,
        "prices": [
          { "currency": "MXN", "billing_interval": "month", "kind": "base", "unit_amount": 49900, "tax_behavior": "inclusive" }
        ],
        "features": [
          { "text_es": "500 validaciones al mes", "text_en": "500 validations per month", "icon": "check", "sort_order": 10 }
        ]
      }
    }
  ]
}

Tres cosas que conviene saber antes de pintarlo:

  • unit_amount viene en centavos. 49900 son 499.00 MXN.
  • Las viñetas son bilingües en el mismo objeto: text_es y text_en. Elige según el idioma de tu página, no pidas el endpoint dos veces.
  • monthly_validation_limit puede ser null, y eso no es un hueco: significa sin límite.

2. Traer la tabla comparativa

curl 'https://api.veriko.mx/v1/plans/public/comparison'

Las columnas son los mismos planes del paso anterior y en el mismo orden —la comparativa no puede divergir de las tarjetas—, y cada fila es una dimensión bilingüe cuyas celdas son booleanas (incluido o no) o de texto.

3. Desde una superficie autenticada

GET /v1/plans devuelve los planes activos con sus viñetas, sin el filtro de «público». Es lo que usa el panel para su propia tarjeta de precios.

curl 'https://api.veriko.mx/v1/plans' \
  -H 'Authorization: Bearer veriko_••••'

Y para el desglose de precios de un plan concreto:

curl 'https://api.veriko.mx/v1/plans/pro/prices' \
  -H 'Authorization: Bearer veriko_••••'

Los precios llegan desglosados por moneda × intervalo × tipo, y meta.plan trae un mini-resumen del plan (billing_model, trial_days, included_validations) para que puedas renderizar el contexto sin una segunda petición.

4. Llevar al checkout

Ninguno de estos endpoints expone el identificador de precio de Stripe: eso se resuelve en el servidor cuando se crea la sesión de pago. Tu interfaz solo manda qué eligió el usuario —plan_slug, currency, billing_interval—, nunca el precio concreto.

Siguientes pasos