Developers
Build on the Veteran Passport.
Verify veteran status and eligibility inside your product — with the veteran in control, results cryptographically signed, and their SSN, address, and documents never exposed. The API is in private preview; request early access to build with us.
POST /v1/verification_requests
Authorization: Bearer sk_live_…
{
"claims": ["verified_veteran", "branch", "service_era"],
"purpose": "Veteran hiring preference",
"redirect_uri": "https://yourapp.com/verified"
}What you can build
One verification, trusted anywhere.
Move from “collect a DD-214 and hope” to a signed, consented answer in seconds.
Verify status
Confirm a veteran’s service — verified, not self-claimed — without collecting their PII.
Check eligibility
Ask a policy question (era, discharge, disability ≥ X) and get the answer, not the data.
Receive proof
Every verification returns a signed result and an immutable consent receipt for both sides.
Ways to integrate
Accept Veteran Passport however you build.
QR verification
A veteran shows a QR; you confirm their service on the web — no install. Live today via the verify page.
"Verify with Veteran Passport" button
A drop-in button and widget for your site or app.
REST verification API
Server-to-server verification and eligibility, with signed results and consent receipts.
Native wallet presentation
Read a Veteran Passport from a mobile wallet on a modern phone.
The API
A small, signed surface.
Create a request, the veteran approves, you fetch a signed result. Illustrative — full reference in the API docs.
- POST
/v1/verification_requests - GET
/v1/verification_requests/{id} - POST
/v1/verification_requests/{id}/cancel - GET
/v1/results/{id} - GET
/v1/credentials/{passport_id}/status
A signed result — the answer, not the data
{
"state": "approved",
"claims": {
"verified_veteran": true,
"branch": "U.S. Marine Corps",
"service_era": "Post-9/11"
},
"signed": true,
"consent_receipt": "rcpt_4F1…"
}Selective disclosure
The answer travels. The data stays.
You receive only the claims the veteran approves — and some things are structurally impossible to return.
Claims you can request
Claims marked with a key require the veteran’s explicit consent.
Never returned — by construction
Webhooks
React to verification events in real time.
verification.approvedThe veteran approved the request; a signed result is available.verification.deniedThe veteran declined to share the requested claims.verification.expiredThe request expired before the veteran responded.verification.revokedThe veteran revoked access after approving.credential.status_changedA credential's status changed (e.g., active → revoked).
Sandbox
Test every outcome with fixed sample Passport IDs — no real veterans, no real data.
| RP-481042 | verified |
| RP-000000 | not verified |
| RP-EXP777 | expired |
| RP-REV314 | revoked |
Build with us.
The Veteran Passport API is in private preview. Tell us what you want to build and we'll bring you in.