1. Immigration
  • Overview
  • Endpoints
    • Companies
      • All companies
      • Get a company
      • Create company
      • Create payment
    • Pricing
      • Get pricing packages
    • Countries
      • All countries
      • Get a country
    • Forms
      • Get a form
    • Leads
      • All leads
      • Get a lead
      • Update status
    • Profile
      • Get profile
      • Update profile
    • Wallet
      • Get wallet balance
      • Create topup request
    • Support
      • All tickets
      • Get a ticket
      • Create a ticket
    • Notifications
      • All notifications
      • Mark as read
      • Pusher auth
    • Renewals
      • Search companies for renewal
      • Get dynamic form config for a jurisdiction
      • List renewal requests
      • Request a quote revision
      • Approve quote and confirm wallet payment
      • Initiate quote payment — send OTP
      • Get a renewal by ID
      • Submit a renewal request
    • Files
      • Get a one-time download URL for any file owned by the agent
    • Immigration
      • List immigration objectives
        GET
      • Submit an assessment and get matching programmes
        POST
      • Get application pre-fill
        GET
      • Create an application (draft or submitted)
        POST
      • List applications
        GET
      • Get an application
        GET
      • Update a draft (save again or submit)
        PATCH
      • Delete a draft
        DELETE
  • Schemas
    • QuoteConfig
    • CreatePaymentSuccessResponse
    • SuccessEnvelope
    • StandardSuccess
    • ErrorEnvelope
    • ErrorResponse
    • FieldValidation
    • DirectApplication
    • YesNo
    • FileAttachment
    • Company
    • QuoteBreakdown
    • Field
    • Objective
    • Quote
    • Section
    • AssessmentRequest
    • RenewalFormConfigBody
    • ProcessingStep
    • ProgrammeSummary
    • CreateCompanyRequest
    • ProgrammeMatch
    • RenewalFormConfig
    • CompletedDetails
    • ExternalCompany
    • ApplicationPrefill
    • Renewal
    • Applicant
    • FormConfigField
    • ApplicantFields
    • FormConfigSection
    • FamilyMember
    • FamilyMemberFields
    • FormConfig
    • Funds
    • DocumentMeta
    • Declarations
    • StoredDeclarations
    • ApplicationRequest
    • ApplicationStatus
    • Application
    • ApplicationDetail
    • CountryRef
    • CountryName
    • ApplicationListItem
  1. Immigration

Update a draft (save again or submit)

Testing Env
https://demoapi.base93.com/api/v1/user/external/agent/
Testing Env
https://demoapi.base93.com/api/v1/user/external/agent/
PATCH
https://demoapi.base93.com/api/v1/user/external/agent/
/immigration/applications/{id}
Saves a draft again, or submits it with status: submitted (same rules as create).
Only drafts can be updated.
This replaces the whole application, it does not merge. Send every section again:
applicant, family or funds that are left out are saved as empty.
Documents: list every document to keep in document_meta. For one already uploaded,
send its file id as file_id (the documents[].file._id from GET /immigration/applications/{id}).
For a new or replaced one, upload the file under its key. Any earlier document missing from
document_meta is deleted, file included.

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Path Params

Body Params application/jsonRequired

Example
{
    "status": "submitted",
    "applicant": {
        "full_name": "John Smith",
        "date_of_birth": "1985-04-12",
        "place_of_birth": "Mumbai",
        "citizenship": "65a0c1d2e3f4a5b6c7d8e9f0",
        "residence": "65a0c1d2e3f4a5b6c7d8e9f1",
        "marital_status": "married",
        "passport_number": "X1234567",
        "passport_issue_date": "2020-01-15",
        "passport_expiry_date": "2030-01-14",
        "email": "john@example.com",
        "phone": "+971500000001",
        "residential_address": "Dubai Marina, Dubai",
        "occupation": "Engineer",
        "qualification": "masters",
        "experience_years": 15,
        "is_business_owner": "yes",
        "employer_name": null
    },
    "family": [
        {
            "relation": "spouse",
            "position": 1,
            "full_name": "Jane Smith",
            "date_of_birth": "1987-06-02",
            "passport_number": "Y7654321",
            "nationality": "65a0c1d2e3f4a5b6c7d8e9f0"
        },
        {
            "relation": "child",
            "position": 1,
            "full_name": "Sam Smith",
            "date_of_birth": "2021-03-10",
            "passport_number": "Z1112223",
            "nationality": null
        }
    ],
    "funds": {
        "planned_investment": 500000,
        "planned_investment_currency": "USD",
        "budget": 750000,
        "budget_currency": "USD",
        "annual_income": 100000,
        "annual_income_currency": "USD",
        "net_worth": 3000000,
        "net_worth_currency": "USD",
        "source_of_funds": [
            "salary_savings",
            "sale_of_property"
        ]
    },
    "document_meta": [
        {
            "key": "passport_copy",
            "label": "Passport Copy",
            "owner": "applicant",
            "member": null,
            "file_id": "6703a1b2c3d4e5f6a7b8c9d3"
        }
    ],
    "declarations": {
        "accurate": true,
        "verified": true,
        "consent_understood": true,
        "terms": true
    }
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request PATCH 'https://demoapi.base93.com/api/v1/user/external/agent//immigration/applications/' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "status": "submitted",
    "applicant": {
        "full_name": "John Smith",
        "date_of_birth": "1985-04-12",
        "place_of_birth": "Mumbai",
        "citizenship": "65a0c1d2e3f4a5b6c7d8e9f0",
        "residence": "65a0c1d2e3f4a5b6c7d8e9f1",
        "marital_status": "married",
        "passport_number": "X1234567",
        "passport_issue_date": "2020-01-15",
        "passport_expiry_date": "2030-01-14",
        "email": "john@example.com",
        "phone": "+971500000001",
        "residential_address": "Dubai Marina, Dubai",
        "occupation": "Engineer",
        "qualification": "masters",
        "experience_years": 15,
        "is_business_owner": "yes",
        "employer_name": null
    },
    "family": [
        {
            "relation": "spouse",
            "position": 1,
            "full_name": "Jane Smith",
            "date_of_birth": "1987-06-02",
            "passport_number": "Y7654321",
            "nationality": "65a0c1d2e3f4a5b6c7d8e9f0"
        },
        {
            "relation": "child",
            "position": 1,
            "full_name": "Sam Smith",
            "date_of_birth": "2021-03-10",
            "passport_number": "Z1112223",
            "nationality": null
        }
    ],
    "funds": {
        "planned_investment": 500000,
        "planned_investment_currency": "USD",
        "budget": 750000,
        "budget_currency": "USD",
        "annual_income": 100000,
        "annual_income_currency": "USD",
        "net_worth": 3000000,
        "net_worth_currency": "USD",
        "source_of_funds": [
            "salary_savings",
            "sale_of_property"
        ]
    },
    "document_meta": [
        {
            "key": "passport_copy",
            "label": "Passport Copy",
            "owner": "applicant",
            "member": null,
            "file_id": "6703a1b2c3d4e5f6a7b8c9d3"
        }
    ],
    "declarations": {
        "accurate": true,
        "verified": true,
        "consent_understood": true,
        "terms": true
    }
}'

Responses

🟢200
application/json
Application updated
Bodyapplication/json

Example
{
    "status": true,
    "response_code": 200,
    "message": "Application created successfully",
    "data": {
        "application": {
            "_id": "6703a1b2c3d4e5f6a7b8c9d0",
            "application_id": "10042",
            "status": "submitted",
            "submitted_at": "2026-10-08T11:00:00.000Z"
        }
    }
}
🟠400
🟠401Unauthorized
🟠403Forbidden
🟠404ApplicationNotFound
Modified at 2026-10-08 12:49:51
Previous
Get an application
Next
Delete a draft
Built with