Set up your Direct Upload field mapping

Last reviewed: 2026-08-27 · Last updated: 2026-08-27

Scope: The Settings screen where you map your own CSV column headings to JomeInvoice fields for direct uploads, including the seven mapping groups and the file-level date settings.

Update: Updated for the live Direct Upload Mapping screen, including multiple mapping templates.

Direct Upload accepts CSV files only, and JomeInvoice has to know which column in your file holds each piece of invoice information. Settings → Workspace Settings → Direct Upload Mapping is where you tell it. The screen describes itself plainly: "Define how columns in your direct-upload CSV files map to system fields, ahead of uploading."

You do this once. After that, every file you export from the same system uploads against the same mapping, and you are not matching columns by hand each time.

You can keep more than one. A workspace can hold several named templates - one per source system, say - with one of them marked Default. The default is what a new upload starts from and what Download CSV Template is built from; you can pick a different one during an upload.

Two of the settings here describe the file as a whole rather than a single column: Date format, and whether your CSV carries one combined date and time column or separate ones. They apply to everything you map, so getting either wrong tends to show up on every row of an upload rather than on one. Set both against a real export before you rely on the mapping.

Do you need this screen?

Most businesses fall into one of three cases.

If this is true for you What to do
You fill in the Download CSV Template file and upload that Still set your mapping up here first. That download is built from your own template, so it only produces the right columns once this screen has been filled in
You export invoices from your own accounting, POS, or billing system, and the file carries your own column headings Set your mapping up here once, then upload
Your invoices reach JomeInvoice through an automated (SFTP) feed Your feed's mapping is agreed and configured with the JomeInvoice team rather than on this screen - see Set up an automated (SFTP) invoice feed. Use this screen for the files you also upload by hand

There is no need to rename anything in your source system. The point of the mapping is that your export can stay exactly as it is.

Where it is, and how it saves

  1. Go to Settings.
  2. Find Workspace Settings, then click View.
  3. Open the Direct Upload Mapping tab.

The tab has your templates listed on the left and the open template's mapping on the right. On the left you can type a New template name and add it, use Import from SFTP config, or delete a template - deleting asks you to confirm, and removes that template's field mappings permanently. On the right are the template's Date format, Set as default template on any template that is not already the default, the seven mapping groups, and the mapping table for whichever group you have open.

Update saves your mapping changes - the screen points at it with Update the mapping here. Nothing you type into the mapping table is saved until you click it.

Date format is the exception: it saves the moment you choose it. There is no need to click Update after changing it, and no way to back out of it except by choosing the previous value again.

Update replaces the template's mapping rather than adding to it. Whatever is on screen when you click it becomes the whole mapping for that template.

If the Direct Upload Mapping tab is not there at all, permissions are the likely reason: the tab is only visible to roles that can view the Import Log, not to everyone who can reach Workspace Settings. See User roles and permissions.

The seven mapping groups

A single CSV row carries several different kinds of information at once, so the mapping is split into groups. Open the group that matches the column you are looking for.

Group The columns it covers
Receipt Mappings The document as a whole - the details that appear once per invoice or receipt
Buyer Mappings The customer the document is issued to
Supplier Mappings The supplier the document comes from
Line Item Mappings The individual lines on the document
Tax Item Mappings The tax detail carried on the document
Shipping Mappings The delivery details
Attribute Mappings Further attributes carried on the document

Each group holds its own table, so a column you cannot find in one is usually in another. Open a group to see exactly which fields it lists.

Inside a group

Each group shows its fields in a table with four columns.

Column What it is
Field Name The field as JomeInvoice knows it, for example Currency Code
CSV Header Name The heading that column has in your own file. This is the part you fill in
Required? Shown as Yes or No against each field
Nullable? Shown as Yes or No against each field

So the work is one line at a time: find the JomeInvoice field, then type your own heading next to it. If your export calls the currency column Doc_Currency, type Doc_Currency into CSV Header Name on the Currency Code row. Copy the heading from your file exactly as it is written there, including capitals, spacing, and underscores.

If you are unsure what Required? and Nullable? should be for your file, ask JomeInvoice before changing them.

A group's fields are laid out in blocks:

  • Main Attributes - the main table of fields for that group.
  • Attributes - further fields, with + Add attribute to add one to the table and a remove control on each row.
  • Custom Fields - a name box and + Add for a field of your own that is not one JomeInvoice already knows.

Custom Fields appear on Receipt Mappings and Line Item Mappings only. The other five groups do not offer them, so a custom buyer, supplier, tax, shipping or attribute field is not something you can add here.

A custom field is carried through and stored on the receipt or line item as extra information. It is never required, and it is not validated the way the fields above it are - so it is not checked, corrected, or sent to LHDN as a field in its own right. Use it for a reference your own team needs to keep, not for anything LHDN has to see.

Getting the dates right

Dates are the single most common thing to get wrong in a CSV, because two systems can write the same day in a different order and neither file looks broken.

Two settings deal with this, and both describe your file rather than one column:

  • Date format - a selector beside the template name. Set it to the format your export actually writes. It saves as soon as you pick it.
  • My CSV has: - a choice between One combined date + time column and Separate date and time columns. Pick the one that matches your export. This one sits inside Receipt Mappings, because that is the group holding the invoice date, so open that group to find it.

For both, open a real export and look at the header row and the first few values rather than going by what the source system is set to display. A wrong choice here affects the whole file, not a single invoice, so it is worth checking before your first upload. If an upload comes back with date problems across the board, this is the first place to look - see Fixing import and upload errors.

If you already run an SFTP feed

An automated feed has its own field mapping, agreed with the JomeInvoice team during onboarding and maintained by us. It is not set up on this screen. See Set up an automated (SFTP) invoice feed.

This screen has an Import from SFTP config action for workspaces in that position. Contact JomeInvoice before using it, particularly if you have already filled in a mapping here.

Your default, and a single upload

What you save here is your default: the mapping every direct upload starts from.

You are not locked into it for a one-off file. During an upload, Edit Mapping gives you two ways to finish: Use for this upload only, which changes nothing saved here, and Set as new default, which saves into the template and replaces what is on this screen.

Set as new default during an upload saves immediately. There is no confirmation step and no undo. For a one-off file, use Use for this upload only.

Both, and the rest of the upload, are covered in Bulk upload invoices.

Which setup is yours

You always export from the same system. Set the mapping up once and leave it. From then on, uploading is the file and nothing else. Come back here only if your export changes - a renamed column, a new field, or a switch to a different date format in the source system.

You upload files from more than one system. Give each source its own named template, and mark the one you upload most often as Default so the common case needs no thought. Pick the right template during the upload for the others. If you would rather not keep several, use Use for this upload only on the review page for the exceptions, which leaves your default alone.

You already run an SFTP feed and also upload by hand. These are two separate routes with two separate mappings. Your feed's mapping is maintained by JomeInvoice; this screen governs the files you upload yourself, so set it up even though the feed is already running. If you want the two to line up, talk to JomeInvoice rather than working from the feed's specification by hand.