INVOICE PROCESSING

Block Duplicate Invoice Before Stripe Payout

Fingerprints each incoming invoice against your paid-history ledger and halts the Stripe payout when a likely re-submission is detected, alerting AP in Slack for a human decision.

CategoryInvoice Processing
Enginesim
Difficultyintermediate
Triggerwebhook
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerInvoice approved for payment (webhook)HTTP webhook
  • ActionLook up fingerprint in paid-history ledgerPostgreSQLPostgres
  • LogicBranch: duplicate match vs. unique
  • ActionHold payout and alert AP for reviewSlack
  • ActionCreate Stripe payout for unique invoicesStripeStripe
  • OutputWrite fingerprint to paid-history ledgerPostgreSQLPostgres

What it does

This workflow intercepts every invoice queued for payment, builds a deterministic fingerprint from vendor, invoice number, amount, and date, then checks it against a Postgres ledger of already-paid invoices. If the fingerprint matches a prior payment, it blocks the Stripe payout and routes the case to AP instead of letting money go out the door twice.

When to use it

Use this when vendors re-send invoices, when multiple inboxes feed your AP queue, or when a finance migration risks paying the same bill from two systems. It is the last line of defense right before funds move.

How it works

  1. 1A new invoice approved for payment hits the webhook with vendor, number, amount, and due date.
  2. 2The flow normalizes those fields and computes a stable fingerprint hash.
  3. 3It queries the Postgres paid-history ledger for a matching fingerprint.
  4. 4If a match exists, the Stripe payout is held (never created) and the branch diverts to review.
  5. 5AP gets a Slack alert with both invoices side by side to approve or reject.
  6. 6Clean invoices proceed to the Stripe payout and the fingerprint is written back to the ledger.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect HTTP webhookTrigger any URL on agent actions.
  2. 2
    Connect PostgresAny Postgres URL — query, write, migrate.
  3. 3
    Connect StripeCustomers, subscriptions, payments.
  4. 4
    Connect SlackChannels, DMs, threads, mentions.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.