Don't type personal details, such as a client's name.
Document Storage & Photo Automation
Collect visa photos and passport scans from your clients through the intake link, validate them as they're uploaded, and let the agent submit the photo to the official DS-160 portal automatically.
Every DS-160 form has three document slots — an application photo, a passport scan and an optional US visa. You and your clients can manage them through the dashboard or the client intake link, and when a submission runs, the agent uploads the photo to the State Department’s Photo Submission System automatically.
1. Document slots
| Slot | Wire name | Format | Size limit | Used by |
|---|---|---|---|---|
| Application photo | applicationPhoto | JPEG | 240 KB | The agent uploads this to DS-160 |
| Passport scan | passportScan | JPEG, PNG, or PDF | 30 MB | Kept on file; can fill answers (§4) |
| US visa | usVisa | JPEG, PNG, or PDF | 30 MB | Kept on file; ask for it on renewals |
Each form holds at most one active document per slot. Uploading a new one soft-deletes the previous version — the file is removed from object storage, the metadata stays for the audit trail.
The 240 KB / JPEG-only limit on the application photo is the strict DS-160 spec. If you turn on lenient photo upload (see Allowing any photo), the slot accepts the same formats and 30 MB ceiling as the passport scan.
2. Where clients upload
When you generate a client intake link, the client sees a Documents step as the first section of the questionnaire. They can:
- Drop or pick a file for each slot
- See validation results in-line (size, format, basic biometric checks for the photo)
- Replace or delete what they’ve uploaded
- Continue completing the questionnaire while documents are still missing — uploads are independent of the rest of the form
The client never sees a storage URL or any agency credentials. Authentication is scoped to their intake token; uploads from one client link can’t touch documents on another form.
3. Application photo — what we check
The photo runs through the same validator that powers the public US Visa Photo Checker. By default these are hard rejections — the upload fails (to accept any photo and turn them into warnings instead, see Allowing any photo):
- File is not a JPEG, or is outside 10 KB – 240 KB
- Pixel dimensions outside 600×600 – 1200×1200, or aspect ratio is not square
- Image is not sRGB / 24-bit color
- JPEG compression ratio above 20:1 (over-compressed)
- Background is not mostly white / off-white
- No face detected, multiple faces, head outside 50–69% of the image height, eyes closed, or a profile shot (when face detection is enabled)
Advisory warnings (the upload succeeds, but the client sees a heads-up):
- Image is not 300 DPI — only required for printed photos (DS-260 immigrant visa, in-person interview); not enforced for digital DS-160 uploads
- Image would print at a size other than 2×2 inches — same context as DPI
- EXIF metadata suggests the photo may be older than six months
- Image is saved as a progressive JPEG
- Photo appears under- or over-exposed, or has unusually low contrast
- Face is not centered in the frame
The warning text is translated into the client’s selected language; you’ll see the same text in their language in the audit log.
Allowing any photo (lenient upload)
The strict checks above stop a client from uploading anything that doesn’t match the exact DS-160 photo spec. That’s the right default for self-service, but it frustrates clients whose phone photos aren’t square, are too large, or have a busy background — and they end up emailing you the photo instead. If you’d rather collect any photo and fix it yourself before submission, turn on lenient photo upload:
- Per workspace — Workspace → Settings → Client intake → Allow any photo upload. This becomes the default for every new client link.
- Per client link — the same toggle appears when you generate a link, pre-filled from the workspace default, so you can override it for an individual client.
When lenient upload is on, the application photo is gated like the passport scan — any JPEG, PNG, or PDF up to 30 MB is accepted — and every shape/biometric check above is downgraded to an advisory warning. The client (and you, in the audit log) still see exactly what’s off, but the upload succeeds and they can keep going.
Lenient mode only changes what the client intake link accepts. A photo that fails the checks still has to be replaced, or acknowledged with a tick box, before a submission starts (see E-Filing the DS-160), and the State Department’s own photo system still validates the image when the agent uploads it (see §6). Use lenient mode when you intend to review or replace the photo yourself before the agent runs.
4. Passport scan — what we check
The validator only looks at file shape:
- Detected MIME type (via magic-byte sniff, not just the extension) is JPEG, PNG, or PDF
- Size is at or below 30 MB
- File is not empty
There are no biometric checks, and nothing is extracted from the scan when it is uploaded.
Filling answers from the passport
In a business workspace, the passport scan’s row in the form’s Documents section (its first section) has a Fill answers from passport button, and the same button sits at the top of the personal and passport sections once a scan is on file. It extracts the details on the photo page and proposes answers for up to 13 questions: surnames, given names, sex, date and city of birth (and country of birth, where the passport prints one), nationality, passport type and number, the issuing country, the city and date of issue, and the expiry date.
- Nothing is extracted until you click Fill answers from passport. The scan is then sent to Google Gemini for extraction, which takes about ten seconds.
- Nothing on the form changes until you apply. Each proposal sits beside the form’s current answer. Questions with no answer yet are ticked; an answer the passport would change is shown but not ticked.
- Checked against the code lines means the value comes from the two lines of code along the bottom of the photo page, its check digit matched, and the printed page agrees. From the printed page: check it means it was taken from the printed page alone (the issue date and places have no check digit), so compare it with the scan.
- A value is never proposed when its check digit fails, when the code lines and the printed page disagree, or when it is not a valid answer to the question (the expiry date of an expired passport, for example). Those are listed under Not filled from the passport, with the reason.
- Names are written the way the DS-160 accepts them: letters and single spaces, accents dropped, hyphens as spaces.
Each extraction and every answer applied from it are recorded in the form’s Change History (§7), marked From passport scan. A workspace can make up to 100 passport extractions a day; extracting from the same scan again does not count, as what was extracted is kept for 30 days (or until the scan is deleted or replaced). Clients have the same button on their client link, once they upload a scan; their extractions appear in the Change History as theirs and count towards the workspace’s 100 a day.
5. Storage
Documents are encrypted at rest.
Deleting a document — or replacing it with a new upload — removes the file from storage immediately. We keep a metadata row for the audit log, but the file itself is gone the moment you confirm the delete.
6. Automated photo upload
When a submission runs with an application photo on the form, the agent uploads it to the State Department’s Photo Submission System itself. Two steps in the submission’s progress table cover it:
- Upload Photo — the agent sends the JPEG to the State Department’s photo system and waits for its quality check.
- Confirm Photo — the agent returns to the DS-160 and continues past the Confirm Photo page.
The agent reads the photo when the submission starts. A photo added to the form after that is not used: start a new submission. If the photo will be taken in person at an Applicant Service Centre, both steps are skipped. If there is no usable photo, the agent fills in the rest of the application and stops before signing, as Photo needed: see what to do.
When the State Department rejects the photo
The State Department’s quality check occasionally rejects a photo that passed ours: we are stricter on file shape, it is stricter on some biometric edge cases. The Upload Photo step then fails with the State Department’s own message, so you can tell whether to ask the client for a new photo.
7. Change history
Every upload, replacement and deletion is recorded in the form’s Change History, on its overview, beside the questionnaire’s answers: which slot, who did it (the client through their link, or a member of your team), when, and the new file’s name and size. So is each extraction from the passport scan, and who asked for it.
