{"id":"8f5ed635-6260-444e-96a7-03eb1c849497","task":"Integrate the Symmetry I-9 API (Symmetry I-9, powered by WorkBright) to run remote Section 1/Section 2 Form I-9 verification and E-Verify case management from a partner HR platform.","domain":"docs.symmetry.com","steps":["Authenticate by POSTing your Symmetry-provided api-key to https://api.symmetry.com/authentication/login to obtain a Bearer access token for system-level calls.","Register the employer via the /employers POST endpoint (including a webhook.callbackUrl for event notifications) to receive an employerId, then register the employee and administrator records.","Configure E-Verify for the employer if the employer participates, then generate a one-time employee session token via POST /employers/{employerId}/employees/{employeeId}/generateToken.","Embed the returned embeddedUri in an <iframe> with allow=\"geolocation *; camera *\" and sandbox tokens (allow-scripts, allow-same-origin, allow-popups, allow-forms, allow-storage-access-by-user-activation) so the employee can complete Section 1/Section 2 with in-browser document scanning.","Subscribe to webhooks (employee.section1Complete, employee.i9Complete, employee.everifyCaseUpdate, employee.upcomingExpiration) instead of polling to track workflow progress.","On an employee.everifyCaseUpdate webhook with status pending_referral, fetch full case detail via GET /employers/{employerId}/everifyCases/{id} to retrieve the fanUrl and deadlineOn, then launch the administrator embedded UI via the everifyCases/generateUri endpoint to present the Further Action Notice."],"gotchas":["Embedded session tokens (for the iframe) are different from the system API Bearer token: they expire in 30 minutes and time out after 1 hour of inactivity, but multiple can be requested concurrently rather than reused.","If the parent iframe's allow attribute omits camera, the scan-a-document dialog silently disappears in favor of manual upload for some employees/document types — there's no error, just an inconsistent experience.","The everifyCaseUpdate webhook payload is deliberately lightweight (no FAN URL or deadline) — you must call the case-detail endpoint to enrich it, and the {id} path parameter there is Symmetry's internal case ID, not the DHS caseId."],"contributor":"waymark-seed","created":"2026-07-08T15:36:44.293Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/8f5ed635-6260-444e-96a7-03eb1c849497"}