Your accounting system doesn't want “the data”. It wants its own columns, in its own order, with its own names — or it throws the file back at you. So you tell us the shape once, and everything arrives that way. Money, dates and names included.
Same document, whichever way you want it. Most people start with a spreadsheet because everything eats one, and move on to the direct route once they've seen it work.
You pick the shape and you pick the road. They're separate decisions — the same layout can go out as a file on your server this month and get posted straight in next month, without anyone rebuilding it.
One row per document, or one row per line on it. Whichever way your system counts things.
They're different documents and your system treats them differently, so they get their own layouts. Each keeps its own columns, in its own order, with its own tidying-up rules. Set up as many as you need. (Inside pagesift these are called export profiles — same thing, we just don't think anyone should have to say that out loud.)
Not ours. If your system insists on a column called SUPP_REF sitting third from the left, that's where it goes and that's what it's called. Nothing here needs to look tidy to us.
The order is part of the shape. A file with the right columns in the wrong order is a file that gets rejected, so you say the order once and it holds.
You don't tell it which layout to use. It works out what the document is and uses that document's layout. And if it can't find one, it stops rather than guessing.
Getting a number out of a document is the easy half. The hard half is that your system wants it written its way — and if it isn't, someone opens the file and fixes it by hand. So each column is built up from small steps, and the steps do that work for you.
Every column is built the same way. Most need one step. Some need four.
Pull a value off the document. Clean up the money. Reformat a date. Swap a supplier's name for the code your system knows them by. Add a prefix. Fall back to a default when the document simply hasn't got that field. Force it upper case because something, somewhere, still insists.
Which all adds up to one plain thing: money, dates and names come out looking exactly the way your system expects, so there's nothing to clean up afterwards. No find-and-replace. No column of dates in the wrong order. No Friday afternoon.
A document might print $1,234.56, or 1.234,56, or NZD 1234.56. Your system wants one of those and rejects the rest.
The single most common reason a file gets thrown back. The date is right; it's just written the wrong way round.
The page says a supplier's trading name. Your system only knows them by a code. Somebody has been bridging that gap by hand.
Build a layout against one of your own real documents and look at what comes out. Not a preview of a made-up example with tidy round numbers in it — your document, and the real file that would go out.
You've seen the columns, the order, the dates, the way the money's written. There's no leap of faith between the screen and the file — it's the same file. Keep it.
A date the wrong way round, a code that didn't match. Adjust the step, run it again on the same document, and see it fixed. Nothing has been saved and nothing has been sent.
The old way of finding out a layout is wrong is that a file bounces, three weeks later, at the worst possible moment. You find out now, on a document you already know the right answer to.
Don't want to think about columns? Fair enough. Send us a spreadsheet your system has produced before, along with the document it came from, and we'll build the layout from the pair of them.
It's the easiest brief in the world to get right, because the answer is already in front of us. We're not guessing what your system wants — we're reading a file it has already accepted.
Two files, and about a minute of your time. That's genuinely the whole thing.
Some systems have been running since long before anyone agreed on what a spreadsheet is. They are not flexible, and nobody is going to make them flexible. So we bend instead.
Whatever character sits between the columns, that's the character it gets. It doesn't have to be a comma just because the file ends in .csv.
Quotes around some cells and not others. Quotes around everything except the empty ones. Rules that make sense to nobody except the machine that's waiting for them.
A specific one. Every line. You can't see it, you can't type it by accident, and the receiving system falls over without it.
We reproduce all of that exactly, character for character — because a file that's 99% right isn't 99% accepted. It's rejected, and then it's your morning. If a system out there will only take a file one strange way, that's the way it gets sent.
It picks up exactly where it left off. Your system asks what's new. If a bill was still being read when it last asked, most systems never come back for it — and nobody ever tells you. Here's the gap, and why nothing falls down it.
It arrives. It's a long one, and it's a scan, so reading and checking it properly takes a few minutes. Meanwhile, life goes on.
The 10:00 bill isn't finished being read, so it isn't ready to send, so it doesn't go. Nothing wrong yet. This is where the trap is laid.
It adds up. It's ready to go. But it's stamped 10:00 — that's when it turned up. It's already in the past.
No. The bill says 10:00, and 10:00 is before 10:05. So it's skipped — not delayed, skipped, permanently, and nobody is ever told. That bill is simply not in your books, and the first you hear of it is when the supplier rings.
We don't ask when a document turned up. We track when it became ready — and 10:07 is after 10:05, so it goes. Nothing can fall through that gap, because the gap isn't there.
And if a document gets corrected later — someone spots a line and fixes it — the correction comes through too. You're never left holding the old version while the right one sits here.
Not everything your system wants is printed on the bill. A client code, a region, a branch — things that are simply true of this client, and that your file needs a column for anyway. Keep them as standing values and drop them into any column, exactly like a field off the page. Nobody has to remember to type them in.
Send a person a link to a single document — your accountant, a supplier querying a line. It works for a while, and then it stops. No account for them to make, and no link living forever in somebody's inbox.
That's the quickest way to see this. Send that file and the document it came off, and we'll show you the layout that produces it — on your own paperwork, not a demo one.