In this guide, you’ll learn how to send e-invoices from an Excel file in the Wafeq e-invoicing ASP portal: downloading the template, filling it in, importing the file, fixing anything the portal flags, and approving what’s ready to send.
Before you start, make sure your organization is set up and at least one taxpayer is connected. Refer to:
Wafeq E-Invoicing ASP Portal: Getting Started and Connecting Businesses (UAE).
Tip: Try your first file in Sandbox. Nothing reaches your customer or the FTA, and you can test the whole process for free.
How a File Import Works
- Each row in your file is one line of an invoice. Rows with the same
taxpayer_idand invoice number become one invoice. - The portal saves the invoices as drafts, validates each one against the UAE rules, and looks up every customer on the Peppol network.
- Nothing is sent until you approve it. When you do, each invoice goes to the customer’s provider.
You can import Invoices, Credit Notes, Self-Billed Invoices and Self-Billed Credit Notes. Each file can have up to 50,000 rows, 5,000 documents and 25 MiB.
Note: Only organization owners and admins can import files.
Step 1: Open a New Import
- In the left menu, click "Files". This page lists every file you’ve imported.
- Click "New import".
- In "Document type", choose what the file contains.
- In "Dates in your file", keep "Detect unambiguous dates" if your file uses real Excel dates. If your dates are text such as 03/04/2026, choose Day first or Month first.
- Click "Download Excel template".
Step 2: Fill In the Excel Template
The template has four sheets:
- Import: The only sheet that is imported. Fill it in and keep the column headers unchanged.
- Instructions: The rules for filling in the file.
- Examples: Sample rows. This sheet is never imported.
- Dropdown values: The codes you can choose from, such as emirates, tax categories and exemption reasons.
Every column header has a note explaining what goes in it. Fill in the Import sheet as follows:
-
taxpayer_id: Start every row with the Taxpayer ID of the business issuing the invoice. You’ll find it on the taxpayer’s page under "Taxpayers" (it starts with
txpay_). -
Invoice details: Enter
invoice_number,issue_date,currencyanddue_date(required for invoices). If the currency isn’t AED, also entercurrency_exchange_rate. -
Customer details: Enter
customer_name,customer_vat, address, city, country and emirate (for example,DXB). Incustomer_id, enter the customer’s Peppol ID in the format0235:followed by the customer’s 10-digit TIN (for example,0235:1234567890). Leave it blank if the customer has no TIN. -
Line details: Describe what you sold in
line_description, then enterline_quantityandline_unit_price. -
Tax: Choose
line_tax_categoryfrom the dropdown (S standard rate, Z zero-rated, E exempt, O outside scope, AE reverse charge). Enterline_tax_percentas a plain number: 5 for 5%, not 0.05. For E and O lines, add an exemption reason code or text. -
More than one line: Add a new row for each extra line and repeat the same
taxpayer_idandinvoice_number. Complete the invoice and customer details on the first row only.
Note: Most invoices leave the special scenario columns (free_zone, margin_scheme, disclosed_agent_billing) blank. Choose Yes only when one applies. Credit notes must reference the original invoice. Export, e-commerce, summary, deemed supply and continuous supply invoices need fields that are available only through the API.
Tip: You don’t choose the invoice type. The portal issues a tax invoice, or a commercial invoice when the seller has no TRN or every line is exempt or outside scope.
Step 3: Upload the File and Check the Preview
Back on the "New import" page, drop your file in the upload area or click it to browse. Your browser checks the file before anything is uploaded. If a row has a problem, the portal names the row to fix.
Fix the row in Excel, then choose the file again. When the basic checks pass, the preview lists each invoice with its taxpayer, dates, currency and number of lines.
Step 4: Save Drafts and Validate
Click "Save drafts and validate". The file is saved, each invoice is validated, and its customer is looked up on the Peppol network in the background. You can leave this page and come back later from "Files".
When validation finishes, check the "Peppol network", "Status" and "Details" columns:
- Draft · Ready to send: The invoice is valid and the customer was found on Peppol.
- Invalid draft: Something in the file must be corrected. The "Details" column explains what.
- Recipient not found: The customer isn’t registered on the Peppol network, so the invoice can’t be delivered yet. Check the customer’s identifier, or retry after the customer registers.
- Lookup retry scheduled: The Peppol lookup is temporarily unavailable. The portal retries automatically.
Click "Download errors" to get every problem in a spreadsheet. To start over, select the drafts and click "Discard drafts", fix your file, and import it again.
Step 5: Approve and Send
- Select the invoices that are ready, or click "Select all ready".
- Click "Approve and send".
Each invoice goes to its customer’s provider. When delivery succeeds, its status changes to "Received by access point". Click "View delivery" for details.
Important: An invoice that is in flight or accepted can’t be recalled. To correct an invoice that was sent, issue a credit note.
The sent invoices also appear under Sales > "Invoices" with every other invoice the taxpayer issued, including their delivery and FTA reporting status.
Note: In Sandbox, the "Tax report" column shows "Disabled in Sandbox" because nothing is reported to the FTA.
Frequently Asked Questions
Can I import a CSV file instead of Excel?
Yes. The upload area accepts CSV or Excel files. We recommend the Excel template because it includes dropdowns and notes for every column.
Does importing a file use document credits?
In Live, each successfully processed document uses one credit from your document wallet. Imports in Sandbox are free.
Can one file contain invoices for several taxpayers?
Yes. Enter the correct taxpayer_id on every row.
Comments
0 comments
Please sign in to leave a comment.