POST /v3/users with name, address, date_of_birth, and identifications to create the user; capture user_token from the response
POST /v3/kyc with body { "user_token": "<user_token>" } to submit the user for KYC verification — this is a required explicit step; POST /v3/users does NOT trigger KYC automatically
Capture the KYC token from the POST /kyc response
GET /v3/kyc/{token} to poll or retrieve the KYC result; check the result field for ACCEPTED, FAILURE, or PENDING
On FAILURE or PENDING status, inspect error codes in the response and decide whether to re-submit (allowed up to twice if current status is UNVERIFIED, LIMITED, or ACTIVE)
Optionally POST /v3/user_transitions to update the user's status based on KYC outcome
Known gotchas
POST /v3/users creates the user but never initiates KYC — a separate POST /v3/kyc call is always required; omitting it leaves the user in UNVERIFIED status indefinitely
KYC can only be submitted if the account holder's current KYC status is UNVERIFIED, LIMITED, or ACTIVE; and the account holder may not be resubmitted more than twice
The GET /v3/kyc/{token} path parameter is the KYC token from the POST /kyc response, not the user_token — these are different values
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp