Skip to navigation

Aarthik Labs’ Credit API helps you offer business credit through one integration. Depending on your application and enabled lending partners, a Business Loan journey may return Business Loan offers and Personal Loan offers suitable for self-employed borrowers. Display the actual product shown by each offer’s productType.

Optional pre-offer capabilities

Dedupe checks participating lenders through an asynchronous POST-start and GET-read flow, with hashed and unhashed identifier examples. Eligibility accepts Bureau, Banking or GST information independently or together. Eligibility results also include provisional APR, interest rate, principal amount and term where available; final offers come from offer discovery. Both stages are optional. Each starts with POST returning 202 and data.journeyID, then uses GET to read progress and lender decisions. Start responses contain no polling object. Make the first Fetch Results call after acceptance, then follow its polling.nextPoll until polling.shouldPoll is false before proceeding.

Choose your sequence

SequenceHow to retain one journey
Dedupe (start → read) → Eligibility (start → read) → Create A JourneyOmit ID on Dedupe; pass its returned ID to both later POST calls.
Eligibility (start → read) → Create A JourneyOmit ID on Eligibility; pass its returned ID to Start.
Dedupe (start → read) → Create A JourneyOmit ID on Dedupe; pass its returned ID to Start.
Create A Journey directlyOmit ID on Start; store data.journey.id from its response.

On each continuation POST, supply ?journeyID=<same-journey-id>. Poll offers and request handoff with that same ID. Keep the same borrowerProviderID; do not create a second public journey after a pre-offer check.

Get started

  1. From your back-end, call the Business Loan Create A Journey endpoint with the borrower and business details required by the API Reference. If you already have an ID from Dedupe or Eligibility, include it in the optional journeyID query parameter. Use a stable borrowerProviderID and a new Idempotency-Key for each application attempt. Reuse the key only for an exact retry.
  2. Store data.journey.id from the response. Pass that value as journeyID when polling offers and requesting a Hosted handoff.
  3. Poll for offers. Show available OFFER_RECEIVED offers with their actual product type and terms. More offers can arrive while polling.shouldPoll is true. Follow polling.nextPoll and stop when shouldPoll is false, or when the borrower chooses an available offer.
  4. When the borrower selects an offer, request its Hosted handoff using the offer’s offerID and the same journeyID. Open the returned short-lived hosted_url promptly. If it expires, request a fresh URL.

The Business Loan start request requires personal, work, address, journey, and businessLoan. The businessLoan object requires constitution, businessPan, doi, natureOfBusiness, annualTurnover, and businessPincode. Self-employed applicants must also provide a non-blank work.udyamNumber. See the API Reference for the full request and response contract.

Optional bureau information supplied in the start request has its own consent requirements. See Buyer-Supplied Bureau Data.

Handle discovery and continuation

An empty or partial response while polling.shouldPoll is true is not a final no-offer outcome. NOT_OFFERED indicates no offer. For 429, follow the server-provided retry time. See Offer Polling & Rate Limits for the complete polling contract and Account Aggregator behavior.

The Hosted Handoff guide explains how to open the URL, handle mobile integrations, and continue the borrower’s application. An offer does not guarantee loan approval.