---
title: "GunBroker"
description: "List products and sync orders with GunBroker marketplace"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.firearmcart.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GunBroker

# GunBroker Integration

Connect your FirearmCart store with GunBroker to list products on the marketplace and import orders back to your store.
---

## Features

| Feature | Description |
|---------|-------------|
| **Product listings** | List products as fixed price or auction |
| **Import existing listings** | Link listings you already had on GunBroker to your catalog by SKU or UPC |
| **Order import** | Import GunBroker orders into FirearmCart |
| **Order sync** | Keep order statuses synchronized, automatically every 30 minutes |
| **Delist when sold out** | Automatically end a product's listings when it runs out of stock (opt-in) |
| **Auto-relist** | Automatically relist items that go unsold (opt-in, webhook-driven) |
| **Category browsing** | Browse GunBroker categories when creating listings |
| **Webhook support** | Receive real-time notifications from GunBroker |

---

## Prerequisites

Before connecting, you need:

- Active GunBroker seller account
- GunBroker Developer Key (Dev Key)
- GunBroker username and password
- Valid FFL license (for firearms listings)

### Getting API Credentials

1. Log into your GunBroker account
2. Request a Developer Key from GunBroker
3. Note your GunBroker username and password

---

## Setting Up

1. Navigate to **Plugins > Marketplace**
2. Find **GunBroker**
3. Click **Activate**
4. Enter your credentials:
- **Dev Key** — Your GunBroker Developer Key
- **Username** — Your GunBroker account username
- **Password** — Your GunBroker account password
- **Enable Sandbox Mode** — Tick for testing (clear for live listings)
5. Click **Activate Plugin**

Your credentials are verified against GunBroker before the plugin activates — a failure blocks activation with "Unable to authenticate with GunBroker. Please verify your Dev Key, username, and password." Once active, a **GunBroker** entry appears under **Plugins** in the sidebar.

---

## Webhooks

GunBroker pushes real-time notifications (item sold, item unsold, winning bid, order status update, listing failed) to FirearmCart. GunBroker has no API for managing webhook subscriptions, so this is a one-time manual step:

1. Open **Plugins > GunBroker > Settings** and find the **Connection** card
2. Copy the callback URL and event list shown there
3. Add them in GunBroker under **Selling → Webhooks**

Without webhooks configured, listing status changes and auto-relist rely on the scheduled polling jobs instead.

---

## Creating Listings

### Single Listing

1. Navigate to **Plugins > GunBroker**
2. Click the **Create Listing** tab
3. Search for and select a product from your catalog
4. Configure the listing:

| Setting | Description |
|---------|-------------|
| **Category** | GunBroker category — drilled down through Subcategory selects until you reach a leaf |
| **Listing Type** | Fixed Price or Auction |
| **Price** / **Starting Bid** | List price for fixed price, or opening bid for auctions |
| **Buy Now Price (optional)** | Instant purchase price |
| **Reserve Price (optional)** | Minimum acceptable price — auctions only |
| **Quantity** | Number of items available |
| **Duration (days)** | 30 / 60 / 90 for fixed price; 1 / 3 / 5 / 7 / 14 for auctions |
| **Offer free shipping (seller pays)** | Advertise the listing as free shipping |
| **Auto-relist unsold items** | Relist automatically when the item goes unsold |
| **Description** | Rich-text listing description |
| **Premium Features (optional)** | Subtitle, Colored Title, Scheduled Start and other GunBroker paid upgrades |

5. Click **Create Listing**

> **Tip:** The listing is created in the background. Refresh the listings tab to see the updated status.

---

## Importing Existing Listings

If you already had listings on GunBroker before connecting (for example, listings you created directly on GunBroker.com), use **Import existing** on the Listings tab to link them to your FirearmCart catalog.

The import runs in the background, so it won't time out on large accounts — matched listings appear in the table live as they're linked, and you'll get a notification when it finishes.

The importer scans your **active** GunBroker listings and matches each one against a **single** key, chosen by the **Match products by** setting on the Settings tab:

- **SKU** — the listing's SKU matched against your product SKUs (case-insensitive, whitespace ignored).
- **UPC** — the listing's UPC matched against your product barcodes (digits only).

There is deliberately **no fallback** to the other key: if the chosen key doesn't match, the listing is reported as unmatched rather than guessed at. (Manufacturer part number is used as an extra fallback only when auto-creation is enabled.)

When a listing is matched, it's linked to the product **without creating a duplicate listing on GunBroker** — it adopts the existing GunBroker item. Once linked:

- The listing appears on the Listings tab and stays status-synced.
- If you've enabled **Delist when sold out**, the listing is ended automatically when the product runs out of stock.
- **Sales from that listing import as orders** (previously, sales from unlinked listings were skipped).

> **Why this matters:** Until a GunBroker listing is linked to a product, FirearmCart can't recognize its sales — so importing your existing listings is the step that brings their orders into your store.

### What gets skipped

| Outcome | What happens |
|---------|--------------|
| **Unmatched** | No product matches on the configured key. The listing is left untouched and reported so you can add the SKU/UPC to the product (or create it) and re-run the import. |
| **Ambiguous** | The key matches more than one product. The importer won't guess — it skips and reports the candidates so you can resolve the duplicate. |
| **Already linked** | The listing already has a local record (yours or from a previous import). Left as-is. |

> **Tip:** Re-running the import is safe — already-linked listings are skipped, so you can fix unmatched products and import again to pick up the rest.

---

## Managing Listings

### Listings Tab

View and manage all your GunBroker listings:

- **Search** by product name or GunBroker item ID
- **Filter** by listing status
- **Refresh** listing statuses from GunBroker
- **End** active listings
- **Relist** expired or ended listings

### Listing Statuses

| Status | Description |
|--------|-------------|
| **Pending** | Listing is being created |
| **Scheduled** | Created with a scheduled start that hasn't arrived yet |
| **Active** | Listed and visible on GunBroker |
| **Sold** | Item has been sold |
| **Unsold** | Listing ran its course without selling |
| **Ended** | Listing was ended, manually or by the delist-when-sold-out rule |
| **Failed** | Listing creation failed |

The status filter also has a **Not imported** option — GunBroker listings that are live on your account but have no local record yet.

---

## Orders

### Syncing Orders

Orders sync automatically every 30 minutes. To pull them in immediately:

1. Navigate to **Plugins > GunBroker**
2. Click the **Orders** tab
3. Click **Sync Orders** to import new orders from GunBroker

Orders are imported into FirearmCart with buyer details, pricing, and FFL information (when applicable). Only orders GunBroker reports as paid, completed or shipped are imported, and only for listings linked to a product.

### Order Details

Imported orders include:

| Field | Description |
|-------|-------------|
| **GunBroker Order ID** | Original order number from GunBroker |
| **Buyer info** | Buyer name and contact details |
| **Item details** | GunBroker item ID and pricing |
| **FFL information** | Buyer's FFL details for firearms transfers |
| **Shipping address** | Delivery address |
| **Status** | Current order status |

---

## Settings

The Settings tab has several cards.

### Default Listing Settings

| Setting | Description |
|---------|-------------|
| **Default Listing Type** | Fixed Price (default) or Auction |
| **Default Duration (days)** | Default listing duration — 7 by default |
| **Auto-Relist Unsold Items** | Default auto-relist preference for new listings — off by default |
| **Auto-Delist When Product Sells Out** | Off by default. When a tracked product hits zero stock from an order, end any active GunBroker listings for it and notify the team. Prevents overselling. |
| **Accepted Payment Methods** | Which payment methods your listings advertise |

### Product Matching

| Setting | Description |
|---------|-------------|
| **Match products by** | SKU or UPC — the single key the "Import existing" matcher uses |

### Customer Emails

Control whether imported GunBroker orders send your store's order confirmation and tracking emails to the buyer.

### Connection

Read-only. Shows the connected account and the webhook callback URL to paste into GunBroker. Credentials are changed from the marketplace, not here.

### Product Auto-Creation

When you import existing listings, some may not match any product in your FirearmCart catalog (a different SKU, no UPC, or simply never added). The **Product Auto-Creation** card on the Settings tab controls what happens to those:

| Setting | Description |
|---------|-------------|
| **Auto-create missing products** | Off by default. When on, the import builds a product from any listing that matches no catalog product by SKU, UPC, or manufacturer part number. **Existing products are never duplicated** — a listing that already matches a product links to that product instead. Turning this on also enables part-number fallback matching, which is otherwise off. |
| **New product status** | **Draft (recommended)** or **Active**. Draft keeps the new products out of your storefront until you review them — sellers sometimes list things on GunBroker that aren't real catalog products. |
| **Import listing images** | On by default. Pulls the GunBroker listing's photos onto the new product. |
| **Lock suppliers (standalone product)** | Off by default. Keeps auto-created products from being adopted by distributor catalog syncs. |

Auto-created products carry the listing's title, price, SKU, UPC (as the barcode), and specifications (caliber, manufacturer, part number, round count). After enabling, run **Import existing** on the Listings tab to create + link them so their orders import.

> **Tip:** Leave **New product status** on **Draft** the first time. New products are created hidden from your storefront, so you can review them on the **Products** page — publish the ones you want and delete any that aren't real catalog items — before anything goes live.

---

## Troubleshooting

### Connection Failed

**Symptoms:** Activation is refused with "Unable to authenticate with GunBroker"

**Solutions:**
- Verify your Dev Key, username, and password are correct
- Ensure your GunBroker account is active
- Check if sandbox mode matches your credentials (sandbox credentials won't work in production and vice versa)

### Listing Creation Failed

**Symptoms:** Listing shows "Failed" status

**Solutions:**
- Check that the product has all required fields (title, description, price)
- Verify the selected GunBroker category is valid
- Ensure your account has seller privileges
- Review the listing details for any validation errors

### Orders Not Syncing

**Symptoms:** GunBroker orders not appearing in FirearmCart

**Solutions:**
- Click **Sync Orders** to manually trigger a sync
- Verify the plugin connection is active
- Check that orders exist in your GunBroker seller account
- Confirm the listing that sold is linked to a product — sales from unlinked listings are skipped. Run **Import existing** on the Listings tab to link them.

---

## Related Documentation

- [Orders](/orders) - Order management
- [Products](/products) - Product catalog
- [FFL Compliance](/ffl-compliance) - FFL requirements for firearms sales
- [Webhooks](/integrations/webhooks) - Webhook event notifications

Source: https://docs.firearmcart.com/integrations/gunbroker/index.mdx
