AY Developer docs
ApiIdentity

Verify a Verifiable Credential (vc+jwt)

Verifies a credential issued by the AY platform or a listed issuer: signature (EdDSA, key resolved from the issuer DID), issuer allowlist, validity window and the Token Status List. Returns one verdict: `valid`, `expired`, `suspended`, `revoked`, `invalid` or `unknown` (`unknown` = a source was unreachable, no verdict). Use it for Agent Passports, BusinessVerificationCredentials and TwinMandateCredentials. No authentication, rate-limited. Never returns key material. TwinMandateCredential (AIOAY-5541): issued by the person, not the platform. `alg` is `ES256` (raw R||S, 64 bytes, RFC 7518 §3.4; DER is `invalid`), `kid` is `<user-did>#key-device` under `assertionMethod`. `iss` must equal the `controller` of the twin DID document (`sub`), otherwise `invalid` with reason `issuer_not_controller`. Status list: `/identity/status-list/mandates`.

POST
/identity/credentials/verify

Verifies a credential issued by the AY platform or a listed issuer: signature (EdDSA, key resolved from the issuer DID), issuer allowlist, validity window and the Token Status List. Returns one verdict: valid, expired, suspended, revoked, invalid or unknown (unknown = a source was unreachable, no verdict). Use it for Agent Passports, BusinessVerificationCredentials and TwinMandateCredentials. No authentication, rate-limited. Never returns key material.

TwinMandateCredential (AIOAY-5541): issued by the person, not the platform. alg is ES256 (raw R||S, 64 bytes, RFC 7518 §3.4; DER is invalid), kid is <user-did>#key-device under assertionMethod. iss must equal the controller of the twin DID document (sub), otherwise invalid with reason issuer_not_controller. Status list: /identity/status-list/mandates.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/identity/credentials/verify" \  -H "Content-Type: application/json" \  -d '{    "jwt": "stringstringstringst"  }'
{  "status": "valid",  "reason": "string",  "checked_at": "2019-08-24T14:15:22Z",  "vct": "string",  "sub": "string",  "iss": "string",  "iat": 0,  "exp": 0,  "status_list": {    "uri": "http://example.com",    "idx": 0  }}