An online passport photo business sells a file for an application, a sheet the customer prints, or paper you mail. Shopify checkout is the familiar part. The shop is real when the crop and background match the document, and a bad portrait is sent back for another photo.
The passport and ID photo API does that production step. It crops and sizes one portrait to a country specification, applies that specification’s background, returns issue codes for a retake, and can return a print sheet in the same call. idphoto.ai also provides a ready-made Shopify store template for a passport photo business, and one-click setup that launches it on Shopify. Email support@idphoto.ai for the template, the setup, and an API key. Below is how to run the shop: what to sell, how an order moves, which documents to list, and which sentences stay off the page.
Three products, priced from your own costs
Shoppers buy a deliverable. Name it on the product, and keep the three formats as separate variants so the price matches the work.
| What you sell | What the customer receives | What you have to price |
|---|---|---|
| Digital photo | A JPEG for one document. For a UK online passport, also a photo code. | Processing, payment fees, and the retakes you include. No paper. |
| Print sheet | The same photo laid out for printing at home or at a local printer. | The digital file, plus the sheet and a short note on how to print it. |
| Mailed prints | Paper posted to an address. | Printing, packaging, and postage for the countries you actually ship to. |
The digital photo is one portrait sent to the Passport Photo API with one specCode. The JPEG comes back at that specification’s size and background. For a UK passport on GOV.UK, also return a photo code the applicant types into the application. HM Passport Office retrieves the JPEG and checks it. That path is the UK passport photo code API. The code is not an acceptance decision, and many UK orders never need paper.
The print sheet is the same call plus a layout. photoSheet.sheetSizes takes up to 10 sizes, each width*height in pixels. The documented example is 1800*1200, and the response maps each size to a URL. Details are on the print and mailing page. Say on the variant that the customer prints the sheet.
Mailed prints add paper you post. The API returns the photo and optional sheet URLs. It does not take an address, a carrier, or a delivery time. Charge for postage only after you have priced printing, packaging, and stamps for the countries you will ship, or after support has confirmed coverage, timing, and price in writing. Leave same-day shipping off the page until then.
Price each variant from those costs. This article does not name a figure, because payment fees, retakes, print, and postage differ by shop. State how many retakes are included and stop there. If they still produce nothing you can deliver, refund the unfulfilled order. Keep postage off the digital and sheet variants.
Make the document the product and the format the option under it. A US passport file and a Schengen visa file are different. A higher price can buy the sheet or the mailer. It cannot buy an acceptance decision, so leave any “guarantee” tier off the menu.
From upload to a file the customer can use
Every document follows the same path. Only the specification changes.
- They choose the country and the document. The product maps that pair to one
specCode. The API does not accept a country name in place of the code. - They see a capture checklist: one person, in color, face in focus, even light, head upright, both shoulders in frame. Use the common mistakes guide.
- They upload one portrait.
- The store sends it with the spec code. The API crops, sizes, and applies the specification background. Call background removal only when you need a transparent PNG first. That cutout is not a passport photo until a spec code is applied.
- If
issuesis not empty, show one plain-language retake instruction. Do not show the raw code, and do not deliver. - If the checks report nothing, deliver the JPEG, the UK photo code when that is the product, the print sheet, or a mailed print you release only after that same check.
Hold the clean file until handover. POST /v2/makeIdPhotoWatermark returns a preview and a photoUuid. After the customer confirms, POST /v2/getIdPhotoNoWatermark returns the file without the watermark. Both calls use the same regional host, and the order should store photoUuid. That sequence is in how to add passport photo capture to your app. Call POST /v2/makeIdPhoto directly when you want the final JPEG at once, such as a mailed order you are about to print.
Keep the API key and secret on the server, not in the theme or in an order note. A portrait is personal data. The data privacy policy describes encrypted transmission and temporary URL storage from 2 hours to 14 days, so copy the JPEG into the order’s own delivery if the customer needs it longer. A UK photo code from this API stays retrievable for 21 days, which is our hosting period. GOV.UK separately expects a photograph from the last month. Confirm that on GOV.UK’s photo guidance.
What the template includes, and what one click launches
idphoto.ai provides a ready-made Shopify store template for a passport photo business, and one-click setup that launches it on Shopify. At a general level the template is the storefront for the flow above. A shopper chooses a passport or visa photo, uploads a portrait, and receives a digital file or a print sheet from the API, with a retake when issue codes say the capture will not do. You are not opening an empty theme and inventing a product type.
One click launches the template on your Shopify store. You still set the first documents, the prices, the refund wording, where you will mail, and the sentences on each page. Email support@idphoto.ai with that list. The template is not a public app-store install. A travel desk that later outgrows single checkout uses the same API one portrait at a time, as the batch ID photo page describes.
Countries and documents, through spec codes
A country on your menu is a specCode you have fetched and described accurately. The spec code reference documents 150+ specifications, covering pixel size, physical size, DPI, background, head-size guidance, and file size where the spec publishes them. POST /v2/listIdPhotoSpecCode is the list on your account. POST /v2/getIdPhotoSpec is one code’s detail. That sample is not a catalog already loaded into the template.
Codes in the sample include us-passport, us-visa, uk-passport, schengen-visa, canada-passport, india-visa, and china-visa. uk-digital-passport is documented when a photo code is returned. uk-passport and uk-passport2 are both listed, and they are not aliases. Confirm the live code before you attach it to a product. An unknown code returns ISSUE_PHOTO_SPEC_NOT_EXIST, which is a configuration problem: tell the customer the photo could not be prepared, and fix the product.
The published us-passport example is 2 × 2 inches, 600 × 600 pixels, 300 DPI, a white background, a neutral expression, and no glasses. The UK size used with photo codes is 35 × 45 mm. Read the live spec before you print either figure on a sales page. Mapping visa photo requirements by country walks through one code per document: a US visa is separate from a US passport, and a Schengen short-stay visa is often schengen-visa even for a trip to France or Spain. Open with the documents customers ask for, and add a country only when its page states size, background, and glasses from the current spec. Support can add a missing specification.
Retakes, refunds, and when to hold the file
Stalled orders are usually capture problems. The issue code reference is the contract. Show the customer one sentence, and keep the raw code on the order.
ISSUE_FACE_NOT_FOUND— one person, face fully visible.ISSUE_PHOTO_SHARPNESS_BAD— a steadier photo, before you mention framing.ISSUE_HEAD_YAW_OVER_THRESHOLDorISSUE_HEAD_PITCH_OVER_THRESHOLD— face the camera, head upright.ISSUE_EXPRESSION_NOT_NEUTRAL— closed mouth, relaxed face.ISSUE_EYEGLASSES_NOT_ALLOWEDorISSUE_EYEGLASSES_REFLECTION— glasses off where the spec refuses them, or a change of light if the lenses glare.ISSUE_FACE_LIGHT_NOT_BALANCEorISSUE_FACE_BRIGHTNESS_BAD— even light, no bright window behind them.ISSUE_BOTTOM_NOT_FULL,ISSUE_LEFT_NOT_FULL, orISSUE_RIGHT_NOT_FULL— step back so both shoulders are in the source.ISSUE_NOT_IN_COLOR— an original color photo.
When several codes return, lead with the one that forces a new photo. While issues is not empty, hold the JPEG, hold any UK photo code, and do not print. A sheet can arrive beside issues, so read the array before you spend ink or postage. Allow uploads up to the number you priced in. If they still do not clear, refund the unfulfilled order.
An empty array means those checks reported nothing. It is not a letter from a passport office. If an authority later rejects a file you delivered, offer another capture under the policy you wrote, and keep the spec code and the issue list on the order.
Refund a mailed order you have not posted. If the envelope has gone, say in your policy whether unused postage comes back. The API has no postage field. The same hold-before-release rule, at a counter, is the studio and pharmacy photo-code workflow.
Search and marketing for the store
People find this shop by the document name. Give each document its own URL, titled the way they search: “US passport photo online,” “UK passport photo,” “Schengen visa photo.” Say in the first paragraph whether they get a digital file, a print sheet, or a mailed print. Put size, background, and the glasses rule on the page from the spec you fetched and from the official guidance, and link that official page.
Link the products from one hub. Cross-link US passport and US visa and say they are different files. On the UK page, say the applicant enters the photo code on GOV.UK, that HM Passport Office retrieves and checks the photo, and that codes from this API stay retrievable for 21 days. A short FAQ on each product should cover the upload, the deliverable, how many retakes are included, how long the download lasts, and the line that the issuer still reviews the photo.
Add a city page only where you mail or keep a counter. On the home page, name a few documents and show the upload. Photograph the crop and the sheet, and write alt text that names the document. Skip filtered portraits and purchased reviews.
US and UK rules: size the photo, and leave the person unedited
You sell a crop, a size, a background, and a check. For a US or UK passport, that processing must not alter appearance.
The US Department of State says not to upload a photo created or edited with artificial intelligence or other digital tools. Do not run a US passport order through photo enhancement or the AI Photo Editing API to change expression, pose, glasses, lighting, or a shoulder. Ask for another photo. Those tools belong on workflows that allow a corrected portrait, such as an employee badge. A portrait from the AI headshot API is not a document photo.
UK digital photos must be unedited. Prepare the file so it meets published GOV.UK photo rules: the size you confirmed, the specification background, and the capture checks. Say that on the page. Do not call the shop authorized, approved, or official, and do not say acceptance is guaranteed. The applicant enters the photo code. HM Passport Office retrieves the JPEG and checks it. This service is not an HM Passport Office product. The supplier photo-code page describes that mechanism and does not endorse a shop. “Guaranteed to be accepted” does not belong on any document.
A consulate can refuse a visa photo that came back with an empty issues array. Say the file is prepared to that specification and that the authority still reviews it. ISSUE_HAT_NOT_ALLOWED means unsupported headwear. Do not turn it into an order to remove a religious covering. Follow GOV.UK’s guidance for photographers on a UK passport, and the Department of State page on a US passport.
Launch the store
Email support@idphoto.ai for the Shopify store template, one-click setup, and an API key. Say which documents you will sell first, and whether you will mail prints. Then set prices, write the refund rule, and attach each product to a spec code you have read. Keep “authorized” and “guaranteed” out of the copy. Deliver a file prepared for the document they chose, or ask for a new portrait when the checks say this one will not do.
FAQ
Is there a passport photo app on the Shopify App Store?
This article does not link to an App Store listing. idphoto.ai offers a Shopify store template for a passport photo business, one-click setup, and the passport and ID photo API. Email support@idphoto.ai for the template, the setup, and an API key.
Which products should the shop open with?
A digital photo for each document whose spec you have fetched, plus a print sheet. Add mailed prints after postage is known, or after support confirms mailing. A UK online passport product should include a photo code for the GOV.UK application.
What does the customer do?
They upload one portrait. The API processes it to the chosen spec code, returns issue codes when a retake is required, and otherwise returns the digital file and, if ordered, a print sheet. Mail paper only after the checks are clear.
Can every country go on sale on day one?
The reference documents 150+ specifications. Sell the codes you have fetched and described. Add a country when the page states size, background, and glasses from the current spec.
Does a clear check mean the photo will be accepted?
No. For a UK passport, say the photo meets GOV.UK photo rules. Do not say the shop is authorized, and do not say acceptance is guaranteed. The issuing authority still reviews the photo.
Can AI repair a bad US or UK passport photo?
No. Ask for a new portrait. Crop, size, background, and issue codes are the processing. Edits that alter appearance are not acceptable. US rules reject photos created or edited with artificial intelligence or other digital tools, and UK digital photos must be unedited.