bots4.me

Pay2ERP

User Guide – Getting Payments Matched to Invoices Without Manual Entry

Pay2ERP reads the payment notifications that arrive in your mailbox or through your bank’s API, works out which invoice each one pays, and records the payment in your ERP. Rules do the matching first — amount, reference number, currency, date. AI only steps in on the free-text notifications the rules cannot read. Nothing is ever recorded without being checked against a real open invoice first.

🔗 How Pay2ERP Matches a Payment

Every payment notification — a bank email, a line from Revolut or Wise, or a statement line read straight from your ERP — is reduced to the same handful of facts: amount, currency, value date, and the reference number your customer typed when they paid. Those facts are what get matched against your open invoices, not the wording of the email.

Source format What it is How Pay2ERP reads it
MT940 / MT942SWIFT end-of-day / intraday bank statementStructured. Every credit line becomes one payment automatically — no extraction guesswork.
CAMT.053ISO 20022 XML bank statementStructured, parsed defensively against malformed or oversized XML.
BAI2US bank statement formatStructured, same treatment as the formats above.
OFXOpen Financial ExchangeStructured, same treatment as the formats above.
Revolut / Wise APIDirect account connectionStructured fields arrive already labelled — amount, reference and sender in real time, no email delay.
Free-text emailA bank’s plain-language payment notification50+ patterns across 15+ languages first; AI reads the text only when none of the patterns match.
Pay2ERP is incoming-only. An outgoing (debit) line in any of these formats is silently ignored — only money coming in is ever turned into a payment record. The same underlying bank transaction reaching Pay2ERP twice — say, once by email and once through an ERP statement line — is recognised as one payment and recorded once, not twice.

🔄 How Pay2ERP Works – Visual Flow

📧
Payment Notification
Arrives
🔍
Reference & Amount
Extracted
📋
Matched to Open
Invoice(s)
Payment Recorded
in Your ERP
📊
You Get the
Report

One payment can cover several invoices at once — a customer paying a whole month in one transfer, for example. Pay2ERP works through the combinations of your open invoices until it finds the set that adds up to the amount paid, rather than giving up at the first invoice that does not match alone.

📥 Unmatched Payments – Your Safety Net

When Pay2ERP cannot find a confident match, it does not guess and it does not file the email away where you might miss it. The payment notification stays in your INBOX, marked unread, exactly where any other unread mail would sit — and it is listed in your next report as needing attention.

Once a source is fully processed, matched payment emails move into _Pay2ERP/PROCESSED so your INBOX only shows what still needs a human. Manually pairing an unmatched payment also feeds back into Pay2ERP’s statistical pattern learning, so the same bank’s wording is recognised faster next time.

Duplicates are blocked for 48 hours, not forever. A payment that could not be matched is removed from the duplicate-check list at the end of the run, so it is picked up and retried on the next run rather than being silently skipped for two days.

🚀 Getting Started

  1. Connect a bank email account, or a Revolut / Wise API key, on the dashboard.
  2. Switch Pay2ERP on. It starts in Demo Mode — sample data only, nothing real is touched.
  3. Move to Email Only to see what Pay2ERP extracts from your real inbox — still no connection to your ERP.
  4. Happy with the extraction? Connect your ERP as ERP Read-Only: real invoices are matched, nothing is recorded.
  5. Check a few daily reports. The matches you see are exactly what would be recorded once you go live.
  6. Switch to Production. From that moment, matched payments are recorded in your ERP automatically.

⚙️ Dashboard Settings Reference

Core matching

SettingPlanWhat it does
Collection Payment PairingPersonalMatches incoming payments to outstanding invoices using reference numbers, amounts and customer data. The core of Pay2ERP — on by default.
Generate email reportPersonalSends a report after each processed source. Turning this off does not stop matching — it only stops the email.
Daily exportFamilyGenerates a daily Excel report of all processed payments for accounting review and reconciliation.
AI Company name parsingBusinessUses AI to identify and standardise company names from payment descriptions, so a payment can be matched to unpaid invoices by amount even without a variable symbol.

Document formats read

FormatPlanWhat it does
Email TextPersonalProcess data from the email body text itself.
CSV FilesPersonalProcess data from .csv attachments.
HTMLPersonalProcess data from .html or .htm attachments.
ExcelFamilyProcess data from .xls / .xlsx attachments.
PDF FilesFamilyProcess data from PDF attachments.
WordFamilyProcess data from .doc / .docx attachments.
Scanned PDF FilesBusinessProcess data from image-based (scanned or photographed) PDF attachments using OCR.
Images / PhotosBusinessProcess data from .jpg, .jpeg and .bmp attachments using OCR.
Raster ImagesEnterpriseProcess data from .gif, .tiff, .webp, .eps and .svg attachments using OCR.

A Pre-processing toggle exists in the codebase for consistency with our other mailbox apps, but it is switched off for Pay2ERP: reading a hidden queue folder does not apply to payment import the way it does to order import, so it never appears as an option on your dashboard.

🛡️ Access Levels

Four levels let you build trust at your own pace, each one giving Pay2ERP a little more access than the last.

LevelAccessWhat happens
DemoNoneSample data only, at BOTS4.me/demo. No mailbox, no ERP.
Email OnlyMailboxCaptures and extracts real payments from your inbox, but never touches your ERP.
ERP Read-OnlyMailbox + ERP readMatches payments to real invoices and reports exactly what it would record — writes nothing.
ProductionMailbox + ERP read & writeFull automation: payments are captured, matched, and recorded in your ERP.

📊 Reading the Report

✅ What matched

Every payment recorded this run: which invoice(s), the amount, and the reference it matched on.

⚠️ What needs attention

Payments still sitting unread in your INBOX because nothing matched with confidence — the same list you would open by hand.

📈 The numbers

Processed, sent-to-manual and failed payments, for this month and in total — your running scorecard.

❓ Troubleshooting

What you seeWhat it means
A payment stayed in the INBOX No confident match was found — check that the reference number in the notification actually corresponds to an open invoice, and that the invoice is not already marked paid.
A payment seems to be missing entirely Check the duplicate list first: if the same bank transaction already arrived through another connected source, Pay2ERP recorded it once and correctly ignored the second copy.
Company-name matching is not available AI Company name parsing is a Business-tier feature. Below that tier, payments without a variable symbol wait for manual review.
No daily report arrives Confirm Generate email report is switched on for Pay2ERP on your dashboard.
A scanned or photographed remittance advice was not read Scanned PDFs and photos need the OCR-based formats, which are gated to the Business and Enterprise tiers.

❓ Frequently Asked Questions

What payment sources are supported?

Bank email notifications via IMAP, Gmail, Outlook and Office 365, plus direct API integration with Revolut and Wise. More sources added regularly.

What ERPs does it work with?

OFFERIS and Odoo today, with an extensible adapter system for more. Ask us about yours.

What happens to a payment that cannot be matched?

It stays in your INBOX, unread, and is flagged in the daily report — nothing disappears into a hidden folder. Pairing it yourself teaches Pay2ERP that pattern for next time.

Does it handle one payment covering several invoices?

Yes. Pay2ERP searches combinations of your open invoices for the set that adds up to the amount paid.

How does the AI fallback work?

Rules run first, on every payment. AI is only called when the rules cannot extract a reference from a free-text notification — most payments never reach it.

Can I test without connecting my ERP?

Yes. Email Only mode extracts real payments without touching your ERP; ERP Read-Only goes further and matches against real invoices while writing nothing. First month free.

Does it work with AutoCASH?

Yes. Pay2ERP records the payment; AutoCASH stops reminding for that invoice the moment it does. Together they close the loop on receivables.

Does this use AI? We are not allowed to.

Set AI Mode to Off and no language model is called and nothing is sent to an AI provider. A bank API connection or a structured ERP statement line loses nothing at all — those fields already arrive labelled and are matched by rules alone. Only free-text notification emails in a layout the rules do not recognise need AI. If your compliance team needs it in writing, ask us and we will confirm it for your file.

🔒 What Pay2ERP Will Never Do

  • Contact your customers — that is AutoCASH’s job, not Pay2ERP’s.
  • Record a payment while in Demo, Email Only, or ERP Read-Only mode.
  • Match a payment to an invoice without checking amount and reference against it first.
  • Record the same bank transaction twice, even if it arrives through two different connected sources.
  • Hide an unmatched payment from you — it stays, unread, in your INBOX.
  • Change anything in your ERP beyond marking the matching invoice as paid.