> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.credit.aarthiklabs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.credit.aarthiklabs.com/_mcp/server.

# Create A Journey — Gold Loans

POST https://credit.aarthiklabs.com/api/v1/hybrid/gold-loan/borrowers/{borrowerProviderID}/journey
Content-Type: application/json

Backend-only API-key call. The platform starts a Hybrid Gold Loan application attempt for the borrower, stores the supplied profile and Gold Loan details, and starts the Gold Loan offer-fetch pipeline. `borrowerProviderID` must remain stable for the same borrower across sessions and application attempts. Prefer sending a fresh `Idempotency-Key` for each new Start attempt; reuse the same key only to retry the same Start request. If omitted, the platform creates a fresh non-idempotent attempt with a server-generated internal key. Store `data.journey.id` from the response and pass it as `journeyID` on Offers and Hosted handoff calls. The product is implied by the /gold-loan URL. Gold Loan start does not accept bureau, banking information, or loan preferences.

Reference: https://docs.credit.aarthiklabs.com/api-reference/hybrid-experience/gold-loans/start-or-resume-hybrid-gold-loan-journey

## Authentication

- `Authorization` header (bearer token, required) — Send `Authorization: Bearer <PLATFORM_API_KEY>` from a trusted back-end.

## Servers

- `https://credit.aarthiklabs.com` (Production, default)
- `https://preprod.credit.aarthiklabs.com` (PreProduction)

## Request

### Path parameters

- `borrowerProviderID` (string, required) — Stable borrower identity from the partner system. Keep a 1:1 mapping between the borrower and `borrowerProviderID` across sessions and application attempts to preserve resume, history, and post-disbursal continuity.

### Headers

- `Idempotency-Key` (string, optional) — Start-attempt retry key. Use a fresh key for each new application attempt. Reuse the same key only when retrying the same Start request after a timeout or temporary failure. If omitted, the platform creates a fresh non-idempotent attempt with a server-generated internal key for compatibility; retries without a client key can create duplicate attempts.
- `x-correlation-id` (string, optional) — Optional caller-supplied trace identifier. When omitted, the API generates one and mirrors it as `correlation_id`.

### Body (application/json)

This endpoint expects a HybridGoldStartJourneyRequest.

- `personal` (HybridGoldPersonalProfile, required) — Gold Loan borrower profile fields for Hybrid journey start. Include userType for Gold Loan borrower classification.
- `work` (HybridGoldWorkProfile, required) — Gold Loan borrower work profile fields. Official email is not required for the Gold Loan Hybrid start payload.
- `address` (HybridAddress, required)
- `journey` (HybridGoldJourneyPrefill, required)
- `goldInformation` (HybridGoldInformation, required) — Gold details for Hybrid Gold Loan journeys.
- `journeyType` (enum, optional) — Optional credit product discriminator. Omit it or send GOLD_LOAN on the gold-loan Hybrid path.
  - Allowed values: `GOLD_LOAN`

## Response

### 200

Hybrid Gold Loan journey accepted and offer fetch started. Replays of the same Start attempt return the same journey.

- `request_id` (string, required)
- `correlation_id` (string, required)
- `timestamp` (datetime, required)
- `data` (HybridGoldStartJourneyData, required)
- `error` (any, required)

## Errors

### 400 Bad Request Error

Request body or path validation failed.

- `request_id` (string, required)
- `correlation_id` (string, required)
- `timestamp` (datetime, required)
- `data` (any, required)
- `error` (HybridError, required)

### 401 Unauthorized Error

Missing or invalid platform API key.

- `request_id` (string, required)
- `correlation_id` (string, required)
- `timestamp` (datetime, required)
- `data` (any, required)
- `error` (HybridError, required)

### 409 Conflict Error

The current journey or offer state does not allow the requested transition.

- `request_id` (string, required)
- `correlation_id` (string, required)
- `timestamp` (datetime, required)
- `data` (any, required)
- `error` (HybridError, required)

### 429 Too Many Requests Error

Too many requests. For offer polling, retry at the returned `polling.nextPoll` timestamp.

- `StartOrResumeHybridGoldLoanJourneyRequestTooManyRequestsError`
  - HybridErrorResponse: HybridErrorResponse
  - HybridOfferPollingRateLimitedResponse: HybridOfferPollingRateLimitedResponse

### 500 Internal Server Error

Temporary upstream or platform failure.

- `request_id` (string, required)
- `correlation_id` (string, required)
- `timestamp` (datetime, required)
- `data` (any, required)
- `error` (HybridError, required)

## Types

### HybridGoldPersonalProfile

Gold Loan borrower profile fields for Hybrid journey start. Include userType for Gold Loan borrower classification.

- `contactNumber` (string, required) — Indian mobile number. The platform normalizes valid Indian numbers for storage.
- `pan` (string, optional) — Borrower PAN, normalized uppercase.
- `panName` (string, optional)
- `dob` (date, optional)
- `gender` (enum, optional)
  - Allowed values: `male`, `female`, `transgender`
- `personalemail` (string, optional)
- `contact_number` (string, optional) — Accepted alias for `contactNumber`.
- `userType` (enum, optional) — Borrower type for Hybrid Gold Loan journeys.
  - Allowed values: `individual`, `non-individual`

### HybridGoldWorkProfile

Gold Loan borrower work profile fields. Official email is not required for the Gold Loan Hybrid start payload.

- `employmentType` (enum, required)
  - Allowed values: `salaried`, `selfEmployed`
- `income` (HybridGoldWorkProfileIncome, required) — Income value. Unit defaults to monthly when `incomeType` is omitted.
- `companyName` (string, required)
- `incomeType` (enum, optional, default: monthly)
  - Allowed values: `monthly`, `annual`
- `udyamNumber` (string, optional, nullable) — Optional for self-employed borrowers.

### HybridAddress

- `pincode` (string, required)
- `addressL1` (string, optional)
- `addressL2` (string, optional)
- `city` (string, optional)
- `state` (string, optional)

### HybridGoldJourneyPrefill

- `endUse` (enum, required)
  - Allowed values: `consumerDurablePurchase`, `education`, `travel`, `health`, `marriage`, `familyFunctions`, `medicalTreatmentAndEmergencies`, `travelEducationExpenses`, `businessExpansion`, `agricultureAndFarmRelatedNeeds`, `purchaseOfEquipment`, `other`
- `consent` (boolean, required) — Borrower consent flag for starting Gold Loan offer discovery.

### HybridGoldInformation

Gold details for Hybrid Gold Loan journeys.

- `jewelleryWeightGrams` (HybridGoldInformationJewelleryWeightGrams, optional)
- `purity` (enum, optional)
  - Allowed values: `24K`, `22K`, `21K`, `18K`, `14K`, `9K`

### HybridGoldStartJourneyData

- `profile` (HybridGoldNormalizedProfile, required)
- `journey` (HybridGoldNormalizedJourney, required)
- `operation` (HybridOperation, required)

### HybridError

- `code` (enum, required)
  - Allowed values: `VALIDATION_FAILED`, `AUTH_INVALID_API_KEY`, `AUTH_INVALID_SESSION`, `ACCESS_SCOPE_MISMATCH`, `RESOURCE_NOT_FOUND`, `OFFER_LOCK_CONFLICT`, `STATE_PRECONDITION_FAILED`, `OFFER_POLL_RATE_LIMITED`, `HYBRID_JOURNEY_NOT_READY`, `RATE_LIMITED`, `UPSTREAM_TEMPORARY_FAILURE`
- `message` (string, required)
- `retryable` (boolean, required) — Whether retrying the same operation can make progress. A persisted final primary-form failure is not retryable, including HTTP 500; reconcile the accepted operation before any resubmission. Correct invalid input before retrying validation failures.
- `details` (map from string to any, required, nullable)

### HybridErrorResponse

- `request_id` (string, required)
- `correlation_id` (string, required)
- `timestamp` (datetime, required)
- `data` (any, required)
- `error` (HybridError, required)

### HybridOfferPollingRateLimitedResponse

- `request_id` (string, required)
- `correlation_id` (string, required)
- `timestamp` (datetime, required)
- `data` (HybridOfferPollingRateLimitedResponseData, required)
- `error` (HybridError, required)

### HybridGoldWorkProfileIncome

Income value. Unit defaults to monthly when `incomeType` is omitted.

- double
- string

### HybridGoldInformationJewelleryWeightGrams

- string
- double

### HybridGoldNormalizedProfile

- `personal` (HybridPersonalProfileEcho, optional)
- `workProfile` (HybridGoldWorkProfileEcho, optional)
- `address` (HybridAddressEcho, optional)
- `goldInformation` (HybridGoldInformation, optional) — Gold details for Hybrid Gold Loan journeys.

### HybridGoldNormalizedJourney

- `id` (string, required) — Aarthik Labs journey ID. Matches `data.journey.id` in lifecycle web-hooks for the same borrower journey.
- `end_use` (enum, optional, nullable)
  - Allowed values: `consumerDurablePurchase`, `education`, `travel`, `health`, `marriage`, `familyFunctions`, `medicalTreatmentAndEmergencies`, `travelEducationExpenses`, `businessExpansion`, `agricultureAndFarmRelatedNeeds`, `purchaseOfEquipment`, `other`
- `consent` (boolean, optional, nullable)

### HybridOperation

- `type` (enum, required)
  - Allowed values: `OFFERS_FETCH`
- `status` (enum, required)
  - Allowed values: `SUCCESS`, `ACCEPTED`, `FAILURE`
- `polling` (HybridPolling, optional)

### HybridOfferPollingRateLimitedResponseData

- `polling` (HybridPolling, required)

### HybridPersonalProfileEcho

- `pan` (string, optional, nullable)
- `panName` (string, optional, nullable)
- `dob` (string, optional, nullable)
- `gender` (enum, optional, nullable)
  - Allowed values: `male`, `female`, `transgender`
- `personalemail` (string, optional, nullable)
- `contactNumber` (string, optional, nullable)

### HybridGoldWorkProfileEcho

- `employmentType` (enum, optional, nullable)
  - Allowed values: `salaried`, `selfEmployed`
- `income` (string, optional, nullable)
- `income_annualized` (string, optional, nullable)
- `companyName` (string, optional, nullable)
- `udyamNumber` (string, optional, nullable) — Returned only for self-employed Gold Loan borrowers when available.

### HybridAddressEcho

- `addressL1` (string, optional, nullable)
- `addressL2` (string, optional, nullable)
- `city` (string, optional, nullable)
- `state` (string, optional, nullable)
- `pincode` (string, optional, nullable)

### HybridPolling

- `shouldPoll` (boolean, required)
- `lastPoll` (datetime, required)
- `nextPoll` (datetime, required)

## Examples

**Request**

```json
{
  "personal": {
    "contactNumber": "9876543210",
    "pan": "ABCPE1234F",
    "panName": "John Doe",
    "dob": "1990-01-01",
    "gender": "male",
    "personalemail": "john@example.com",
    "userType": "individual"
  },
  "work": {
    "employmentType": "salaried",
    "income": 90000,
    "companyName": "Acme Global Inc.",
    "incomeType": "monthly"
  },
  "address": {
    "pincode": "360001",
    "addressL1": "101 Sunshine Heights",
    "addressL2": "Gold Coast Road",
    "city": "Rajkot",
    "state": "Gujarat"
  },
  "journey": {
    "endUse": "medicalTreatmentAndEmergencies",
    "consent": true
  },
  "goldInformation": {
    "jewelleryWeightGrams": "52",
    "purity": "22K"
  }
}
```

**Response**

```json
{
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "correlation_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "timestamp": "1970-01-01T00:00:00.000Z",
  "data": {
    "profile": {
      "personal": {
        "pan": "ABCPE1234F",
        "panName": "John Doe",
        "dob": "1990-01-01",
        "gender": "male",
        "personalemail": "john@example.com",
        "contactNumber": "+919876543210"
      },
      "workProfile": {
        "employmentType": "salaried",
        "income": "90000",
        "income_annualized": "1080000",
        "companyName": "Acme Global Inc."
      },
      "address": {
        "addressL1": "101 Sunshine Heights",
        "addressL2": "Gold Coast Road",
        "city": "Rajkot",
        "state": "Gujarat",
        "pincode": "360001"
      },
      "goldInformation": {
        "jewelleryWeightGrams": "52",
        "purity": "22K"
      }
    },
    "journey": {
      "id": "journey_gl_001",
      "end_use": "medicalTreatmentAndEmergencies",
      "consent": true
    },
    "operation": {
      "type": "OFFERS_FETCH",
      "status": "SUCCESS"
    }
  },
  "error": null
}
```

**SDK Code**

```python Gold Loan
import requests

url = "https://credit.aarthiklabs.com/api/v1/hybrid/gold-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey"

payload = {
    "personal": {
        "contactNumber": "9876543210",
        "pan": "ABCPE1234F",
        "panName": "John Doe",
        "dob": "1990-01-01",
        "gender": "male",
        "personalemail": "john@example.com",
        "userType": "individual"
    },
    "work": {
        "employmentType": "salaried",
        "income": 90000,
        "companyName": "Acme Global Inc.",
        "incomeType": "monthly"
    },
    "address": {
        "pincode": "360001",
        "addressL1": "101 Sunshine Heights",
        "addressL2": "Gold Coast Road",
        "city": "Rajkot",
        "state": "Gujarat"
    },
    "journey": {
        "endUse": "medicalTreatmentAndEmergencies",
        "consent": True
    },
    "goldInformation": {
        "jewelleryWeightGrams": "52",
        "purity": "22K"
    }
}
headers = {
    "Idempotency-Key": "start-attempt-20260408-001",
    "x-correlation-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Gold Loan
const url = 'https://credit.aarthiklabs.com/api/v1/hybrid/gold-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey';
const options = {
  method: 'POST',
  headers: {
    'Idempotency-Key': 'start-attempt-20260408-001',
    'x-correlation-id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"personal":{"contactNumber":"9876543210","pan":"ABCPE1234F","panName":"John Doe","dob":"1990-01-01","gender":"male","personalemail":"john@example.com","userType":"individual"},"work":{"employmentType":"salaried","income":90000,"companyName":"Acme Global Inc.","incomeType":"monthly"},"address":{"pincode":"360001","addressL1":"101 Sunshine Heights","addressL2":"Gold Coast Road","city":"Rajkot","state":"Gujarat"},"journey":{"endUse":"medicalTreatmentAndEmergencies","consent":true},"goldInformation":{"jewelleryWeightGrams":"52","purity":"22K"}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Gold Loan
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://credit.aarthiklabs.com/api/v1/hybrid/gold-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey"

	payload := strings.NewReader("{\n  \"personal\": {\n    \"contactNumber\": \"9876543210\",\n    \"pan\": \"ABCPE1234F\",\n    \"panName\": \"John Doe\",\n    \"dob\": \"1990-01-01\",\n    \"gender\": \"male\",\n    \"personalemail\": \"john@example.com\",\n    \"userType\": \"individual\"\n  },\n  \"work\": {\n    \"employmentType\": \"salaried\",\n    \"income\": 90000,\n    \"companyName\": \"Acme Global Inc.\",\n    \"incomeType\": \"monthly\"\n  },\n  \"address\": {\n    \"pincode\": \"360001\",\n    \"addressL1\": \"101 Sunshine Heights\",\n    \"addressL2\": \"Gold Coast Road\",\n    \"city\": \"Rajkot\",\n    \"state\": \"Gujarat\"\n  },\n  \"journey\": {\n    \"endUse\": \"medicalTreatmentAndEmergencies\",\n    \"consent\": true\n  },\n  \"goldInformation\": {\n    \"jewelleryWeightGrams\": \"52\",\n    \"purity\": \"22K\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Idempotency-Key", "start-attempt-20260408-001")
	req.Header.Add("x-correlation-id", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Gold Loan
require 'uri'
require 'net/http'

url = URI("https://credit.aarthiklabs.com/api/v1/hybrid/gold-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = 'start-attempt-20260408-001'
request["x-correlation-id"] = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"personal\": {\n    \"contactNumber\": \"9876543210\",\n    \"pan\": \"ABCPE1234F\",\n    \"panName\": \"John Doe\",\n    \"dob\": \"1990-01-01\",\n    \"gender\": \"male\",\n    \"personalemail\": \"john@example.com\",\n    \"userType\": \"individual\"\n  },\n  \"work\": {\n    \"employmentType\": \"salaried\",\n    \"income\": 90000,\n    \"companyName\": \"Acme Global Inc.\",\n    \"incomeType\": \"monthly\"\n  },\n  \"address\": {\n    \"pincode\": \"360001\",\n    \"addressL1\": \"101 Sunshine Heights\",\n    \"addressL2\": \"Gold Coast Road\",\n    \"city\": \"Rajkot\",\n    \"state\": \"Gujarat\"\n  },\n  \"journey\": {\n    \"endUse\": \"medicalTreatmentAndEmergencies\",\n    \"consent\": true\n  },\n  \"goldInformation\": {\n    \"jewelleryWeightGrams\": \"52\",\n    \"purity\": \"22K\"\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Gold Loan
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://credit.aarthiklabs.com/api/v1/hybrid/gold-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey")
  .header("Idempotency-Key", "start-attempt-20260408-001")
  .header("x-correlation-id", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"personal\": {\n    \"contactNumber\": \"9876543210\",\n    \"pan\": \"ABCPE1234F\",\n    \"panName\": \"John Doe\",\n    \"dob\": \"1990-01-01\",\n    \"gender\": \"male\",\n    \"personalemail\": \"john@example.com\",\n    \"userType\": \"individual\"\n  },\n  \"work\": {\n    \"employmentType\": \"salaried\",\n    \"income\": 90000,\n    \"companyName\": \"Acme Global Inc.\",\n    \"incomeType\": \"monthly\"\n  },\n  \"address\": {\n    \"pincode\": \"360001\",\n    \"addressL1\": \"101 Sunshine Heights\",\n    \"addressL2\": \"Gold Coast Road\",\n    \"city\": \"Rajkot\",\n    \"state\": \"Gujarat\"\n  },\n  \"journey\": {\n    \"endUse\": \"medicalTreatmentAndEmergencies\",\n    \"consent\": true\n  },\n  \"goldInformation\": {\n    \"jewelleryWeightGrams\": \"52\",\n    \"purity\": \"22K\"\n  }\n}")
  .asString();
```

```php Gold Loan
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://credit.aarthiklabs.com/api/v1/hybrid/gold-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey', [
  'body' => '{
  "personal": {
    "contactNumber": "9876543210",
    "pan": "ABCPE1234F",
    "panName": "John Doe",
    "dob": "1990-01-01",
    "gender": "male",
    "personalemail": "john@example.com",
    "userType": "individual"
  },
  "work": {
    "employmentType": "salaried",
    "income": 90000,
    "companyName": "Acme Global Inc.",
    "incomeType": "monthly"
  },
  "address": {
    "pincode": "360001",
    "addressL1": "101 Sunshine Heights",
    "addressL2": "Gold Coast Road",
    "city": "Rajkot",
    "state": "Gujarat"
  },
  "journey": {
    "endUse": "medicalTreatmentAndEmergencies",
    "consent": true
  },
  "goldInformation": {
    "jewelleryWeightGrams": "52",
    "purity": "22K"
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'Idempotency-Key' => 'start-attempt-20260408-001',
    'x-correlation-id' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
  ],
]);

echo $response->getBody();
```

```csharp Gold Loan
using RestSharp;

var client = new RestClient("https://credit.aarthiklabs.com/api/v1/hybrid/gold-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey");
var request = new RestRequest(Method.POST);
request.AddHeader("Idempotency-Key", "start-attempt-20260408-001");
request.AddHeader("x-correlation-id", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"personal\": {\n    \"contactNumber\": \"9876543210\",\n    \"pan\": \"ABCPE1234F\",\n    \"panName\": \"John Doe\",\n    \"dob\": \"1990-01-01\",\n    \"gender\": \"male\",\n    \"personalemail\": \"john@example.com\",\n    \"userType\": \"individual\"\n  },\n  \"work\": {\n    \"employmentType\": \"salaried\",\n    \"income\": 90000,\n    \"companyName\": \"Acme Global Inc.\",\n    \"incomeType\": \"monthly\"\n  },\n  \"address\": {\n    \"pincode\": \"360001\",\n    \"addressL1\": \"101 Sunshine Heights\",\n    \"addressL2\": \"Gold Coast Road\",\n    \"city\": \"Rajkot\",\n    \"state\": \"Gujarat\"\n  },\n  \"journey\": {\n    \"endUse\": \"medicalTreatmentAndEmergencies\",\n    \"consent\": true\n  },\n  \"goldInformation\": {\n    \"jewelleryWeightGrams\": \"52\",\n    \"purity\": \"22K\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Gold Loan
import Foundation

let headers = [
  "Idempotency-Key": "start-attempt-20260408-001",
  "x-correlation-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "personal": [
    "contactNumber": "9876543210",
    "pan": "ABCPE1234F",
    "panName": "John Doe",
    "dob": "1990-01-01",
    "gender": "male",
    "personalemail": "john@example.com",
    "userType": "individual"
  ],
  "work": [
    "employmentType": "salaried",
    "income": 90000,
    "companyName": "Acme Global Inc.",
    "incomeType": "monthly"
  ],
  "address": [
    "pincode": "360001",
    "addressL1": "101 Sunshine Heights",
    "addressL2": "Gold Coast Road",
    "city": "Rajkot",
    "state": "Gujarat"
  ],
  "journey": [
    "endUse": "medicalTreatmentAndEmergencies",
    "consent": true
  ],
  "goldInformation": [
    "jewelleryWeightGrams": "52",
    "purity": "22K"
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://credit.aarthiklabs.com/api/v1/hybrid/gold-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```