Create proof upload link
create_proof_upload_linkGenerate a one-time browser link (URL + QR code) to upload proof documents of EXPLICITLY chosen types to one identity or address, independent of any regulation requirement. Use it for voluntary / preventive uploads and for REPLACING an existing document: uploading a proof type the entity already has automatically replaces the old proof — no delete_proof call is needed. Pass exactly one of identity_id / address_id plus proof_types. The USER opens the link to submit the actual files (documents never travel through the chat). 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. For documents a requirement still demands (and to create verifications), use create_regulation_upload_link 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. | |
| address_id | No | Address UUID the proofs attach to. Pass exactly one of identity_id / address_id. | |
| identity_id | No | Identity UUID the proofs attach to. Pass exactly one of identity_id / address_id. | |
| proof_types | Yes | Proof type names (case-insensitive) or UUIDs — one upload slot opens per listed type. Identity proof types go with identity_id, address proof types with address_id. Uploading a type the entity already has replaces the old proof. |