Technical Lab · 0020

Letter of Credit workflow in Odoo — the Bangladesh exporter's complete guide.

The full LC lifecycle managed through Odoo — from issuing the proforma invoice to trigger LC opening, recording LC details against the Sales Order, assembling compliant shipment documents, and reconciling LC proceeds in Odoo Accounting. Built from garment, cycle, and textile export deployments.

The Letter of Credit is the backbone of Bangladesh's export economy. In RMG alone, the majority of exports are settled through LC — and for good reason. An LC from a major European or US bank is as close to guaranteed payment as an exporter can get, provided the shipment documents are compliant.

The problem is that LC compliance is detail-intensive. A single discrepancy — a product description that doesn't exactly match the LC wording, a shipment date one day past the LC deadline, or a document missing a mandatory clause — can result in the bank refusing to pay without the buyer's waiver. Odoo won't eliminate these risks entirely, but it can dramatically reduce them by creating a disciplined, document-first workflow.

Document discrepancies in LC settlements are rarely random. They're almost always the result of a process gap — information that existed somewhere but didn't make it onto the right document.

The LC lifecycle for Bangladesh exporters

1
Exporter

Proforma Invoice issued

Exporter sends a proforma invoice to the buyer — product description, quantity, unit price, total value, currency, Incoterm, and shipment terms. The buyer uses this to apply for an LC at their bank.

Generated in Odoo Sales
2
Buyer's Bank

LC opened by buyer's bank

The buyer's issuing bank opens the LC and transmits it via SWIFT to the advising bank in Bangladesh. The LC specifies: amount, currency, expiry date, latest shipment date, required documents, and all terms the exporter must comply with.

3
Exporter

LC reviewed against Sales Order

Exporter receives the LC from the advising bank and checks every term against the Odoo Sales Order. Product description, quantity, price, Incoterm, and currency must all match. If there are discrepancies, request LC amendment before shipment — not after.

Cross-check against Odoo SO
4
Factory

Production & shipment

Goods are produced (Manufacturing Order in Odoo if using MTO), quality checked, and shipped. The shipment date in Odoo must be on or before the LC's "Latest Date of Shipment." This is the most common discrepancy in Bangladesh export — shipment one day late means the LC is expired.

5
Exporter

Shipment documents compiled

After the vessel loads, assemble all required documents. Commercial invoice and packing list are generated from Odoo. Bill of lading comes from the shipping line. Certificate of origin from BGMEA/EPB. All documents must comply with LC terms exactly — no variations in spelling, product description, or amounts.

Commercial invoice + packing list from Odoo
6
Advising Bank

Documents presented and negotiated

Documents are presented to the advising bank within the LC's presentation period (usually 21 days from shipment). The bank checks for discrepancies. If clean, the bank negotiates (pays) the exporter against the LC. If discrepant, the bank holds until the buyer waives the discrepancies.

7
Exporter

LC proceeds received & reconciled

Bank credits the LC proceeds (net of bank charges) to the exporter's EFCA (Exporters' Foreign Currency Account). The exporter records the payment in Odoo against the customer invoice, with the actual exchange rate on the payment date. Odoo calculates and posts the currency exchange gain or loss automatically.

Reconciled in Odoo Accounting

Proforma invoice from Odoo

Enable proforma invoices in Odoo: Settings → Sales → Invoicing → tick "Proforma Invoices". From any confirmed Sales Order (or even a quotation), click "Send Pro Forma Invoice". Odoo generates a PDF with:

Critical detail

The product description on the proforma invoice must be exactly what you want on the LC — and therefore exactly what will appear on your commercial invoice and bill of lading. Bangladesh banks reject documents where the description on the commercial invoice differs from the LC even in punctuation. If your product in Odoo is called "100% Cotton T-shirt" but the LC says "Knitted T-shirt of Cotton," you have a discrepancy. Fix the product name or the proforma before the buyer applies for the LC — not after it arrives.

Recording LC details in Odoo

Odoo Community and Enterprise don't have a built-in LC register. The options for Bangladesh exporters:

Option 1 — Sales Order chatter (no development, works immediately): When the LC arrives, open the Sales Order → click the chatter icon → Log a note: "LC No. [number], Issuing Bank: [bank], Expiry: [date], Latest Shipment: [date], Advising Bank: [bank], Amount: USD [amount]". Attach a scan of the LC. This creates a permanent, timestamped record linked to the order.

Option 2 — Custom SO fields (recommended for high-volume exporters): Add custom fields to the Sales Order model: LC Number, LC Expiry Date, Latest Shipment Date, Advising Bank, LC Amount. This enables filtering and reporting by LC expiry — critical for production scheduling. A skilled Odoo developer can add these fields in 2–3 hours.

Option 3 — Customer Reference field: A quick workaround — enter the LC number in the "Customer Reference" field on the Sales Order. This prints on invoices and delivery orders, and allows filtering by LC number in order lists.

Note · Woven garment exporter, peak seasonLatest shipment date missed
One factory scheduled its production floor by order value — the biggest orders ran first. The trouble was that the largest order in the queue had a comfortable LC expiry, while a smaller order's LC carried a tight latest-shipment date that lived only in a printed LC copy in a drawer. The small order shipped a day after its cut-off. The bank held the documents as discrepant; the buyer eventually waived, but the negotiation took three weeks and the relationship cooled. The fix cost nothing in Odoo: the latest-shipment date is logged in the Sales Order chatter the day the LC arrives, and the production planning view is sorted by that date — not by order value. The most urgent order is the one whose LC expires first, not the one worth the most.

LC compliance checklist — before shipment

Before instructing the factory to load the container, cross-check these items between the LC and the Odoo Sales Order/documents:

LC requirement What to check in Odoo Source
Beneficiary name & address
Must match your Odoo company name and address exactly — including punctuation, comma vs. period, full vs. abbreviated name.
Company Settings
LC Currency & Amount
The Sales Order total in the agreed currency must be ≤ the LC amount. If the order is split across multiple shipments, each partial shipment must be within the LC amount.
Sales Order total
Product description
Commercial invoice product description must match the LC wording exactly. Check character by character — "T-Shirts" vs "T-shirts" vs "Tee Shirts" are all different to a bank.
Product name on SO line
Quantity & unit of measure
Quantity on commercial invoice must match quantity on bill of lading (same unit — pcs, dozens, kg). Odoo delivery order quantity must equal LC quantity for full shipment.
Delivery order qty
Latest shipment date
The on-board date of the bill of lading must be on or before this date. If you're shipping late, request LC amendment — don't sail past the deadline and hope the buyer waives.
Bill of Lading date
Port of loading
Usually "Chittagong, Bangladesh" (now officially "Chattogram"). Must match LC exactly. Some LCs specify "any Bangladesh port" — check whether this allows Dhaka ICD or Mongla.
Delivery order / SO
Incoterm
FOB, CIF, CFR, FCA — must match both the Odoo Sales Order and the commercial invoice. The Incoterm determines who pays freight and who is responsible during transit — never guess this from the LC.
SO Other Info tab
Required documents list
LC may require: commercial invoice (signed original), full set of clean on-board bills of lading, packing list, certificate of origin, inspection certificate, beneficiary certificate. Confirm you can produce every document the LC requires before shipment.
LC terms

Shipment documents generated from Odoo

Two of the required LC documents come directly from Odoo:

The remaining documents are sourced externally but should be stored in Odoo (attached to the Sales Order or invoice via the chatter):

Payment reconciliation in Odoo Accounting

When the LC proceeds are credited to your account (net of bank negotiation charges and bank commission), record the payment in Odoo:

StepOdoo actionNotes for Bangladesh LC
1. Find the invoice Accounting → Customers → Invoices → open the relevant invoice The invoice should have been created from the Sales Order when the goods were shipped. Status should be "Posted."
2. Register payment Click "Register Payment" → select EFCA bank account → enter amount → enter exchange rate Enter the actual exchange rate on the payment date, not the invoice date rate. The BDT equivalent posted to your EFCA account is what the bank credits. Odoo calculates the FX gain/loss automatically.
3. Record bank charges If the bank deducted charges before crediting, post a journal entry: Debit Bank Charges, Credit EFCA account Common LC charges: negotiation commission (0.1–0.25%), courier charges for documents, SWIFT charges. These are P&L expenses — not to be netted against the customer invoice amount.
4. Repatriation When funds are converted from EFCA to BDT account, post: Debit BDT current account, Credit EFCA account Bangladesh BB regulations require export proceeds to be repatriated within 120 days of shipment. Track repatriation dates against each LC to avoid BB reporting violations.

Sight LC vs Usance LC — Odoo implications

Understanding LC types is essential for cash flow planning in Odoo:

Linked reading

LC management is inseparable from your vendor procurement process — especially for factories that import raw materials under the same LC arrangement (Back-to-Back LC). The purchase side of this — vendor LC tracking and landed costs for imported raw materials — is covered in the Odoo Purchase & Vendor Management guide for Bangladesh SMEs. For the HS code requirements that make your customs documents LC-compliant, see the HS Code and Customs Management guide.

If your current LC process involves a spreadsheet, WhatsApp messages, and hope — that's the norm for most Bangladesh exporters I work with. Bringing it into Odoo doesn't require custom development to start. The chatter-based LC registration and standard commercial invoice/packing list from Odoo will immediately reduce document errors and give you a full audit trail per order. Get in touch if you want a scoping call for LC process digitisation →

Frequently asked questions

What is a Letter of Credit (LC) and how does it work for Bangladesh exporters?

An LC is a bank guarantee from the buyer's bank promising payment if the exporter presents compliant shipping documents. The flow: buyer applies for LC → issuing bank opens LC → advising bank in Bangladesh receives it → exporter ships goods before the LC's latest shipment date → exporter presents documents (commercial invoice, packing list, bill of lading, certificate of origin) → advising bank checks compliance and pays. LC is the most secure payment method for Bangladesh exporters and is used for the majority of RMG, textile, and cycle export transactions.

Can Odoo track LC numbers and expiry dates against Sales Orders?

Not out of the box — but there are practical workarounds. The simplest is to log the LC number, expiry date, and latest shipment date as an internal note in the Sales Order chatter (with a scan of the LC attached). For exporters with high order volumes, a small development to add custom fields on the Sales Order (LC Number, Expiry Date, Latest Shipment Date) enables filtering and alerts — typically 2–4 hours of developer time. Either way, the discipline of recording LC details in Odoo the day you receive the LC is what prevents missed shipment dates.

How do I reconcile LC payment receipts in Odoo Accounting?

Open the customer invoice → Register Payment → select your EFCA bank account → enter the payment amount and the actual exchange rate on the payment date. Odoo automatically computes and posts the FX gain or loss to your exchange gain/loss accounts. If the bank deducted charges before crediting, post those separately as bank charge expenses — do not net them against the invoice amount, as this understates your revenue and overstates bank charges on a net basis.

What documents does Odoo generate for LC presentation?

Odoo generates: (1) Commercial Invoice — from Accounting → Customers → Invoices; (2) Packing List — from the Delivery Order (requires product weights to be set). All other LC documents (Bill of Lading from shipping line, Certificate of Origin from BGMEA/EPB, Inspection Certificate from the buyer's agent) are sourced externally. Attach all documents to the Odoo Sales Order via the chatter — this creates a complete, searchable document archive per export order.