Saltar al contenido principal

¿Qué es un listing?

Un listing representa cualquier producto o servicio que un creador quiere monetizar. Onflay usa una abstracción genérica de listing que soporta múltiples tipos de comercio desde un mismo modelo de datos. Piensa en un listing como la “ficha de producto” de tu tienda. Puede ser:
  • Un e-book descargable
  • Una sesión de consultoría
  • Una membresía mensual
  • Un curso online
  • Acceso a una comunidad

Tipos de listing

DIGITAL

Producto digital de una sola compra. El comprador recibe acceso o descarga inmediata después del pago. Ejemplos: ebooks, plantillas, fotos, música.

SERVICE

Servicio de una sola compra. El creador provee el servicio manualmente después del pago. Ejemplos: consultoría, diseño, auditoría.

SUBSCRIPTION

Suscripción recurrente. El comprador paga periódicamente para mantener el acceso. Ejemplos: membresías, acceso a contenido premium.

Ciclo de vida de un listing

Cada listing pasa por tres estados:
DRAFT → ACTIVE → ARCHIVED
EstadoDescripción
DRAFTEn preparación. No visible públicamente ni disponible para compra.
ACTIVEPublicado y disponible para compra. Aparece en búsquedas públicas.
ARCHIVEDDesactivado. No se puede comprar pero los compradores anteriores mantienen acceso.
Solo los listings en estado ACTIVE aparecen en el endpoint público GET /v1/listings. Los listings en DRAFT solo son visibles para el creador propietario.

Estructura de un listing

{
  "id": "lst_01HXYZ...",
  "creatorId": "crt_01HABC...",
  "type": "DIGITAL",
  "title": "Mi E-Book de Marketing",
  "description": "Guía completa para crecer en redes sociales",
  "slug": "ebook-marketing-2025",
  "priceInCents": 2900,
  "currency": "usd",
  "status": "ACTIVE",
  "metadata": {
    "downloadUrl": "https://...",
    "fileFormat": "PDF",
    "pageCount": 120
  },
  "createdAt": "2025-01-15T10:30:00Z",
  "updatedAt": "2025-01-20T08:15:00Z"
}

Campos principales

id
string
Identificador único del listing. Prefijo lst_.
type
enum
requerido
Tipo de listing. Valores: DIGITAL, SERVICE, SUBSCRIPTION.
slug
string
requerido
URL amigable y única para el listing. Solo letras minúsculas, números y guiones.
priceInCents
integer
requerido
Precio en centavos de la moneda indicada. Por ejemplo, 2900 = $29.00 USD.
currency
string
requerido
Código ISO 4217 de la moneda. Por ejemplo: usd, eur, mxn.
metadata
object
Datos adicionales específicos del tipo de listing. El esquema varía según el tipo.

El campo metadata por tipo

DIGITAL

{
  "metadata": {
    "downloadUrl": "https://cdn.onflay.com/files/...",
    "fileFormat": "PDF",
    "fileSize": 2048576,
    "previewUrl": "https://..."
  }
}

SERVICE

{
  "metadata": {
    "durationMinutes": 60,
    "deliveryDays": 3,
    "revisions": 2,
    "calendarUrl": "https://calendly.com/..."
  }
}

SUBSCRIPTION

{
  "metadata": {
    "interval": "month",
    "intervalCount": 1,
    "trialDays": 7,
    "features": ["Acceso completo", "Soporte prioritario"]
  }
}

Operaciones disponibles

OperaciónEndpointAutenticación
Crear listingPOST /v1/listingsJWT (Creador)
Mis listingsGET /v1/listings/mineJWT (Creador)
Ver listing propioGET /v1/listings/mine/:idJWT (Creador)
Listar públicosGET /v1/listingsPúblico
Ver por slugGET /v1/listings/:slugPúblico
ActualizarPATCH /v1/listings/:idJWT (Propietario)
ArchivarDELETE /v1/listings/:idJWT (Propietario)
El endpoint GET /v1/listings/:slug es el que deberías usar para mostrar la página pública de un producto en tu sitio web. Solo devuelve listings ACTIVE.

Slugs únicos

El slug es el identificador público de tu listing en la URL. Debe ser:
  • Único en toda la plataforma
  • Solo letras minúsculas, números y guiones (-)
  • Entre 3 y 100 caracteres
Ejemplos válidos: ebook-marketing-2025, consultoria-seo, membresia-premium-v2
Si intentas crear un listing con un slug ya existente, recibirás un error 409 Conflict.