This article is a comprehensive guide to FastBound’s Transfers API, which enables transferors to programmatically create pending firearm acquisitions in an FFL’s FastBound account for review. It covers authentication, required and optional fields, best practices for matching transferee accounts via email, and includes sample requests and code snippets in several languages to assist with integration.
For those already using FastBound, transfers are handled automatically through the platform. For others, this API offers a streamlined way to initiate transfers, reducing manual entry and ensuring consistency.
All transferees must acknowledge that FastBound provides details entered by a third party and accept all responsibility and liability for reviewing their accuracy.
Authentication
Email support@fastbound.com to request credentials and other information you need to use the FastBound Transfers API.
JSON Schema
JSON Schema is a declarative way to define the structure, constraints, and validation rules for JSON data. This guide covers the key fields—such as required properties and validation rules—outlined in our published JSON Schema.
Required Fields
-
$schema: Must behttps://schemas.fastbound.org/transfers-push-v1.json. -
idempotency_key: Uniquely identifies a request to prevent duplicates. Use a UUID or hash derived from transaction data (up to 255 case-insensitive characters; e.g.,6e2b3ad039f958c8=6E2B3AD039F958C8). -
transferor: The full FFL number (with or without hyphens) of the person or entity who is transferring (selling, gifting, or otherwise conveying) one or more firearms. -
transferee: The full FFL number (with or without hyphens) of the person or entity receiving the firearm(s). -
transferee_emails: At least one valid email address. -
items: A list of firearms being transferred, each requiringmanufacturer,model,caliber,type, andserial. While not strictly enforced, itemtypeshould be an approved item type whenever possible
Transferee Emails
For privacy and security, FastBound uses both the email address and FFL number to match accounts. If none of the email addresses included in the request match a FastBound account, the response will indicate that no matching accounts could be found.
Our recommended approach is to add a designated FastBound Email field that users can update to opt in (or out) of electronic transfers. This ensures a consistent and accurate match during the account lookup process.
Alternatively, some partners send all email addresses that they have on file in the request, in hopes that one matches an email address associated with the FastBound account.
Optional Fields
-
tracking_number: Shipping tracking number (UPS, FedEx, or USPS). UPS, USPS, and Fedex tracking numbers will be displayed as links to the carrier’s tracking page. -
po_number: Purchase Order number. -
invoice_number: Invoice number. -
acquire_type: Type of acquisition (e.g., Purchase, Transfer). -
note: A note regarding all firearms in the transfer. -
items[].importer: Importer marked on the firearm. -
items[].country: Country of manufacture. -
items[].barrelLength: Barrel length in inches. -
items[].overallLength: Overall length in inches. -
items[].mpn: Manufacturer’s Part Number. -
items[].upc: Universal Product Code (UPC). -
items[].sku: Stock Keeping Unit. -
items[].cost: Cost of the item. -
items[].price: Selling price of the item. -
items[].condition: Condition of the item (e.g., New or Used). -
items[].note: A note concerning just this firearm/serial number.
Sample Code
This sample code is provided for demonstration purposes only and should not be used as-is in a production environment. It may require modifications to suit your specific implementation, security requirements, and compliance considerations. Always review and test the code thoroughly before integrating it into your system.
Sample Request Body
{
"$schema": "https://schemas.fastbound.org/transfers-push-v1.json",
"idempotency_key": "6e2b3ad039f958c801c3ab674f94a6782b571173",
"transferor": "1-23-456-78-9F-12345",
"transferee": "9-87-654-32-1B-54321",
"transferee_emails": [
"transferee@example.com"
],
"tracking_number": "1Z999AA10123456784",
"po_number": "PO123456",
"invoice_number": "INV78910",
"acquire_type": "Purchase",
"note": "This is a note for ABC12345 and XYZ67890.",
"items": [
{
"manufacturer": "Smith & Wesson",
"importer": null,
"country": "USA",
"model": "M&P Shield",
"caliber": "9mm",
"type": "Pistol",
"serial": "ABC12345",
"mpn": "SWMP9",
"upc": "0123456789012",
"barrelLength": 4.48,
"overallLength": 7.1,
"sku": "SWMP9-SKU",
"cost": 400.00,
"price": 500.00,
"condition": "New",
"note": "This is a note for just ABC12345."
},
{
"manufacturer": "Glock",
"importer": "Glock Inc",
"country": "Austria",
"model": "G19",
"caliber": "9mm",
"type": "Pistol",
"serial": "XYZ67890",
"mpn": "G19-5G",
"upc": "0987654321098",
"barrelLength": 4.02,
"overallLength": 7.28,
"sku": "G19-SKU",
"cost": 450.00,
"price": 550.00,
"condition": "New",
"note": "This is a note for just XYZ67890."
}
]
}