Back to Docs

Export Compliance Workflow

A complete guide to building an automated export compliance workflow using the ComplianceGrid APIs — from party screening through AES filing.

Reading time: 10 minLast updated: Feb 2026

Overview

U.S. exporters must comply with multiple regulations: EAR (Export Administration Regulations), ITAR (International Traffic in Arms Regulations), OFAC sanctions, and Census Bureau AES filing requirements. This workflow automates the key compliance checks using ComplianceGrid APIs.

Regulatory note: This guide covers the API integration. Always consult your compliance team and legal counsel for your specific regulatory obligations. ComplianceGrid provides data and tooling, not legal advice.

Workflow Steps

Step 1: Screen All Parties

Screen every party in the transaction — USPPI, consignee, end user, freight forwarder, and intermediaries — against the Consolidated Screening List (OFAC SDN, Entity List, BIS DPL, and 12+ federal lists).

Step 2: Classify the Commodity

Use AI-powered HS code classification to determine the correct tariff code. This determines if an export license is required and which regulations apply.

Step 3: Check for Prohibitions & Restrictions

Screen the commodity against destination-country prohibitions, sanctions programs, and import restrictions. Identify any license requirements.

Step 4: Determine Required Documents

Based on the commodity, destination, and regulatory findings, get the complete list of documents required for the shipment.

Step 5: Validate & File AES/EEI

For shipments over $2,500 (or any requiring a license), validate the Electronic Export Information and submit via AES WebLink.

Step 1: Restricted Party Screening

Screen all transaction parties against OFAC SDN, BIS Entity List, Denied Persons List, and 12+ other federal watchlists in a single API call.

1-party-screening.ts
import ComplianceGrid from "@compliancegrid/sdk";

const cg = new ComplianceGrid({
  apiKey: process.env.COMPLIANCEGRID_API_KEY,
});

// Screen all parties in the transaction
const screening = await cg.compliance.screenParties([
  { name: "Acme Electronics Inc.", country: "US", type: "USPPI" },
  { name: "Berlin Tech GmbH", country: "DE", type: "CONSIGNEE" },
  { name: "Munich Semiconductor AG", country: "DE", type: "END_USER" },
]);

// Check results
if (screening.data.overallResult === "HIT") {
  console.log("BLOCKED — matches found:");
  for (const result of screening.data.results) {
    for (const match of result.matches) {
      console.log(`  ${match.source}: ${match.name} (score: ${match.matchScore})`);
    }
  }
} else {
  console.log("CLEAR — no watchlist hits. Proceed to classification.");
}
Best practice: Screen parties at the earliest possible stage. If a party is on OFAC SDN, you must not proceed with the transaction regardless of other compliance checks.

Step 2: HS Code Classification

Classify the commodity to determine the correct HS/HTS code, duty rates, and whether an export license is required.

2-hs-classification.ts
// AI-powered commodity classification
const classification = await cg.hs.classify({
  description: "High-frequency oscilloscope, 20 GHz bandwidth, digital storage",
});

console.log(classification.data.classifications[0]);
// {
//   htsNumber: "9030.20.00.00",
//   description: "Oscilloscopes, spectrum analyzers...",
//   confidence: 0.94,
//   generalDutyRate: "Free",
//   eccn: "3A002",
//   exportControlled: true,
//   licenseRequired: ["ECCN 3A002 requires BIS license for certain destinations"]
// }

// Also search by keyword for manual verification
const search = await cg.hs.search({ query: "oscilloscope digital" });
console.log(`Found ${search.data.totalResults} matching HTS codes`);

Step 3: Prohibitions & Restrictions

3-prohibitions.ts
// Check for country-specific prohibitions and restrictions
const prohibited = await cg.compliance.prohibitedGoods({
  originCountry: "US",
  destinationCountry: "DE",
  commodityDescription: "High-frequency oscilloscope, 20 GHz bandwidth",
  hsCode: "9030.20",
});

if (prohibited.data.evaluation.isProhibited) {
  console.log("EXPORT BLOCKED — item is prohibited for this destination");
  console.log(prohibited.data.evaluation.prohibitions);
} else if (prohibited.data.evaluation.isRestricted) {
  console.log("License may be required:");
  for (const r of prohibited.data.evaluation.restrictions) {
    console.log(`  ${r.regulation}: ${r.description}`);
    console.log(`  Requires license: ${r.requiresLicense}`);
  }
} else {
  console.log("No prohibitions or restrictions. Proceed to documentation.");
}

// Check export license requirements specifically
const license = await cg.compliance.exportLicense({
  eccn: "3A002",
  destinationCountry: "DE",
  endUse: "Commercial electronics testing",
});
console.log(license.data);

Step 4: Required Documents

4-required-documents.ts
// Determine all required shipping & compliance documents
const docs = await cg.shippingDocuments.getRequired({
  origin_country: "US",
  destination_country: "DE",
  direction: "export",
  commodity_category: "electronics",
  transport_mode: "air",
  shipment_value_usd: 50000,
  has_dangerous_goods: false,
});

console.log(`${docs.data.total_documents} documents required:`);
for (const doc of docs.data.documents) {
  console.log(`  [${doc.category}] ${doc.name}`);
  console.log(`    Required: ${doc.is_required ? "YES" : "Optional"}`);
  console.log(`    Issuer: ${doc.issuing_authority}`);
}

Step 5: AES/EEI Filing

For shipments valued over $2,500 (or any requiring an export license), file Electronic Export Information via AES WebLink.

5-aes-filing.ts
// Validate the EEI filing data
const validation = await cg.aesFiling.validate({
  usppi: {
    companyName: "Acme Electronics Inc.",
    ein: "12-3456789",
    address: { street: "100 Main St", city: "Dallas", state: "TX", zip: "75201" },
  },
  consignee: {
    companyName: "Berlin Tech GmbH",
    address: { street: "Friedrichstr. 100", city: "Berlin", country: "DE" },
  },
  commodities: [{
    scheduleBNumber: "9030.20.0060",
    description: "Digital oscilloscope, 20 GHz",
    quantity: 2,
    unit: "NO",
    value: 50000,
    eccn: "3A002",
    licenseType: "C33",
    exportInfoCode: "HH",
    origin: "D",
  }],
  transportMode: "AIR",
  portOfExport: "2704", // DFW Airport
  estimatedDepartureDate: "2026-03-15",
});

if (validation.data.isValid) {
  console.log("Validation passed — ready to submit");
  // In production, submit to AES WebLink:
  // const filing = await cg.aesFiling.submit(validation.data.filingId);
  // console.log("ITN:", filing.data.itn);
} else {
  console.log("Validation errors:");
  for (const err of validation.data.errors) {
    console.log(`  ${err.field}: ${err.message}`);
  }
}

Complete Workflow Summary

Screen All Parties

Classify the Commodity

Check for Prohibitions & Restrictions

Determine Required Documents

Validate & File AES/EEI

APIs used: Compliance Screening, HS Code Lookup, Shipping Documents, AES Filing

Time savings: Manual compliance checks take 2-4 hours per shipment. With ComplianceGrid, the entire workflow completes in under 5 seconds.

KYC & Due Diligence Guide

SEC + FDIC + FINRA lookups

All Workflows

Browse all compliance workflows