Legal Report Studio

Bank Integration API v1

Push legal-report cases directly from your loan origination system, track progress, add documents and download the finalised report — no email needed.

Base URL: https://ne.legalreportstudio.com/api/public/bank/v1

1. Authentication

Your law firm issues you an API key (test and live). Send it as a bearer token on every request. Keys are shown once at issue time — store them in your secrets vault.

Authorization: Bearer lrs_live_xxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

2. Create a case

POST /cases — documents are base64 encoded, 15 MB total per request. Re-posting the same external_ref returns the existing case instead of creating a duplicate, so retries are safe.

POST https://ne.legalreportstudio.com/api/public/bank/v1/cases

{
  "external_ref": "LOS-2026-114233",
  "applicant_name": "Ramesh Kumar",
  "co_applicant_name": "Sunita Kumar",
  "loan_account_number": "HL00456778",
  "loan_amount": 4500000,
  "case_type": "TSR",
  "branch": "Karol Bagh",
  "state": "Delhi",
  "district": "New Delhi",
  "property_description": "Flat 402, Tower B, Sector 12",
  "contact_name": "A. Sharma",
  "contact_email": "banker@bank.example.com",
  "contact_phone": "9876543210",
  "documents": [
    { "filename": "sale-deed.pdf", "content_type": "application/pdf", "content": "<base64>" }
  ]
}

202 Accepted
{ "external_ref": "LOS-2026-114233", "status": "received" }

3. Track status

GET /cases/{external_ref} — also accepts the case id. Returns the current stage plus a timeline.

GET https://ne.legalreportstudio.com/api/public/bank/v1/cases/LOS-2026-114233

200 OK
{
  "case_id": "0f2c…",
  "external_ref": "LOS-2026-114233",
  "status": "in_review",
  "applicant_name": "Ramesh Kumar",
  "loan_account_number": "HL00456778",
  "case_type": "TSR",
  "finalised_at": null,
  "timeline": [{ "status": "allocated", "at": "2026-08-02T09:12:00Z" }]
}

Statuses: received, allocated, in_review, query_raised, finalised.

4. Add documents later

POST https://ne.legalreportstudio.com/api/public/bank/v1/cases/LOS-2026-114233/documents

{
  "documents": [
    { "filename": "ec-2015-2026.pdf", "content_type": "application/pdf", "content": "<base64>" }
  ],
  "note": "EC received from SRO"
}

5. Download the finalised report

Returns signed links valid for 60 minutes. Responds 409 not_ready until the report is finalised.

GET https://ne.legalreportstudio.com/api/public/bank/v1/cases/LOS-2026-114233/report

200 OK
{ "files": [{ "filename": "TSR-Ramesh-Kumar.pdf", "url": "https://…", "expires_in": 3600 }] }

6. Status callbacks (optional)

Register an https callback and we POST every status change, signed with HMAC-SHA256 over the raw body using your webhook secret.

POST https://bank.example.com/lrs/callback
X-LRS-Event: case.finalised
X-LRS-Signature: sha256=<hex>

{ "event": "case.finalised", "case": { "external_ref": "LOS-2026-114233", "status": "finalised" } }

Events: case.received, case.allocated, case.query_raised, case.finalised.

7. Errors

401 unauthorized      — missing, revoked or invalid API key
403 forbidden         — key lacks the required scope
400 invalid_request   — validation failed (field list included)
404 not_found         — unknown case
409 not_ready         — report not finalised yet
413 payload_too_large — documents exceed 15 MB
429 rate_limited      — slow down and retry

8. Getting started

  1. Ask your law firm's admin to issue a test API key for your bank.
  2. Post a sample case against the test key and confirm the status endpoint.
  3. Register your callback URL and store the signing secret.
  4. Switch to the live key once your UAT sign-off is complete.