thinkhard.SI

Prompt repository Finance & accounting

Find duplicate and suspicious payments in an accounts payable export

You want to catch bills paid twice, near-duplicate suppliers and other red flags in your accounts payable data before the money is gone.

Registry no.
FIN-031
Collection
Finance & accounting
Laid out for
Any chat model
Score
10 out of 10
Blanks to fill
7
Added

Finance & accountingAny chat

The prompt

Score 10 of 10, Excellent

Use it when You want to catch bills paid twice, near-duplicate suppliers and other red flags in your accounts payable data before the money is gone.

  • {{reviewer}}
  • {{deadline}}
  • {{ap_export}}
  • {{column_notes}}
  • {{vendor_master}}
  • {{payment_rules}}
  • {{day_window}}
Full prompt and why it works
Prompt
Review the accounts payable data below for possible duplicate payments and other entries that need a second look, for {{reviewer}}, so they can check each one against the source documents before {{deadline}}.

Payments or invoices export:
"""
{{ap_export}}
"""

What each column means: {{column_notes}}

Supplier master list, if available (names, IDs, bank details, recent changes):
"""
{{vendor_master}}
"""

Our approval limits and payment rules: {{payment_rules}}

Look for:
1. Likely duplicates: the same supplier and amount within {{day_window}} days; the same invoice number paid more than once, including near matches such as a missing prefix, an added hyphen or two digits swapped; the same amount and date under two supplier records that look like one business.
2. Supplier issues: near-identical supplier names, the same bank details under different names, and payments to a supplier not on the master list.
3. Control flags: payments just under an approval limit, round-number payments with no invoice number, invoices dated after their payment, and payment dates on days our rules say payments do not run.

Return a table with the columns Flag, Rows (the row numbers or IDs involved), Supplier, Amount, Date, Reason flagged, What to check (the document or person that settles it), Likelihood (high, medium or low). Sort by likelihood, then by amount. After the table, give the number of flags and the total amount in high-likelihood flags, showing the sum.

For example, one row might read: "3 | rows 118 and 241 | [supplier as written] | 4,950.00 | both on the 12th | same amount, invoice number differs only by a hyphen | both invoice PDFs | high". This example shows the form only.

Use only the rows in the export, and quote identifiers exactly as they appear so the reviewer can find them. A flag is a reason to check, not a finding: do not call anything fraud or an error, and do not name an employee as responsible, because most flags turn out to have an ordinary explanation. Recurring payments that match by design, such as rent or subscriptions, are not duplicates; list them once under "Matched but likely recurring" so the reviewer can confirm. Keep the text outside the table under 200 words. A good review gives the reviewer a short list they can clear in one sitting, with the strongest flags first.

If a column needed for a check, such as invoice number or bank details, is missing, say which checks you could not run instead of skipping them silently.

Variables

{{reviewer}}
Who will check the flags, for example "the AP supervisor" or "our external accountant".
{{deadline}}
When the review must be done, for example "Friday's payment run".
{{ap_export}}
The payments or invoices export: supplier, invoice number, invoice date, payment date, amount, approver, with row numbers or IDs.
{{column_notes}}
Anything unclear about the columns, for example "Ref is our internal ID, not the supplier's invoice number". Write "none" if they are clear.
{{vendor_master}}
Your supplier list with IDs and bank details, and any recent changes. Write "none" if you do not have it.
{{payment_rules}}
Approval limits and payment days, for example "over 5,000 needs the director; payments run Tuesdays and Thursdays".
{{day_window}}
How close together two matching payments must be to flag, for example 30.

Why it works

  • What to avoid. Every flag is a reason to check, never an accusation, and no employee is named, because most flags have an ordinary explanation.
  • If unsure. Checks that could not run because a column is missing are named, so a clean result is never mistaken for a full one.
  • Format. Each flag carries the exact rows and the document that settles it, so the reviewer can clear the list without redoing the search.

How to use it

  1. Press Fill in variables and type your details into each blank. What you type stays in this browser.
  2. Copy the filled prompt into the AI tool you already use, such as ChatGPT, Claude or Gemini, or open it in the Grader or the Prompt Tester here.
  3. Before you rely on it, try it on three or four real examples. The Prompt Tester runs them all at once and shows which ones go wrong.
Use it from code

Get this prompt as JSON from the free REST API, with your own text in the blanks, or let an AI assistant fetch it through the MCP server. No key.

curl -s https://thinkhard.si/api/v1/prompts/duplicate-payments-ap-review

With the MCP server added to Claude, ChatGPT, Cursor or VS Code, call get_prompt with {"prompt": "duplicate-payments-ap-review"}, or just ask for it by name.