Skip to content
Menu

Every bill line, checked

Every bill, as CSV, XLSX, PDF or e-invoice, or typed in by hand, is checked against its contract and the inventory, and held in its own currency.

Sample data. A flow of 284,630.50 USD invoiced by 5 providers, allocated through 3 agreements — a group data and a group voice agreement held by the holding company, and the companies' local agreements — to 5 companies; the retail company receives the most, 104,040.17 USD, the property company the least, 19,900.03 USD.
Provider invoices, allocated through agreements to each company, in USD at sample rates.Sample data

Findings

A difference opens a finding

Bill, contract and inventory are compared line by line. Where they disagree, the finding keeps the evidence.

  • Billed, not held

    A service charge that matches no service in the inventory.

  • Held, never billed

    A live service that no bill charged for in the month.

  • Outside the contract

    A recurring charge above or below its contract price, beyond a small tolerance, or a service billed with no contract or outside its term.

  • A dispute, with evidence

    A dispute cites the finding, the bill line or the bill.

How bills arrive

Bills taken in every form

Every path ends in the same checks and the same review. Every bill file is kept exactly as it arrived, and no role can change it.

Forms and a pen on a wooden table
PathHow it reads
UploadCSV, XLSX and PDF files, each recognised by its contents, not by its name. A bill can also be typed in by hand.
Structured e-invoice (UBL 2.1)Read at once, credit notes included, with no mapping question and no model, then checked and reviewed like any other bill.
Provider connectionWhere a provider offers a billing connection, its bills are collected on a schedule and go through the same checks and review as an upload.
Provider portalBills are collected from the portal on a schedule, so the history is kept after the portal drops it.
SFTPFiles a provider leaves on an SFTP drop are collected and read like an upload.
Billing mailboxBills emailed to the group’s billing mailbox are picked up and read like an upload.
Provider readersReaders are added provider by provider, bilingual Arabic and English layouts included, so a known layout needs no mapping question.

The detail

What a bill line carries

It reads
CSV and XLSX through a column mapping that a person confirms once and Riopex reuses for that layout. PDF through the intelligence engine once a group administrator switches it on, each header field with its confidence.
It checks
Each line bound to its service by an identifier, never by a guess. The lines against the bill’s total, and the tax lines against its stated tax.
It keeps
Every bill file exactly as it arrived. No role can change it.
Currencies
A currency with finer units, such as the Kuwaiti dinar, keeps its exact precision. Each amount is held as billed, in the company’s own currency and in the group’s reporting currency, the rate named on each. One sample line, the Kuwait City branch’s link for Sep 2026: 632.420 KWD as billed, 7,565.35 AED in the retail company’s currency at 11.962541 AED per KWD, 2,060.00 USD in the group’s at 0.3070 KWD per USD (sample rates).
Languages
Bilingual invoices, Arabic-Indic digits and the Arabic separators. A Hijri issue date is read, then confirmed by a person.
Tax
Tax rates dated per country, each valid from the day it took effect. A tax charged on top of VAT, outside its base, is held as a rate of its own.
Settlement
Paid, unpaid, on hold, wrong or disputed, on each bill. Statuses are imported from a file for a chosen company.
Order reference
A bill with no order reference opens a finding, which clears once the reference is supplied.
The month
A company’s month moves from open to collecting, soft close and close. Closing locks its figures, and a closed month can be reopened. A later change is a restatement that names its reason: a corrected rate, a corrected bill, a changed allocation or a changed metric.

Reading a PDF

Each field read with its confidence

Reading PDF bills with the intelligence engine is off until a group administrator switches it on.

  • The engine receives only the masked text, never the PDF or its file name
  • A scanned bill is read inside the instance, then masked
  • Each field carries the engine’s confidence
  • Each provider has its own threshold, tuned from people’s corrections
  • An encrypted PDF goes to a person to enter
  • Every bill the engine reads waits for a person
How the engine reads
Sample data. 348 fields read from Provider C's 3 invoices for Sep 2026, by the reading's confidence: 315 at or above the provider's 90 % threshold are read; 33 below it wait for a person, who sees each beside its page.
Each field read from one provider's invoices, by confidence; a field below the provider's threshold waits for a person.Sample data

Shared charges

One charge, split across its companies

A charge the group pays once, such as the head office’s main link, is split by a rule into shares that add up exactly to the whole.

  • Split by a rule you set
  • Shares that add up to the whole
  • A new split can start on a future day
  • A split circuit says so, and links to its rule
Sample data. The head office's 1 Gbps main link, billed to the holding company at 27,176.50 AED in Sep 2026, split across 5 companies: retail company 31.0 %, 8,424.71 AED; logistics company 24.0 %, 6,522.36 AED; holding company 22.0 %, 5,978.83 AED; hospitality company 15.0 %, 4,076.48 AED; property company 8.0 %, 2,174.12 AED.
One link's cost in AED, as billed, split across the companies that use it.Sample data

Money

Every amount in its own currency

The bills list leads with the total billed in the group’s currency, summed from each bill’s recorded conversion.

  • A rate on every figure

    Every converted figure names the rate that produced it, or is not written at all. A bill’s page states its conversion in one sentence, with the rate and its date.

  • Rates never rewritten

    An exchange rate is never changed. A corrected rate is a new record.

  • The group’s own rates

    A group administrator enters the group’s own rate, and the entry is audited. Published reference rates are collected on a schedule beside it.

  • One FX policy

    It sets which rate type leads, which fall back in order and how old a rate may be, with a leading rate of its own for budgets, statutory tie-out and balance items.

  • A month at its own rate

    Each month’s figures are stated at a rate frozen for that month, so a later rate does not quietly change them.

  • Nothing added at par

    A figure with no rate reads “Not converted” and is never added in at par. With no usable rate, a person is asked for one.

How it works

From file to accepted bill

A stack of receipts and invoices
  1. The file lands

    A file is recognised by its contents, not by its name, and kept exactly as it arrived.

  2. Its columns are mapped

    A person confirms a spreadsheet’s column mapping once, and Riopex reuses it for that layout.

  3. Each line finds its service

    A line is bound to a service only by an identifier, never by a guess.

  4. The sums are checked

    The lines must add up to the bill’s total, and the tax lines to its stated tax.

  5. A person reviews the rest

    A Hijri issue date, an unclassified charge or a failed sum opens a review item. The bills list counts every bill waiting on a person.

Questions

Questions about bills

How accurate is the reading?

The engine states how sure it is of each header field it reads, and the fields it is least sure of are marked for checking.

Accuracy on your providers’ invoices is measured in the pilot, on your own documents.

Are our spreadsheets sent to a model?

No. CSV and XLSX bills are never sent to a model. An e-invoice is read at once, with no mapping question and no model.

Can the engine accept a bill on its own?

No. A bill the engine has read always waits for a person, and is never accepted on the engine’s word.

What if the same e-invoice arrives twice?

An e-invoice whose number is already on the same account is refused as a duplicate.

What if there is no direct rate between two currencies?

A fallback rate is never worked out through a third currency. With no usable rate, the figure is left empty and a person is asked for one.

Can we start with PDFs only?

Yes. A pilot starts with three invoices from one company, in whatever form the provider sent them.

Request a pilot

Related

What a bill line joins

Capability

Contracts

Every price a dated line, closed and replaced, never edited, and checked against the bill.

Capability

Inventory

Every service the group pays for. Each import runs as a dry run first, and can be undone as one batch until a carrier confirmation names its services.

Capability

Findings

Each company’s findings re-evaluated every night, each worked on its own page.

Start with one company’s invoices

Three invoices, as the provider sent them, show what Riopex reads.

Request a pilot
People crossing a sunlit city street