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.

Carga útil del webhook de compras en GitHub Marketplace

Las solicitudes POST de webhooks tienen encabezados especiales. Vea "Encabezados de entrega de webhook" para más información. 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.

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.

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.

Ejemplo de carga de webhook para un evento purchased

En este ejemplo se proporciona la carga del evento purchased.

Ejemplo de carga de webhook para un evento changed

Los cambios en un plan incluyen mejoras y degradaciones. En este ejemplo se representan las cargas de los eventos changed, pending_change y pending_change_cancelled. La acción identifica cuál de estos tres eventos ha ocurrido.

Ejemplo de carga de webhook para un evento cancelled