Read Offer (And Hand-Off URL)

Backend-only API-key call. Use after the borrower selects an offer in your UI. Pass the Start response `data.journey.id` as `journeyID` so the handoff continues the intended application attempt. The optional `isOfferAccepted` parameter accepts only exact lowercase `true` or `false`. Send `true` only after your application has captured the borrower's explicit acceptance. Omit it or send `false` to return the standard Hosted offer and KFS review flow. For a true request, inspect `offer_acceptance.applied` rather than assuming acceptance was applied. When applied, the API automatically performs any required preparation and remains pollable: while work is in progress, `hosted_url` is null and `polling.shouldPoll` is true; retry at `polling.nextPoll`. When `hosted_url` is present, open the short-lived Aarthik Labs URL immediately. It automatically forwards the borrower to the current lender step without requiring an Aarthik Labs button click. This applies to the lender destination for single-redirection journeys and to the current external stage, such as KYC, for multiple-redirection journeys. If acceptance is not applied, the returned URL opens the standard Hosted review flow. Repeating the same request is safe and can return a fresh continuation URL. If `journeyID` is omitted, borrower-only fallback is legacy behavior and may return a 409 ambiguity error when the same borrower has multiple active Hybrid application attempts.

Authentication

AuthorizationBearer

Send Authorization: Bearer <PLATFORM_API_KEY> from a trusted back-end.

Path parameters

borrowerProviderIDstringRequired1-128 characters

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.

offerIDstringRequired>=1 character

Offer identifier returned in data.lenders.<lenderName>.offers[].offerID.

Headers

x-correlation-idstringOptional1-128 characters

Optional caller-supplied trace identifier. When omitted, the API generates one and mirrors it as correlation_id.

Query parameters

journeyIDstringOptional>=1 character

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.

isOfferAcceptedenumOptional
Optional borrower offer-acceptance request. Only the exact lowercase strings `true` and `false` are accepted. Omit it or send `false` to keep the standard Hosted flow. Send `true` only after capturing the borrower's explicit consent, then inspect `offer_acceptance.applied`. When acceptance is applied, use `polling` until a fresh `hosted_url` is available and open that URL immediately.
Allowed values:

Response

Standard Hosted entrypoint, or offer-acceptance state with a ready URL, pending stage, or terminal outcome.

request_idstring
correlation_idstring
timestampdatetime
dataobject
errorany

Errors

400
Bad Request Error
401
Unauthorized Error
404
Not Found Error
409
Conflict Error
429
Too Many Requests Error
500
Internal Server Error