Start attested onboarding
Create an onboarding attempt for a phone number you already hold and text the returned wallet_url to the user. No Agentcard account exists yet: the user sees the wallet instantly, and our one-time code fires exactly once, inside our page, at their first money action. You never see or relay the code. Requires the attested-onboarding capability on your organization (ask us to enable it).
The response is identical whether or not the phone already belongs to an Agentcard account.
How it works
You already know your user’s phone number, so assert it: create an attempt and text the returnedwallet_url into your thread. The user taps it and sees
their Agentcard wallet immediately. No account exists yet, nothing was created
beyond the attempt, and no code has been sent.
The one-time code fires exactly once, inside our page, at the user’s first
money action (adding their card, or their first purchase confirmation).
Passing it creates the account, or binds the phone’s existing Agentcard
account, and records the connection for your client. You never see or relay
the code; that is the anti-phishing property of the whole flow.
Then:
- Listen for the
connection.createdwebhook. It carriesuser_id, yourexternal_user_id, andonboarding_attempt_id. - Call the exchange
once to collect the connection token pair, and keep it alive with
POST /api/v2/connect/refresh.
Authorizations
A platform access token. Get one on the Create an access token endpoint by exchanging your client_id + client_secret, then send it as Authorization: Bearer <token>. Tokens live one hour.
Body
Response
The attempt. Text wallet_url to the user; listen for connection.created, then exchange.

