$ORG_TOKEN must be a client-credentials access token. An API key is refused with 400 client_credentials_required.
Read the response
Display fields only, newest card first. The response never includes a card number, and never anything that could decrypt one.Send a link only when empty
An emptydata array means the user has a vault and nothing in it. A 404 means the user is not yours yet, and carries no data at all, so check the status before you read the body:
Handle a user you don’t know
A user id your company has never enrolled is not an empty vault. It is a 404, because there is no user of yours to read:connection_not_found and an empty data array as the same next step.
Keep the modes apart
A sandbox token reads sandbox users, and a production token reads production users. A productionuser_id asked for with sandbox credentials is a connection_not_found 404, not an empty vault, and the message names the mode you asked in.
Learn when a card lands
Point a webhook endpoint at your server and Agentcard tells you when a card lands through a link you minted.vault.card_stored reports the cards Agentcard can attribute to you, not every card the user owns. A user who signs in to the Vault on their own and adds a card, or who adds one after your link’s window closed, stores it successfully and sends you no event. So treat the webhook as a prompt, and the read above as the answer: check the vault when you are about to act for a user, rather than trusting a tally you kept from events.