Triggers a manual Payee-pillar rescore of this beneficiary via the Anton Engine. Use this after remediating a data issue (completed verification, resolved an adverse event, updated PII) when you want a fresh verdict before the next payout rather than waiting for the next scheduled evaluation.
The engine response is returned directly so the portal can render the
old vs new score. The merchant-initiated reason is always recorded as
ops_review; no request body is required.
Requires an Idempotency-Key header.
Concurrency and rate limiting are enforced by the engine:
202 Accepted with {"status": "in_flight"} (no retry needed).429 rescore_rate_limited. Honor Retry-After before retrying.409 beneficiary_scoring_locked.404 engine_beneficiary_not_found. Retry after the next
payout, which seeds the profile.501 rescore_not_configured.Documentation Index
Fetch the complete documentation index at: https://docs.antonpayments.com/llms.txt
Use this file to discover all available pages before exploring further.
OAuth 2.0 client_credentials grant (RFC 6749 §4.4) bound to a DPoP keypair (RFC 9449).
Flow (every authenticated /v1 call requires both an access token AND a fresh per-request DPoP proof):
client_id (ant_oc_<env>_<32hex>) and a client_secret (ant_ocs_<env>_<48hex>, shown ONCE). The portal generates an ES256 or Ed25519 DPoP keypair in your browser; you store the private half.POST /oauth/token with Authorization: Basic <client_id:client_secret> and Content-Type: application/x-www-form-urlencoded. Body: grant_type=client_credentials. A DPoP header carrying a proof signed for the token endpoint is required (no ath claim on this proof).Authorization: DPoP <access_token> plus a fresh DPoP: <proof> header on every /v1 request. The proof JWT MUST carry htm (request method), htu (request URL, no query/fragment), iat (within ±60s), jti (unique within 5 min), and ath (SHA-256 of the access token, base64url).Tokens expire in 1 hour in production / staging and 8 hours in sandbox. There are no refresh tokens — call /oauth/token again with your secret. Anton's public signing key is published at /v1/.well-known/jwks.json.
OpenAPI 3.0 has no native DPoP scheme; this declaration plus dpopHeader together convey both the access-token Authorization and the per-request proof header.
Per-request DPoP proof JWT (RFC 9449). MUST accompany the Authorization: DPoP <access_token> header on every protected operation. The proof is signed by the merchant's private DPoP key and carries htm, htu, iat, jti, and ath claims.
Unique key identifying this operation. Sending the same key twice returns the original response instead of creating a duplicate. Keys are retained for 24 hours.
255^ben_[a-zA-Z0-9]+$No request body is required. Any body is ignored.
Rescore completed. The body is the engine's verdict.
Verdict returned by a successful POST /v1/beneficiaries/{id}/rescore.
Carries both the new evaluation and, when available, the previous one
so clients can render old-vs-new score comparisons.
Scale. The new_trust_score / previous_trust_score fields use
the same 0.0–1.0 trust-score convention as
GET /v1/beneficiaries/{id}.trust_score — higher is more trustworthy.
Prefer these fields on merchant-facing surfaces.
new_score / previous_score are the engine's raw 0–1000 Payee-pillar
risk integers and are deprecated — they remain on the response for
backward compatibility and ops-audit use and will be removed in a
future release.
The engine scoring pillar that was recomputed. Merchant rescores are always Payee-pillar.
payee The beneficiary ID this verdict applies to.
^ben_[a-zA-Z0-9]+$Engine evaluation ID for the rescore run. Persistent — can be used to correlate with the engine's audit trail.
Normalized trust score for the rescore run, on the same 0.0–1.0
scale as GET /v1/beneficiaries/{id}.trust_score. Higher is more
trustworthy. Derived from the raw Payee-pillar risk integer as
trust = (1000 - raw_risk) / 1000. Always present on a successful
rescore response.
0 <= x <= 1Deprecated. The engine's raw 0–1000 Payee-pillar risk integer
for the rescore run (lower is more trustworthy — the inverse of the
merchant trust score). Use new_trust_score instead; this field
will be removed in a future release.
0 <= x <= 1000Bucketed tier for the rescore (see trust_tier on the beneficiary resource).
CRITICAL, HIGH, MEDIUM, LOW Engine evaluation ID of the prior evaluation, if any. Omitted when this is the first evaluation for the beneficiary.
Normalized trust score from the prior evaluation, on the same
0.0–1.0 scale as new_trust_score. Omitted when there was no
prior evaluation (distinguishable from a legitimate prior of
exactly 0.0 or 1.0).
0 <= x <= 1Deprecated. Prior engine raw 0–1000 Payee-pillar risk integer,
if any. Nullable (not omitted) so a legitimate prior score of 0
is distinguishable from "no previous evaluation." Use
previous_trust_score instead; this field will be removed in a
future release.
0 <= x <= 1000Prior tier, if any. Omitted when there was no prior evaluation.
CRITICAL, HIGH, MEDIUM, LOW