API reference / Applications
/v1/applications/{id}Fetch one application
- Operation
getApplication- Authentication
- API key
Scoped to the authenticated tenant. Keys issued to one tenant can never read or modify another tenant’s resources.
Request
Parameters
idpathrequiredstringResponses
idstringrequiredreferencestringrequiredSafe to read aloud.
example: HV-QYFHW6M4D8
product_idstringrequirednationality_iso3stringrequireddestination_iso3stringrequiredone of: ETHSOMDJIKEN
statusstringrequiredone of: draftawaiting_paymentpaidsubmittedunder_reviewapprovedrejectedcancelledexpired
form_dataobjectrequiredThe applicant’s own answers, keyed by the wizard’s field paths: `personal.*`, `passport.*`, `contact.*`, `travel.*`, `accommodation.*`, `purpose.*`, `host.*`, `family.*`, `employment.*`, `emergency.*`, plus a `documents` array. **Partial by design** — the wizard autosaves the whole object as the applicant types, so a draft holds only the fields filled in so far, and a `PATCH` merges rather than replaces. Which fields apply depends on the destination and on earlier answers. Unknown keys are accepted and ignored; `extensions` is the map that is validated strictly.
extensionsobjectrequiredAnswers the destination’s own form asks for and ours does not. Validated against the captured flow for this destination — an unrecognised key is refused, because a field the government will read is not a place to accept a typo. See `packages/reference`.
travellersobject[]requiredEveryone travelling with the applicant — the applicant is not in this list. Empty for a single-traveller application, which is every application created before groups existed. Set at creation and frozen with the price, because the party size is what the price is for.
pricing_snapshotobjectrequiredThe price agreed at creation, frozen. A later government fee change must never re-price an in-flight application, and a dispute months later has to be answerable from this row. `travellers` in here is the party size **including the lead**, and the fees are per person — the total is their product.
versionintegerrequiredOptimistic concurrency token. Send the version you last saw on a PATCH.
government_referencestringnullrequiredsubmitted_atstringnullrequireddecided_atstringnullrequiredcreated_atstringrequiredupdated_atstringrequirederrorobjectrequirederrorobjectrequirederrorobjectrequirederrorobjectrequiredExample
curl -X GET https://api.haavisa.com/v1/applications/<id> \
-H "Authorization: Bearer $HAAVISA_API_KEY"More in Applications
Something unclear? The eligibility guide explains the model behind the answers; the errors guide covers the envelope.