Destinators

From customs clearance to the store door

A customs declaration system and a proof-of-delivery app for Destinators, Azadea's customs broker in Lebanon: invoices in, declarations out, and every store delivery scanned and signed.

Project facts

Industry
Customs
Years
2024 to 2026
Platforms
Declaration system on the web, delivery app for iOS and Android
Output
ASYCUDA XML for NAJM, and the printed Arabic declaration form
Delivery record
Truck, store, scanned barcodes, and the branch manager's name and signature
Stack
Python, FastAPI, AWS Textract, .NET 9, SQL Server, Flutter
Hosting
Railway and Azure App Service, for the declaration system

The challenge

Destinators is the customs broker for Azadea in Lebanon. Shipments reach it with commercial invoices from Azadea's suppliers, and each one needs a customs declaration. The team prepared every declaration by hand, in an outdated system built in the 1990s. Once a shipment clears, Destinators' drivers deliver it to Azadea's stores in the malls.

  • Every customs declaration prepared by hand, in an outdated system built in the 1990s
  • Supplier invoices arriving as PDFs in many different layouts
  • Cleared shipments for the drivers to deliver to Azadea's stores in the malls

What we built

We built the declaration system that replaced the old one, across 2025 and 2026. The team uploads the supplier invoices and fills in a few details. The system reads each invoice in its supplier's layout, applies the broker's own rules, and sets out the lines for the team to check, with manual entry when an invoice can't be read. It then checks the items against the invoice total and produces an ASYCUDA XML file ready for NAJM, the Lebanese customs declarations program. The team also prints the declaration form in Arabic, with the amounts written out in words.

We also built the proof-of-delivery app the drivers use, for iOS and Android. A driver opens a delivery for the truck and the store, then scans the barcodes of the shipment in the app, which flags anything scanned twice. At the store, the branch manager types their name and signs on the driver's phone. The app sends the delivery back to Destinators with every barcode and the signature.

In scope

  • Invoice reading for 15 supplier layouts
  • Five-step declaration workflow
  • ASYCUDA XML for NAJM
  • Arabic declaration form printing
  • Proof-of-delivery app for iOS and Android
  • Barcode scanning and branch manager signatures

How it works

How a shipment goes from invoice to store.

Customs team

  1. Step 1: Upload

    The team uploads the supplier invoices and fills in a few details.

  2. Step 2: Check

    The system reads each invoice, and the team checks the lines.

  3. Step 3: Declare

    The team downloads the ASYCUDA XML for NAJM and prints the declaration form.

Driver

  1. Step 4: Open

    The driver opens a delivery for the truck and the store.

  2. Step 5: Scan

    The driver scans the barcodes of the shipment in the app.

  3. Step 6: Sign

    The branch manager signs for it on the driver's phone.

The drivers take over once the shipment has cleared customs.

The outcome

  • Declarations prepared from the uploaded invoices, in a fraction of the steps
  • An ASYCUDA XML file ready for NAJM, and the Arabic declaration form printed from the system
  • A scanned, signed record of every delivery, from the driver's phone

The project in numbers

  • 15supplier invoice layouts read automatically
  • 5steps in the declaration workflow, in one system
  • 6,938codes from the Lebanese customs tariff built in, with Arabic titles
  • 2platforms for the delivery app, iOS and Android

Contact

Tell us how your team works today.

You'll hear back from us within two working days.