Skip to content
All bounties

ICA

Open
icp.gov.ae

UAE visa, residency, and identity-service workflows for ICA.

Reward
₩500,000
Tier
Platinum
Auth
Browser
APIs
6 APIs
Working now
none
Posted
2026-07-07
Kind
New service
  1. Open
  2. Claimed
  3. In review
  4. Finalizing
  5. Syncing
  6. Merged
  7. Paid

Scope

Build a high-trust browser-based workflow provider for ICA services in the UAE. The target surface is official but session-heavy, so the implementation should respect authentication, personal-data handling, document checklists, fees, status checks, renewals, complaints, and application submissions without exposing sensitive data beyond the current user session.

Expected APIs

6
search-servicesSearch servicesReadMedium

Search eligible labor, residency, visa, or Emirates ID services available to the current user or sponsor context. Returns service tiles and eligibility cues visible on the portal.

  • service_groupstringOptionalService family to filter by, such as labor, residency, visa, or Emirates ID.Example residency
  • querystringOptionalOptional text search for a specific government service.Example renewal
  • languagestringOptionalPreferred interface language where supported by the portal.Example en
servicesservice_nameeligibilityservice_codecategoryportal_url
  • Returns only services relevant to the authenticated user's context.
  • Preserves service names and eligibility cues shown by the portal.
  • Does not expose services outside the user's visible access scope.

Auth required for this API.

get-requirementsGet requirementsReadMedium

Fetch permit, contract, visa, residency, and supporting-document requirements for a chosen service or application type.

  • service_codestringRequiredPortal service code or identifier for the selected request.Example residency-renewal
requirementsdocumentsfeesprocessing_timenotesservice_code
  • Returns the document checklist and fee information tied to the selected service.
  • Keeps processing time or notes separate from document requirements.
  • Avoids leaking personal applicant data when only the service definition is requested.

Auth required for this API.

prepare-workflowPrepare workflowWriteHard

Assemble a renewal, status check, complaint, or application workflow draft with the required portal steps and missing-document hints.

  • service_codestringRequiredSelected portal service or case type.Example work-permit-renewal
  • workflow_typestringRequiredDraft workflow type such as renewal, status-check, complaint, or application.Example renewal
  • case_idstringOptionalExisting application or case identifier if the workflow is tied to a live request.Example app_447712
workflow_statusservice_codeworkflow_typemissing_documentsnext_stepportal_url
  • Creates a draft workflow without submitting it automatically.
  • Shows missing documents or next-step guidance where the portal provides them.
  • Keeps live submission separate from preparation.

Auth required for this API.

review-identity-and-consentReview identity and consentReadMedium

Review identity data, fees, documents, declarations, and consent language before a sensitive submission is approved.

  • application_idstringRequiredApplication or case identifier for the in-progress submission.Example app_447712
identity_fieldsfeesdocumentsdeclarationsconsent_textapplication_id
  • Returns the review payload visible to the user before submission.
  • Separates identity data from declarations and consent wording.
  • Does not reveal unrelated account data from other cases.

Auth required for this API.

submit-requestSubmit requestWriteHard

Submit the approved portal request only after explicit user confirmation of the identity, fees, and declarations shown in the review step.

  • application_idstringRequiredApplication or case identifier being submitted.Example app_447712
  • approvalbooleanRequiredUser confirmation that the shown data and declarations are correct.Example true
submission_statusapplication_idreceipt_numbersubmitted_atportal_url
  • Requires explicit approval before any submission action is attempted.
  • Returns a receipt or submission number when the portal accepts the request.
  • Fails closed if required documents or declarations are missing.

Auth required for this API.

get-status-and-documentsGet status and documentsReadMedium

Fetch application status, notices, receipts, and issued documents for the current user's case history.

  • application_idstringRequiredApplication or case identifier to inspect.Example app_447712
statusnoticesreceiptsissued_documentslast_updatedapplication_id
  • Returns the live portal status for the requested case id.
  • Includes notices, receipts, and issued documents when available.
  • Avoids disclosing data from unrelated applications or identities.

Auth required for this API.

Suggested surface. Propose changes in your submission if the upstream differs.

Acceptance criteria

  • Service scaffolded from the public @apifuse/provider-sdk
  • All listed APIs implemented with Zod/Standard Schema input & output
  • Each API declares exactly one of healthCheck or healthCheckUnsupported
  • Real upstream fixture data included where applicable
  • bun run check and bun run test pass
  • Auth, credential and env-secret behavior documented. No real secrets committed

Evidence to submit

  • Workspace repository and main commit link
  • SDK version/tag and the create command used
  • API list with input/output summaries
  • healthCheck coverage table per API
  • bun run check and bun run test output

Ready to claim?

Submit a claim. Your workspace is prepared after confirmation.