Cross-Border Shipping
Flash Americas provides comprehensive support for cross-border shipping between the United States and Mexico, including specialized handling for customs, documentation, and regulatory compliance.
Overview
Cross-border shipping involves additional complexity compared to domestic shipments:
- Customs documentation and declarations
- SAT codes for Mexican tax classification
- Multi-leg routing through border crossing facilities
- Currency conversion and international pricing
- Regulatory compliance with both US and Mexican requirements
Getting Started
1. Obtain SAT Codes
For shipments to Mexico, you'll need appropriate SAT (Sistema de Administración Tributaria) codes:
Search for SAT codesjavascript
const satResponse = await fetch('https://ship.flashamericas.com/api/v1/sat-code/lookup/en/electronics', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const satCodes = await satResponse.json();
const selectedSatCode = satCodes.data[0].sat_code;2. Create Cross-Border Quote
The V2 crossborder API uses a comprehensive structure with shipper/consignee locations, handling units, and customs information:
Cross-border quote request (V2 API)javascript
const crossBorderRequest = {
borderCrossingLocation: "LLB", // Laredo/Nuevo Laredo (use "PDN" for El Paso/Ciudad Juarez)
// Shipper location (Mexico)
shipperLocation: {
accessorials: [],
address1: "Av. Javier Rojo Gómez No. 278",
address4: "Guadalupe del Moral",
city: "Iztapalapa",
stateOrProvince: "CMX",
zipCode: "09300",
country: "MX",
contactFirstName: "Marc",
contactLastName: "Held",
phone: "+52 55 1234 5678",
email: "plasticos@moldplas.com.mx",
name: "Moldeados Plásticos, S.A. de C.V.",
type: "business",
limitedAccess: false,
scheduledDate: "2025-06-27T12:00",
openTime: "06/27/2025 08:00:00 -5",
closeTime: "06/27/2025 17:00:00 -5",
readyTime: "06/27/2025 08:00:00 -5",
references: []
},
// Consignee location (USA)
consigneeLocation: {
accessorials: [],
address1: "3300 NE 192nd St",
city: "MIAMI",
stateOrProvince: "FL",
zipCode: "33180",
country: "US",
contactFirstName: "Marc",
contactLastName: "Held",
phone: "305-555-0100",
email: "hq@flashamericas.com",
name: "HQ",
type: "business",
limitedAccess: false,
firstComeFirstServe: true,
openTime: "06/27/2025 08:00 -5",
closeTime: "06/27/2025 17:00 -5",
references: []
},
// Handling units with products
handlingUnits: [{
quantity: 1,
uuid: "ea4xxicv9",
transform: true,
products: [{
selectedPackage: {
id: 22,
key: "Pallets",
name: "Pallets"
},
packageType: "Pallets",
description: "Plastic",
quantity: 1,
weight: 501,
length: 48,
width: 40,
height: 40,
class: 92.5,
condition: "used",
isHazmat: false,
stackable: false,
additionalHandling: false,
satCode: "24121807",
density: 11.25,
uid: "tfbejh1ii"
}]
}],
// Insurance info
insuranceInfo: {
insuredValue: 0
},
// Customs information for cross-border
customs: {
borderCrossingLocation: "LLB",
origin: {
firstName: "Carlos",
lastName: "Rodriguez",
email: "customs.mx@flashamericas.com",
phone: "5551234567"
},
destination: {
firstName: "Sarah",
lastName: "Johnson",
email: "customs.us@flashamericas.com",
phone: "5551234567"
}
},
// Additional options
parcelOptions: {
appointment: "no"
},
usePublicApi: true
};
// Submit the quote request
const response = await axios.post('https://ship.flashamericas.com/api/v1/quote-crossborder',
crossBorderRequest, {
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
'Accept': 'application/json'
},
timeout: 30000 // 30 second timeout for cross-border quotes
});3. Handle Quote Response
Processing cross-border quotesjavascript
if (response.data.success) {
const quotes = response.data.quotes?.quotes || response.data.quotes || [];
const loadId = response.data.quotes?.loadId || response.data.loadId;
const bolNumber = response.data.quotes?.bolNumber || response.data.bolNumber;
if (quotes && quotes.length > 0) {
console.log(`Found ${quotes.length} cross-border quotes:`);
quotes.forEach((quote, index) => {
// Extract carrier info from moves array
const carrierInfo = quote.moves && quote.moves.length > 0 ? quote.moves[0] : {};
const carrierName = carrierInfo.carrierName || 'Multi-Carrier';
const scac = carrierInfo.scac || 'MULTI';
console.log(`${index + 1}. ${carrierName} (${scac})`);
console.log(` Price: $${quote.total.toFixed(2)} ${quote.currency.toUpperCase()}`);
console.log(` Transit: ${quote.fromTransitTime}-${quote.toTransitTime} days`);
console.log(` Service: ${quote.serviceType}`);
console.log(` Quote ID: ${quote.quoteId}`);
});
// Find cheapest quote
const cheapest = quotes.reduce((min, quote) =>
quote.total < min.total ? quote : min
);
console.log(`Best quote: $${cheapest.total.toFixed(2)}`);
}
}Special Considerations
Documentation Requirements
- Commercial invoices with detailed descriptions
- SAT codes for all products
- Proper value declarations
- Origin certificates when required
Border Crossing Facilities
Flash Americas coordinates with multiple border crossing points for optimal routing and timing:
- LLB - Laredo/Nuevo Laredo crossing
- PDN - El Paso/Ciudad Juarez crossing
Transit Times
Cross-border shipments typically require 2-5 additional business days compared to domestic shipping.
Next Steps
- SAT Codes API - Find proper tax classifications
- Locations API - Validate international addresses
- Examples - See complete cross-border implementations
