Skip to main content

Staging Product webhook payload

The resource:url for a Staging Product webhook payload uses this basic format:

https://marketplace_url/api/marketplace/v1/products/id?country=&currency=

Here marketplace_url is the main URL for the marketplace (for example, mycompany.byappdirect.com ), and id is an ID number that the marketplace has generated for this specific product (for example, 665549 ).

Note that this resource:url is an exception to the usual behavior, in that it does not return the same payload as the webhook itself. Instead, when you use this URL with an HTTP GET it returns the REST API Product definition for the product.

The Staging Product:Changed webhook is triggered by the following actions:

  • Changes to the Listing Info or Profile sections of the product definition are saved.

  • The product is published to the Production catalog.
    This action also triggers a Catalog Product:Added event.

  • The product is modified and re-published to the Production catalog.
    This action also triggers a Catalog Product:Changed event.

  • The product is unpublished from the Production catalog.
    This action also triggers a Catalog Product:Removed event.

A Staging Product:Changed webhook is not triggered when you save a new edition and pricing plan, or a new integration configuration.

When a Staging Product :Added or Staging Product :Changed webhook is triggered, the main part of the content section of the payload matches the REST API Product definition for the product.

In addition, it includes the following attributes:

AttributeTypeDescription
assignLeadsToDevelopersBooleanWhether leads for the product are assigned to the vendor company.
importableBooleanWhether the product definition can be imported into the marketplace.
productRefIdStringA universally unique identifier (uuid) for the product.
supportedLanguagesObjectA list of languages and locales that the product supports, indicated in the standard ISO 639-1 language code + ISO 3166-1 country code format. For example: 'en_US', 'fr_CA', and so on.
supportsMultipleEditionsBooleanWhether the product is stackable: that is, whether a buyer can purchase multiple subscriptions of it a the same time.
useCheckoutV2BooleanWhether the product uses cart-based checkout (Checkout V2) rather than individual product checkout.

The pricing:edition section of the payload includes the following additional attributes that do not appear in the REST API Edition definition:

AttributeTypeDescription
productEditionRefIdStringA universally unique identifier for the edition.
plan:
{...}:keepBillDateOnPricing
PlanChange
BooleanWhether the billing cycle date remains the same when the user changes to a new pricing plan.
{...}:cost:editionPricingItemUuidStringA universally unique identifier (uuid) that identifies the pricing item.

The integrationConfiguration section of the payload includes the following items that do not appear in the REST API IntegrationConfiguration definition: 

AttributeTypeDescription
multipleSubscriptionsEnabledBooleanWhether the product is stackable: that is, whether a buyer can purchase multiple subscriptions of it a the same time.
integrationEventConfigurationWSObjectAn object that defines the integration by specifying the endpoints to receive different integration events. See the IntegrationEventConfigurationWS table below.
domainAssociationConfigurationObjectAn object that defines how domains are to be configured for this product. See the DomainAssociationConfiguration table below.

The IntegrationEventConfigurationWS object includes the following attributes:

AttributeTypeDescription
createUrlStringURL to which to send new SUBSCRIPTION_ORDER subscription creation events.
createUrlInteractiveBooleanWhether the createUrl endpoint is interactive: that is, whether the user is directed to an external site (for example, the vendor's web site) during checkout and provides user and subscription information there before being redirected back to the marketplace.
upgradeUrlStringURL to which to send SUBSCRIPTION_CHANGE events.
upgradeUrlInteractiveBooleanWhether the upgradeUrl endpoint is interactive: that is, whether the user is directed to an external site (for example, the vendor's web site) during subscription upgrades and modifies user and subscription information there before being redirected back to the marketplace.
cancelUrlStringURL to which to send SUBSCRIPTION_CANCEL events.
cancelUrlInteractiveBooleanWhether the cancelUrl endpoint is interactive: that is, whether the user is directed to the vendor's own web site to perform the cancellation there before being redirected back to the marketplace.
notifyUrlStringURL to which to send SUBSCRIPTION_NOTICE events.
upcomingInvoiceEnabledBooleanWhether a SUBSCRIPTION_NOTICE event is sent to the notifyUrl endpoint before each invoice issued to the customer.
If "false", the marketplace does not sent UPCOMING_INVOICE type SUBSCRIPTION_NOTICE events to the notifyUrl endpoint.
eventStatusUrlStringURL to which to send SUBSCRIPTION_STATUS events.
addonNotificationUrlStringURL to which to send add-on events, including:
  • ADDON_ORDER
  • ADDON_CHANGE
  • ADDON_CANCEL
  • ADDON_BIND
  • ADDON_UNBIND
assignUrlStringURL to which to send USER_ASSIGNMENT events.
unassignUrlStringURL to which to send USER_UNASSIGNMENT events.
vendorValidationsUrlStringFor a connector integration with vendor required fields, the URL used to validate vendor required fields.
vendorRequiredFieldsUrlStringFor a connector integration with vendor required fields, the URL used to fetch the list of vendor required fields.

The DomainAssociationConfiguration object includes the following attributes:

AttributeTypeDescription
settingsUrlStringURL from which the marketplace requests domain settings for this product.
verificationUrlStringURL to which the marketplace sends verification requests to verify that the domain for this product has been set up correctly.
maxDomainAssociationNumberThe maximum number of domains that can be associated with this product subscription purchase.
linkUrlStringURL notified when a user tries to link a domain to this product.
unlinkUrlStringURL notified when a user tries to remove a domain from this product.

Was this page helpful?