Public API · v0.1 preview

RILLA Verified Payee

A cryptographically signed attestation that a payee (ABN, optionally BSB + account last-4) has been cross-checked by RILLA Shield. Xero, MYOB, banks, and ERP payment approvals can verify the signature before releasing funds — no callback to RILLA required.

Why this exists

Detection alone doesn't prevent payments. This primitive lets any payment surface — bank UI, Xero bill approval, ERP payment run — check a signed fact from RILLA before the money moves. RILLA never touches funds and holds no AFSL exposure; verifiers do the release.

1. Fetch an attestation

GET https://rillashield.app/api/public/attest/payee/{ABN}
        ?bsb=062000&last4=1234   # optional account binding

Response body includes a signed JWT (attestation) plus a non-sensitive summary. Rate-limited to 120 req/min/IP. Cached 60s.

2. Verify the signature

import { jwtVerify, createRemoteJWKSet } from 'jose'

const JWKS = createRemoteJWKSet(
  new URL('https://rillashield.app/api/public/.well-known/jwks.json')
)

const { payload } = await jwtVerify(attestation, JWKS, {
  issuer: 'https://rillashield.app',
  audience: 'urn:rilla:verified-payee',
})

// payload.trust_level === 'verified' | 'known' | 'new'
// payload.trust_score, payload.observations, payload.bsb, payload.account_last4

3. Claim shape

ClaimTypeNotes
issstringAlways https://rillashield.app
audstringAlways urn:rilla:verified-payee
substringabn:{abn}
expintUnix seconds, default TTL 24h
abnstring11-digit ABN, no spaces
namestringLegal/trading name as observed
bsbstring?6 digits, present if account-bound
account_last4string?Last 4 only, never the full number
trust_levelenumverified · known · new
trust_scoreint0–100
observationsintDistinct RILLA tenants who've seen this payee
last_checked_atstringISO 8601 timestamp

4. Refusals (non-200)

Regulatory positioning

RILLA does not hold or move funds. We publish a signed fact. Verifiers make the release decision. No AFSL, AUSTRAC RSP, or PayTo Payment Initiator status required to consume this API — check with your own compliance team for your side of the flow.

Key rotation

Current key: rilla-payee-2026-01 · ES256 · P-256. Rotation announced 30 days ahead at /status. Always resolve the signing key by kid from the JWKS.