Developers · Beta

Payee Check API

Check whether someone who asks for money really represents a public figure. The response never contains personal data beyond the name of the matching representative.

API keys are managed under Dashboard → Trust. See also the Clearance API.

Request

POST /api/v1/payee-check

curl -X POST https://thepersonagrata.com/api/v1/payee-check \
  -H "Authorization: Bearer pgc_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "claimed_pg_id": "PG-7F3A9C",
    "claimed_name": "Maya Laurent",
    "payee": { "name": "Northlight Talent", "email": null, "iban_holder_name": null, "handle": null }
  }'
const res = await fetch('https://thepersonagrata.com/api/v1/payee-check', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.PG_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    claimed_pg_id: 'PG-7F3A9C',
    claimed_name: 'Maya Laurent',
    payee: { name: 'Northlight Talent', email: null, iban_holder_name: null, handle: null },
  }),
})
const check = await res.json()
if (check.result !== 'verified_representative') {
  showWarning(check) // ask your customer to confirm before paying
}

Response

{
  "check_id": "PAY-8K2M4Q7Z",
  "result": "verified_representative",
  "pg_id": "PG-7F3A9C",
  "representative": {
    "type": "agency",
    "name": "Northlight Talent",
    "mandate_scopes": ["negotiate_licenses", "create_proofs"]
  },
  "checked_at": "2026-10-27T10:15:00Z"
}
  • verified_representativeThe payee is the person themselves, or an agency with an active mandate that includes negotiate_licenses.
  • not_a_representativeThe person is a verified member, but the payee matches nobody who represents them.
  • unknownThe person is not a Persona Grata member. Treat as unverified, not as safe.

Errors and limits

  • 400 invalid_requestMissing payee.name, or neither claimed_pg_id nor claimed_name is set.
  • 401 unauthorizedMissing or revoked API key.
  • 429 rate_limitedToo many requests. Retry after the time in the Retry-After header.
  • 500 server_errorSomething went wrong on our side. Retry with backoff.

The same per-key rate limit as the Clearance API applies.

Typical integration

Show a warning to your customer before they confirm a payment to someone claiming to represent a public figure. Call the endpoint when the payee is entered, and if the result is not verified_representative, show a clear warning with the options to cancel or continue. Never block silently, and never treat unknown as safe.

See a sample warning screen