Webhook event structure and types

Find out which types of webhooks are triggered by each event.

Webhook payloads contain an event field that specifies the event type.

Webhook event structure

Inside the payload object, a webhook event has the following keys:

  • event: Specifies what triggered the webhook.
  • payload: Fields included in the second payload object depend on the type of event triggered. For example, if an FFL event is triggered, fields included are about the FFL number, address information, letter of authorization (LOA) dates, and so on.

Event types

The following event allows you to receive notifications for every event type:

eventDescription
*Receive event notifications from products, Minimum Advertised Price (MAP) policies, MAP promotions and its products, orders, and federal firearms licenses (FFLs) and its files.

Brand events

eventDescription
brands.createdTriggered when a brand is created in the BFG system. Use this event to sync new brand records with external systems or to trigger follow-up processes such as brand onboarding or catalog setup.
brands.updatedTriggered when a brand is updated in the BFG system. Use this event to update brand records in external systems or refresh brand-related content in real time.
brands.deletedTriggered when a brand is soft-deleted in the BFG system. Use this event to remove or deactivate the brand in external systems, ensuring your data remains synchronized.

The payload structure of a brand event includes the following:

  • event: The name of the event (brands.created)
  • payload.brand: Contains the brand information:
    • id: Unique identifier for the brand
    • account_id: Identifier for the associated account
    • name: The name of the brand
    • deleted_at: null if the brand is active

Product events

eventDescription
products.createdTriggered when one or more new products are created. Use this event to initiate product setup or sync new product records into external systems as soon as they are added in BFG.
products.updatedTriggered when one or more products are updated. Use this event to refresh or sync product data in external systems whenever product details are modified in BFG.
products.deletedTriggered when one or more products are deleted. No additional product data is included, as the records have been removed from the system. Use this event to remove product records from external systems or archives when they are deleted in BFG.
products.importedTriggered when one or more products are successfully imported into BFG using a bulk import process (e.g., CSV upload or API-based import). Use this event to validate import success, trigger downstream syncs, or initiate workflows based on newly imported product data.

The payload structure of a product event includes the following:

  • event: The event name
  • payload.upcs: An array of UPCs corresponding to the created, updated, or imported products

Note: Product details are not included in the payload but can be retrieved using the BFG API.

MAP policy events

eventDescription
map_policies.updatedTriggered when an existing MAP policy is updated. Use this event to keep MAP policy data in sync across external systems when changes are made in BFG..
map_policies.deletedTriggered when a MAP policy is deleted. Contains the full details of the deleted policy at the time of removal, including title, start and end dates, pricing code, publication status, and associated company. Use this event to remove or archive MAP policies in external systems when they are deleted in BFG.
map_policies.importedTriggered when one or more MAP policies are successfully imported into BFG using a bulk import process (e.g., CSV upload or API-based import). Use this event to confirm MAP policy imports and trigger synchronization or validation processes in external systems.
map_policies.publishedTriggered when a MAP policy is published. The published field is set to true, indicating the policy is active. Use this event to activate or enforce MAP pricing rules in external systems when a new policy is made live in BFG.

The payload structure of a MAP policy event includes the following:

  • event: The event name
  • payload.map_policy: An object containing MAP policy data:
    • id, title, published, start_date, end_date
    • company: Associated company details
    • map_advertising_pricing: Pricing code and description (e.g., MAP_MINIMUM)

MAP promotion events

eventDescription
map_promotions.updatedTriggered when an existing MAP promotion is updated. Use this event to synchronize changes to MAP promotions in external systems, ensuring promotion metadata remains consistent.
map_promotions.deletedTriggered when a MAP promotion is deleted. Use this event to remove or deactivate MAP promotions in external systems when they are deleted in BFG.
map_promotions.publishedTriggered when a MAP promotion is published in BFG, transitioning it to an active status. The status is set to "ACTIVE" and published is true. Use this event to activate promotional pricing in external systems when a MAP promotion goes live.

The payload structure of a MAP promotion event includes the following:

  • event: The event name
  • payload.map_promotion: An object containing MAP promotion fields:
    • id, title, description, details, status, promotion_type, start_date, end_date, and company information

MAP promotion product events

eventDescription
map_promotion_products.createdTriggered when one or more products are added to a MAP promotion. Use this event to apply promotional pricing rules to specific products in external systems when they are added to a MAP promotion.
map_promotion_products.deletedTriggered when one or more products are removed from a MAP promotion in BFG. Use this event to update or remove promotional pricing in external systems when products are excluded from a MAP promotion in BFG.

The payload structure of a MAP promotion product event includes the following:

  • event: The event name
  • payload.map_promotion: An object containing MAP promotion details, including:
    • id, title, description, status, promotion_type, start_date, end_date, and related company information
  • payload.upcs: An array of product UPCs added or deleted in the promotion

FFL events

eventDescription
federal_firearms_licences.createdTriggered when a new FFL record is created. Use this event to sync newly added FFL dealers with your external systems or databases in real time.
federal_firearms_licences.updatedTriggered when an existing FFL record is updated. Use this event to synchronize FFL dealer records with external systems when any licensing or contact details are modified.
federal_firearms_licences.deletedTriggered when a FFL record is deleted. Includes details of the deleted FFL record at the time of deletion, such as license number, business name, and the deleted_at timestamp. Use this event to remove or archive FFL dealer records from external systems when they are deleted in BFG.
federal_firearms_licences.restoredTriggered when a previously deleted FFL record is restored. The deleted_at field is set to null, indicating that the record is active again. Use this event to reinstate FFL dealer records in external systems when they are restored.

The payload structure of an FFL event includes the following:

  • event: The event name
  • payload.ffl: An object containing the new FFL record with fields like:
    • ffl_number, license_name, business_name
    • premise_address, mailing_address, email, phone
    • loa_issue_date, loa_expiration_date
    • is_residential, transfer_fee, website, and timestamps

FFL file events

eventDescription
federal_firearms_licence_files.addedTriggered when a new file is added to a FFL record. Use this event to automatically sync or archive FFL-related documents in external systems when new files are uploaded.
federal_firearms_licence_files.deletedTriggered when a file associated with a FFL record is deleted. Use this event to remove or archive FFL-related documents in external systems when they are deleted.

The payload structure of an FFL file event includes the following:

  • event: The event name.
  • payload.ffl_id: The ID of the FFL the file is associated with.
  • payload.media: An object containing details of the uploaded file:
    • id, name, file_name, mime_type, size, sort