Skip to main content

Eventos de webhook para la API de GitHub Marketplace

Una app de GitHub Marketplace recibe información acerca de los cambios a un plan de usuario desde el webhook del evento de compra en Marketplace. Un evento de compra de marketplace se activa cuando un usuario compra, cancela o cambia su plan de pago.

Nota: Este artículo se aplica solo a la publicación de GitHub Apps en GitHub Marketplace. Para más información sobre la publicación de GitHub Actions en GitHub Marketplace, consulta "Publicar acciones en GitHub Marketplace".

Acerca de webhooks y GitHub Marketplace

Las solicitudes POST de webhooks tienen encabezados especiales. Consulta "Eventos y cargas de webhook" para obtener más detalles. GitHub no reenvía los intentos fallidos de entrega. Asegúrate de que tu app pueda recibir toda la carga útil del webhook que envíe GitHub. Para más información sobre cómo crear y deshabilitar webhooks GitHub Marketplace, consulte “Crear webhooks” y “Desactivación de webhooks”.

Las cancelaciones y disminuciones de categoría toman efecto el primer día del siguiente ciclo de facturación. Los eventos para las cancelaciones y disminuciones de categoría se envían cuando el nuevo plan entre en vigor al inicio del siguiente ciclo de facturación. Los eventos para las nuevas compras y mejoras de categoría comienzan inmediatamente. Use effective_date en la carga de webhook para determinar cuándo se iniciará un cambio.

Nota: Si observas alguna compra de GitHub Marketplace que genere spam u otro comportamiento malintencionado, completa el formulario Notificar abuso con más información sobre el usuario.

Acerca de la carga de webhook de compra para GitHub Marketplace

Cada carga de webhook marketplace_purchase tendrá la siguiente información:

ClaveTipoDescripción
actionstringLa acción realizada para generar el webhook. Puede ser purchased, cancelled, pending_change, pending_change_cancelled o changed. Para obtener más información, consulta los ejemplos de cargas útiles de webhook a continuación. Nota: Las cargas pending_change y pending_change_cancelled contienen las mismas claves que se muestran en el ejemplo de carga changed.
effective_datestringFecha en la que action entra en vigor.
senderobjectPersona que ha tomado el elemento action que ha desencadenado el webhook.
marketplace_purchaseobjectLa información de compra de GitHub Marketplace.

El objeto marketplace_purchase tiene las claves siguientes:

ClaveTipoDescripción
accountobjectLa cuenta de organization o user asociada a la suscripción. Las cuentas de organización incluirán organization_billing_email, que es la dirección de correo electrónico administrativa de la organización. A fin de buscar direcciones de correo electrónico para cuentas personales, puede usar el punto de conexión Obtener el usuario autenticado.
billing_cyclestringPuede ser yearly o monthly. Cuando el propietario de account tiene un plan gratuito de GitHub y ha comprado un plan de GitHub Marketplace gratuito, billing_cycle será nil.
unit_countintegerCantidad de unidades compradas.
on_free_trialbooleantrue cuando account está en una evaluación gratuita.
free_trial_ends_onstringLa fecha en la que caduca el periodo de prueba gratuito.
next_billing_datestringLa fecha en la que comenzará el siguiente ciclo de facturación. Cuando el propietario de account tiene un plan gratuito de GitHub.com y ha comprado un plan de GitHub Marketplace gratuito, next_billing_date será nil.
planobjectPlan comprado por user o organization.

El objeto plan tiene las claves siguientes:

ClaveTipoDescripción
idintegerEl identificador único para este plan.
namestringEl nombre del plan.
descriptionstringLa descripción de este plan.
monthly_price_in_centsintegerEl precio mensual de este plan en centavos (Divisa de los EEUU). Por ejemplo, un listado que cuesta 10 dólares de EEUU por mes sería de 1000 centavos.
yearly_price_in_centsintegerEl precio anual para este plan en centavos (Divisa de los EEUU). Por ejemplo, un listado que cuesta 100 USD al mes sería 120 000 centavos.
price_modelstringEl modelo de precios para este listado. Puede ser FLAT_RATE, PER_UNIT o FREE.
has_free_trialbooleantrue cuando esta oferta ofrece una evaluación gratuita.
unit_namestringEl nombre de la unidad. Si el modelo de precios no es per-unit, será nil.
bulletarray of stringsLos nombres de los puntos configurados en el plan de precios.