Invoices

{{ toast }}

Invoices

No batches match “{{ batchPicker.q }}”.
{{ bills.length }} invoice{{ bills.length===1?'':'s' }}
{{ selectedBatch.fileName || ('Batch #'+selectedBatch.fileId) }} from {{ selectedBatch.supplierName }} uploaded {{ fmt(selectedBatch.uploadDate) }} {{ selectedBatch.totalInvoices }} invoice{{ Number(selectedBatch.totalInvoices)===1?'':'s' }} ${{ money(selectedBatch.totalAmount) }} total {{ selectedBatch.paidCount||0 }} paid · ${{ money(selectedBatch.paidAmount) }}
{{ selected.length }} selected
Loading your bills…
This can take a few seconds the first time.
{{ payTargets.length===1 ? 'Pay bill' : ('Pay '+payTargets.length+' bills') }}
{{ surchargePending || quoteLoading ? '$'+money(payAmount) : '$'+moneyC(quote.totalCents) }}
{{ payTargets.length===1 ? (payTargets[0].invoiceNumber||('bill #'+bid(payTargets[0]))) : (payTargets.length+' selected bills') }}
{{ payTargets.length>1 ? ('Queueing '+payTargets.length+' payments…') : 'Processing payment…' }}
{{ payTargets.length>1 ? 'Setting up the payment batch — please don’t close this window.' : 'Contacting the payment gateway — please don’t close this window.' }}
{{ payResult.title }}
{{ payResult.message }}
{{ payResult.hrefLabel }}
Payment method
Bills ({{ payTargets.length }})${{ money(payAmount) }}
Processing Fee {{ surchargePending ? 'shown after authorising' : (quoteLoading ? '…' : '$'+moneyC(quote.surchargeCents)) }}
Total {{ surchargePending ? '—' : (quoteLoading ? '…' : '$'+moneyC(quote.totalCents)) }}
{{ cardDisplay || '•••• •••• •••• ••••' }}
Card holder
{{ card.cardHolderName || 'Your name' }}
Expires
{{ card.expiry || 'MM/YY' }}

That card number doesn’t look right.

Encrypted & tokenised. New cards are verified with 3-D Secure at payment.
WEX EnCompass · Virtual
5313 •••• •••• ••••
Single use · issued on payment
A single-use Mastercard, funded by WEX EnCompass, is issued and charged automatically — nothing to enter.
A single-use eNett virtual card is issued and charged automatically — nothing to enter.

Authorise with {{ methodLabel(method) }} — we read the card type to show its processing fee before charging. Your authorisation covers only this payment.

Contacting Google Pay…
{{ walletCardLabel }} authorised. Change
{{ walletError }}
Advanced / testing (paste wallet payload)
{{ footerHint }}
Authorise bills
${{ authConfirm.total.toLocaleString('en-AU',{minimumFractionDigits:2,maximumFractionDigits:2}) }}
You are authorising {{ authConfirm.count }} bill{{ authConfirm.count===1?'':'s' }} totalling the amount above.

Authorising approves these bills for payment — no money moves until they are paid. Processing fees are added at payment time.

Authorise from file
${{ authMoney(authFile.total) }}
{{ authFile.name }} 
Read as
{{ authFile.formatName }}
PIINS refInvoice #SupplierAgentDueAmount
{{ row.piinsReference || row.identifier }} {{ row.invoiceNumber || '—' }} {{ row.supplierName || '—' }} {{ row.agentName || '—' }} {{ row.dueDate }} ${{ authMoney(row.amount) }}
Reference in file File amount Bill Bill total Why
{{ er.identifier }} {{ er.hasFileAmount ? '$'+authMoney(er.fileAmount) : '—' }} {{ er.piinsReference }} {{ er.invoiceNumber }} {{ er.billAmount ? '$'+authMoney(er.billAmount) : '—' }} {{ er.reason }}

{{ authFile.tab==='ready' ? 'No bills in this file can be authorised.' : 'Nothing in this group.' }}

{{ authFileTabNote }}

Dispute invoice
{{ disputeTarget.invoiceNumber || ('Invoice #'+disputeTarget.invoiceId) }} — ${{ money(disputeTarget.totalAmount) }}
A dispute is already active for this invoice. Open in Disputes

{{ detail.invoiceNumber || ('Invoice #'+detail.invoiceId) }} {{ detail.internalInvoiceNumber }} {{ detail.paymentStatus || 'PENDING' }}

⚠ Possible duplicate bill — another invoice from this supplier has the same invoice number {{ detail.invoiceNumber }}. Check you are not paying this bill twice.
Why it failed
{{ detail.lastFailureReason }}
PAYMENT
Method
{{ methodLabel(detail.paymentMethod) }}
Amount
${{ money(detail.totalAmount) }}
Processing Fee
${{ money(detail.surcharge||0) }}
Total
${{ money(Number(detail.totalAmount||0)+Number(detail.surcharge||0)) }}
Reference
{{ detail.paymentReference || '—' }}
Paid at
{{ fmt(detail.paymentDate) }}
CARD
Card
{{ detail.cardNumber || '—' }}
Type
{{ cardTypeLabel(detail.cardType) }}
GENERATED VIRTUAL CARD WEX Test — not charged
Card number
{{ detail.testVanNumber }}
Expiry
{{ detail.testVanExpiry }}
VAN reference
{{ detail.vanReference }}
Funded by
{{ detail.vanProvider==='ENCOMPASS' ? 'WEX EnCompass' : (detail.vanProvider==='ENETT' ? 'eNett' : '—') }}
Card holder
{{ detail.testVanHolder }}
PAID TO (SUPPLIER ACCOUNT)
Account name
{{ detail.bankAccountName || '—' }}
BSB / Account
{{ detail.bankBsb || '—' }} {{ detail.bankAccountNumber }}
Bank reference
{{ detail.bankReference || '—' }}
INVOICE & PARTIES
Invoice
{{ detail.invoiceNumber || '—' }}
piins ref
{{ detail.internalInvoiceNumber }}
Invoice date
{{ fmt(detail.invoiceDate) }}
Due date
{{ fmt(detail.dueDate) }}
Delivery
{{ detail.deliveryStatus || '—' }}
Supplier
{{ detail.supplierName || '—' }}
Account ID
{{ detail.accountId || '—' }}
Agent
{{ detail.agentName || '—' }}
Agent company
{{ detail.agentCompany || '—' }}
Sub-company
{{ detail.brandName || '—' }}
HISTORY
Loading history…
  1. {{ e.title }} — {{ e.actor }}
    {{ e.detail }}
    {{ fmt(e.timestamp) }}
No events recorded yet.
Move to sub-company

Moving this bill also registers its account with the sub-company — future invoices for the same account will go there automatically.

LINE ITEMS ({{ detail.lineItems.length }})
DescriptionQtyUnitTotalBSBAccountABNIdentifier
{{ li.description }}{{ li.quantity }} ${{ money(li.unitPrice) }}${{ money(li.totalAmount) }} {{ li.bsb || '—' }} {{ li.accountNumber || '—' }} {{ li.abn || '—' }} {{ li.uniqueIdentifier || '—' }}
ADDITIONAL INVOICE DETAILS
{{ formatMetaKey(key) }} {{ billMetadata[key] }}
No fields selected — use “Show / hide fields” to choose which details to display.
Dispute
A dispute is active for this invoice. Open in Disputes
Invoice PDF

Show / hide fields {{ visibleMetaKeys.length }} / {{ orderedMetaKeys.length }}

Choose which details to display

Duplicates of invoice {{ dups.invoiceNumber }} this bill: {{ dups.anchorRef }}

Other invoices from the same supplier carrying invoice number {{ dups.invoiceNumber }}. Each PIINS reference is a separate bill — if these are copies of the same charge, pay only one and dispute or ignore the rest.

Loading…