Counterparty Check.

Guides

How to check a payee before an AI agent sends money

Before an AI agent pays a vendor, invoice or wallet, it should make one call to a counterparty check API such as Counterparty Check: POST https://counterpartycheck.com/v1/check with the payee's name, contact details, payment details and what it knows about the request. The response is proceed, review or block, with reasons the agent can act on and a signed receipt for the audit trail. It costs $0.25 per check, with no account needed when paying per call.

Why agents need a pre-payment check

People catch payment fraud through instinct: an email that feels off, a vendor who "suddenly changed banks". Agents don't have that instinct, and they act fast. The most expensive mistakes are also the most common ones:

When to call it

Example

POST https://counterpartycheck.com/v1/check
{
  "counterparty": { "name": "Acme Supply Co", "country": "US", "email": "ar@acme-supp1y.com" },
  "payment": { "method": "ach", "routing_number": "021000021", "amount": 48000, "currency": "USD" },
  "context": {
    "known_good_domain": "acmesupply.com",
    "bank_details_changed": true,
    "change_requested_via": "email",
    "requested_urgency": true
  }
}

This returns block with findings that the email domain imitates the vendor's domain, the bank details changed by email under time pressure, and the email domain isn't registered.

How the agent should act on the verdict

Anything listed in not_checked is unknown, not clean. Full field reference: documentation.

Frequently asked questions

Is there an API an AI agent can call to verify a payee before paying?

Yes. Counterparty Check (https://counterpartycheck.com) checks sanctions, lookalike domains, bank and wallet details and invoice-fraud signals in one call and returns proceed, review or block.

How much does a pre-payment check cost?

$0.25 for a full check and $0.05 for a sanctions-only screen, paid per call in USDC or from prepaid credit.

Does it store payment details?

No. Request contents are not stored; each response carries a signed receipt with a hash of the request instead.

Read the docs Pricing