> 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.

# Fetch (Poll) Offer & Hand-Off Link

GET https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/{borrowerProviderID}/journey/offers/{offerID}/hosted

Take the borrower from choosing an offer to continuing their application. Using the selected offer and the same journey ID, retrieve the offer details and a secure link to Aarthik Labs' Hosted Experience.

Open the link to guide the borrower through the next steps for their chosen lender, such as verification, required documents and agreements. Your experience handles discovery and selection, while the Hosted Experience helps the borrower continue the selected application.

Reference: https://docs.credit.aarthiklabs.com/api-reference/hybrid-experience/business-loan/get-hybrid-business-loan-hosted-experience-url

## 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.
- `offerID` (string, required) — Offer identifier returned in `data.lenders.<lenderName>.offers[].offerID`.

### Query parameters

- `journeyID` (string, optional) — Journey ID returned as `data.journey.id` by Start. Send this on Offers and Hosted handoff calls to continue the intended application attempt. The `journey_id` query parameter and `x-aarthiklabs-journey-id` header aliases are also accepted. If more than one alias is sent, all values must match.
- `isOfferAccepted` (string, optional, deprecated) — Deprecated compatibility parameter. Its value is ignored; Aarthik Labs server configuration determines the effective offer-acceptance decision.

### Headers

- `x-correlation-id` (string, optional) — Optional caller-supplied trace identifier. When omitted, the API generates one and mirrors it as `correlation_id`.

## Response

### 200

Hosted URL issued for the selected Business Loan offer.

- `request_id` (string, required)
- `correlation_id` (string, required)
- `timestamp` (datetime, required)
- `data` (HybridBusinessHostedURLData, 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)

### 404 Not Found Error

Borrower, journey, route, or offer was not found for the authenticated application scope.

- `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.

- `GetHybridBusinessLoanHostedExperienceUrlRequestTooManyRequestsError`
  - 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

### HybridBusinessHostedURLData

- `hosted_url` (string, required, nullable)
- `expires_at` (datetime, required, nullable)
- `target_offer_id` (string, required)
- `target_journey_id` (string, required) — Always the public root Business journey ID supplied by the caller.
- `journey` (HybridBusinessHostedJourney, required)
- `offer_acceptance` (HybridHostedOfferAcceptanceOutcome, optional) — Present only when `isOfferAccepted=true`. Inspect `applied` before using redirection or polling metadata.
- `redirection` (HybridHostedRedirection, optional, nullable)
- `polling` (HybridHostedAcceptancePolling, optional)

### 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)

### HybridBusinessHostedJourney

- `type` (enum, required)
  - Allowed values: `PERSONAL_LOAN`, `BUSINESS_LOAN`, `GOLD_LOAN`, `LAMF_LOAN`
- `offer` (HybridBusinessHostedOffer, required)
- `id` (string, required) — Aarthik Labs journey ID. Matches `data.journey.id` in lifecycle web-hooks for the same borrower journey.
- `type` (enum, required)
  - Allowed values: `PERSONAL_LOAN`, `BUSINESS_LOAN`, `GOLD_LOAN`, `LAMF_LOAN`
- `offer` (HybridHostedOffer, required)
- `endUse` (enum, optional, nullable)
  - Allowed values: `consumerDurablePurchase`, `education`, `travel`, `health`, `marriage`, `familyFunctions`, `medicalTreatmentAndEmergencies`, `travelEducationExpenses`, `businessExpansion`, `agricultureAndFarmRelatedNeeds`, `purchaseOfEquipment`, `other`
- `bureauConsent` (boolean, optional, nullable)
- `ondc_transaction_id` (string, optional, nullable)
- `status` (enum, optional, nullable)
  - Allowed values: `STARTED`, `NOT_PROFILED`, `PROFILED`, `OFFERED`, `NOT_OFFERED`, `OFFER_ACCEPTED`, `LENDER_REDIRECTED`, `REJECTED`, `DISBURSED`, `EXPIRED`
- `kyc_status` (enum, optional)
  - Allowed values: `PENDING`, `SUCCESS`, `FAILURE`
- `kyc_attempts` (integer, optional, nullable)
- `emandate_status` (enum, optional)
  - Allowed values: `PENDING`, `SUCCESS`, `FAILURE`
- `emandate_attempts` (integer, optional, nullable)
- `esign_status` (enum, optional)
  - Allowed values: `PENDING`, `SUCCESS`, `FAILURE`
- `esign_attempts` (integer, optional, nullable)
- `lender` (HybridHostedLender, optional)

### HybridHostedOfferAcceptanceOutcome

Present only when `isOfferAccepted=true`. Inspect `applied` before using redirection or polling metadata.

- `requested` (boolean, required) — True when the caller supplied exact lowercase isOfferAccepted=true.
- `applied` (boolean, required) — True when API acceptance is in effect for the selected offer, including when an earlier successful request already applied it.
- `mode` (enum, required) — Acceptance result classification returned for compatibility. Integrations should make flow decisions using `applied`.
  - Allowed values: `API_ALLOWED`, `HOSTED_REQUIRED`, `LEGACY_API_ALLOWED`

### HybridHostedRedirection

- `type` (enum, required)
  - Allowed values: `SINGLE`, `MULTIPLE`
- `stage` (enum, required)
  - Allowed values: `LENDER_REDIRECTION`, `KYC`, `BANK_MANDATE`, `E_MANDATE`, `LOAN_AGREEMENT`
- `state` (enum, required)
  - Allowed values: `READY`, `PENDING`, `TERMINAL`

### HybridHostedAcceptancePolling

- `shouldPoll` (boolean, required) — When true, repeat the same Hosted handoff request using the original offer ID after nextPoll. Do not replace the request path with target_offer_id.
- `lastPoll` (datetime, required)
- `nextPoll` (datetime, required, nullable) — Initially five seconds after lastPoll while polling remains enabled.

### HybridOfferPollingRateLimitedResponseData

- `polling` (HybridPolling, required)

### HybridBusinessHostedOffer

- `productType` (enum, required) — Actual product behind a Business Hybrid selection.
  - Allowed values: `BUSINESS_LOAN`, `PERSONAL_LOAN`
- `productType` (enum, required) — Actual product behind a Business Hybrid selection.
  - Allowed values: `BUSINESS_LOAN`, `PERSONAL_LOAN`
- `id` (string, optional, nullable)
- `accepted` (boolean, optional, nullable)
- `expired` (boolean, optional, nullable)
- `amountPrincipal` (string, optional, nullable)
- `amountTotalInterestPayable` (string, optional, nullable)
- `amountNetDisbursedAmount` (string, optional, nullable)
- `offerTerm` (string, optional, nullable)
- `interestRate` (string, optional, nullable)
- `interestType` (string, optional, nullable)
- `annualPercentageRate` (string, optional, nullable)
- `numberOfInstallments` (integer, optional, nullable)
- `coolOffPeriod` (string, optional, nullable)
- `termsAndConditionsLink` (string, optional, nullable)
- `keyFactsStatementLink` (string, optional, nullable)
- `applicationFees` (string, optional, nullable)
- `foreclosureFees` (string, optional, nullable)
- `interestRateConversionCharges` (string, optional, nullable)
- `delayPenaltyFees` (string, optional, nullable)
- `otherPenaltyFees` (string, optional, nullable)
- `processingFees` (string, optional, nullable)
- `otherUpfrontCharges` (string, optional, nullable)
- `insuranceCharges` (string, optional, nullable)
- `otherCharges` (string, optional, nullable)
- `installments` (list of map from string to any, optional)

### HybridHostedOffer

- `productType` (enum, optional) — Actual product behind a Business Hybrid selection.
  - Allowed values: `BUSINESS_LOAN`, `PERSONAL_LOAN`
- `id` (string, optional, nullable)
- `accepted` (boolean, optional, nullable)
- `expired` (boolean, optional, nullable)
- `amountPrincipal` (string, optional, nullable)
- `amountTotalInterestPayable` (string, optional, nullable)
- `amountNetDisbursedAmount` (string, optional, nullable)
- `offerTerm` (string, optional, nullable)
- `interestRate` (string, optional, nullable)
- `interestType` (string, optional, nullable)
- `annualPercentageRate` (string, optional, nullable)
- `numberOfInstallments` (integer, optional, nullable)
- `coolOffPeriod` (string, optional, nullable)
- `termsAndConditionsLink` (string, optional, nullable)
- `keyFactsStatementLink` (string, optional, nullable)
- `applicationFees` (string, optional, nullable)
- `foreclosureFees` (string, optional, nullable)
- `interestRateConversionCharges` (string, optional, nullable)
- `delayPenaltyFees` (string, optional, nullable)
- `otherPenaltyFees` (string, optional, nullable)
- `processingFees` (string, optional, nullable)
- `otherUpfrontCharges` (string, optional, nullable)
- `insuranceCharges` (string, optional, nullable)
- `otherCharges` (string, optional, nullable)
- `installments` (list of map from string to any, optional)

### HybridHostedLender

- `id` (string, optional, nullable)
- `lender_name` (string, optional, nullable)
- `lender_gro_name` (string, optional, nullable)
- `lender_gro_email` (string, optional, nullable)
- `lender_gro_contact_number` (string, optional, nullable)
- `lender_gro_designation` (string, optional, nullable)
- `lender_gro_address` (string, optional, nullable)
- `lender_customer_support_link` (string, optional, nullable)
- `lender_customer_support_contact_number` (string, optional, nullable)
- `lender_customer_support_email` (string, optional, nullable)

### HybridPolling

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

## Examples

### Business Loan hosted handoff

**Response**

```json
{
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "correlation_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "timestamp": "1970-01-01T00:00:00.000Z",
  "data": {
    "hosted_url": "https://credit.aarthiklabs.com/lab/handoff?handoff=xxXxxX0x0x...#bt_test_xxx000",
    "expires_at": "1970-01-01T00:15:00.000Z",
    "target_offer_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "target_journey_id": "journey_bl_001",
    "journey": {
      "type": "BUSINESS_LOAN",
      "offer": {
        "productType": "BUSINESS_LOAN",
        "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "accepted": false,
        "expired": false,
        "amountPrincipal": "400000",
        "amountTotalInterestPayable": "42300",
        "amountNetDisbursedAmount": "392000",
        "offerTerm": "5 months",
        "interestRate": "12.00",
        "interestType": "FIXED",
        "annualPercentageRate": "5.00",
        "numberOfInstallments": 5,
        "coolOffPeriod": "3 days",
        "termsAndConditionsLink": "https://example.com/tnc.pdf",
        "keyFactsStatementLink": "https://example.com/kfs.pdf",
        "applicationFees": "0",
        "foreclosureFees": "0",
        "interestRateConversionCharges": "0",
        "delayPenaltyFees": "0",
        "otherPenaltyFees": "0",
        "processingFees": "8000",
        "otherUpfrontCharges": "0",
        "insuranceCharges": "0",
        "otherCharges": "0",
        "installments": []
      },
      "id": "journey_bl_001",
      "endUse": "businessExpansion",
      "bureauConsent": true,
      "ondc_transaction_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "status": "OFFERED",
      "kyc_status": "PENDING",
      "kyc_attempts": 0,
      "emandate_status": "PENDING",
      "emandate_attempts": 0,
      "esign_status": "PENDING",
      "esign_attempts": 0,
      "lender": {
        "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "lender_name": "Business Bank",
        "lender_gro_name": "ONDC",
        "lender_gro_email": "lifeline@ondc.com",
        "lender_gro_contact_number": "1860 266 7766",
        "lender_gro_designation": "Nodal Grievance Redressal Officer",
        "lender_gro_address": "One Indiabulls Centre, Mumbai",
        "lender_customer_support_link": "https://buy.ondc.org/buy/GrievanceRedStep.htm?execution=e1s1",
        "lender_customer_support_contact_number": "1800 1080",
        "lender_customer_support_email": "customer.care@ondc.com"
      }
    }
  },
  "error": null
}
```

**SDK Code**

```python Business Loan hosted handoff
import requests

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

querystring = {"journeyID":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","isOfferAccepted":"true"}

headers = {
    "x-correlation-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "Authorization": "Bearer <token>"
}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Business Loan hosted handoff
const url = 'https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true';
const options = {
  method: 'GET',
  headers: {
    'x-correlation-id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
    Authorization: 'Bearer <token>'
  }
};

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

```go Business Loan hosted handoff
package main

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

func main() {

	url := "https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-correlation-id", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
	req.Header.Add("Authorization", "Bearer <token>")

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

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

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

}
```

```ruby Business Loan hosted handoff
require 'uri'
require 'net/http'

url = URI("https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true")

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

request = Net::HTTP::Get.new(url)
request["x-correlation-id"] = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
request["Authorization"] = 'Bearer <token>'

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

```java Business Loan hosted handoff
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true")
  .header("x-correlation-id", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Business Loan hosted handoff
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'x-correlation-id' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
  ],
]);

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

```csharp Business Loan hosted handoff
using RestSharp;

var client = new RestClient("https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true");
var request = new RestRequest(Method.GET);
request.AddHeader("x-correlation-id", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Business Loan hosted handoff
import Foundation

let headers = [
  "x-correlation-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

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()
```

### Self-employed Personal Loan selected through the Business path

**Response**

```json
{
  "request_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
  "correlation_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
  "timestamp": "1970-01-01T00:00:00.000Z",
  "data": {
    "hosted_url": "https://credit.aarthiklabs.com/lab/handoff?handoff=yyYyyY0y0y...#bt_test_yyy000",
    "expires_at": "1970-01-01T00:15:00.000Z",
    "target_offer_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
    "target_journey_id": "journey_bl_001",
    "journey": {
      "type": "PERSONAL_LOAN",
      "offer": {
        "productType": "PERSONAL_LOAN",
        "id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
        "accepted": false,
        "expired": false
      },
      "id": "journey_bl_001",
      "endUse": "businessExpansion",
      "bureauConsent": true,
      "status": "OFFERED"
    }
  },
  "error": null
}
```

**SDK Code**

```python Self-employed Personal Loan selected through the Business path
import requests

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

querystring = {"journeyID":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","isOfferAccepted":"true"}

headers = {
    "x-correlation-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "Authorization": "Bearer <token>"
}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Self-employed Personal Loan selected through the Business path
const url = 'https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true';
const options = {
  method: 'GET',
  headers: {
    'x-correlation-id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
    Authorization: 'Bearer <token>'
  }
};

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

```go Self-employed Personal Loan selected through the Business path
package main

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

func main() {

	url := "https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-correlation-id", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
	req.Header.Add("Authorization", "Bearer <token>")

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

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

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

}
```

```ruby Self-employed Personal Loan selected through the Business path
require 'uri'
require 'net/http'

url = URI("https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true")

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

request = Net::HTTP::Get.new(url)
request["x-correlation-id"] = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
request["Authorization"] = 'Bearer <token>'

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

```java Self-employed Personal Loan selected through the Business path
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true")
  .header("x-correlation-id", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Self-employed Personal Loan selected through the Business path
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'x-correlation-id' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
  ],
]);

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

```csharp Self-employed Personal Loan selected through the Business path
using RestSharp;

var client = new RestClient("https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true");
var request = new RestRequest(Method.GET);
request.AddHeader("x-correlation-id", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Self-employed Personal Loan selected through the Business path
import Foundation

let headers = [
  "x-correlation-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://credit.aarthiklabs.com/api/v1/hybrid/business-loan/borrowers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/journey/offers/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/hosted?journeyID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&isOfferAccepted=true")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

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()
```