Create document upload link
create_regulation_upload_linkGenerate a one-time browser link (URL + QR code) for encrypted document upload. Pass identity_id and/or address_id (+ requirement_id) — the page will show upload slots only for the proofs that are still missing. Pass did_ids to also create the verification automatically when the user submits: purpose "registration" creates an address verification, purpose "emergency" creates an emergency verification. Returns upload_url and qr_code_url (plus qr_svg when qr: "svg" is requested). Priority #1: show upload_url as a clickable link — it always works. The QR lets the user continue on a phone and photograph documents with the camera: offer qr_code_url as a plain link, but do NOT rely on it as a markdown image — some clients (incl. claude.ai) gate external images behind a click. Request qr: "svg" ONLY if your client can render SVG through an HTML/artifact/widget capability; never paste raw SVG markup into plain reply text — chat clients escape it into a wall of code. Files are encrypted in the browser; the server never sees plaintext. The link works once; its lifetime is account-specific — quote expires_in_minutes from the response, never assume a fixed value. After the user says they are done, call check_upload_status with the returned token. If nothing is missing, skip the link and call create_address_verification / create_emergency_verification directly. To upload a document the requirement does NOT demand (voluntary/preventive upload, or replacing an existing document), use the create_proof_upload_link tool instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| qr | No | QR delivery: "url_only" (default) returns qr_code_url only; "svg" additionally includes qr_svg — ~7 KB of inline SVG markup. Request "svg" ONLY when your client can render SVG through an HTML/artifact/widget capability — raw SVG pasted into chat text gets escaped, not rendered. | |
| did_ids | No | DID UUIDs to verify. Presence means the verification is created automatically on upload. All DIDs must share one country and group type. | |
| purpose | No | What the upload is for: "registration" (default, DID address verification) or "emergency" (emergency calling verification). | |
| address_id | No | Address UUID — include to collect missing address proofs. Required when did_ids is passed. | |
| identity_id | No | Identity UUID — include to collect missing identity proofs. | |
| requirement_id | No | Regulation requirement UUID (from list_requirements). Optional when did_ids is passed (then it is derived from the DIDs). | |
| emergency_calling_service_id | No | For purpose "emergency": existing Emergency Calling Service UUID to resubmit the verification for — did_ids is not needed then (omit when verifying new DIDs). |