> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lms.bsa.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> The Blackswan partner-facing HTTP API for customers, loans, repayments, and credit decisions.

The Blackswan partner-facing HTTP API for customers, loans,
repayments, and credit decisions.

## What this API gives you

<CardGroup cols={2}>
  <Card title="Customers" icon="user" href="/customers/overview">
    Create and manage customer (borrower) records, including activation
    and closure.
  </Card>

  <Card title="Loans" icon="file-invoice-dollar" href="/loans/overview">
    Origination in a single call — `POST /v1/loans` submits, approves,
    and disburses. Reversals available for operational rollbacks.
  </Card>

  <Card title="Repayments" icon="arrow-right-arrow-left" href="/repayments/overview">
    Record repayments, waivers, refunds, and adjustments against
    active loans.
  </Card>

  <Card title="Credit Scoring" icon="chart-line" href="/credit-decisions/scorecard">
    Look up a customer's credit grade and limit, or boost their limit
    with a financial statement PDF.
  </Card>
</CardGroup>

## Design choices worth knowing

<AccordionGroup>
  <Accordion title="String IDs">
    Every resource ID is exposed as a string. Pass them back exactly as
    you received them — never reformat or parse.
  </Accordion>

  <Accordion title="ISO-8601 dates">
    All dates on the wire are `YYYY-MM-DD`.
  </Accordion>

  <Accordion title="Bearer-token auth">
    Every endpoint requires a JWT in the `Authorization` header. See
    [Authentication](/concepts/authentication).
  </Accordion>

  <Accordion title="Errors as structured codes">
    Failures return a stable error code (`not_found`,
    `invalid_argument`, `unauthenticated`, ...) plus a message. See
    [Errors](/concepts/errors).
  </Accordion>

  <Accordion title="Address resources by partner externalId">
    Customers, loans, and credit-scoring lookups all accept a
    partner-supplied `externalId` alongside the LMS numeric id. You can:

    * Look up customers by externalId:
      `GET /v1/customers?externalId=X` or
      `GET /v1/customers/external/{externalId}`
    * Filter a customer's loans:
      `GET /v1/loans?customerExternalId=X`
    * Post repayments by the loan's externalId:
      `POST /v1/loans/external/{loan_external_id}/repayments`
    * Score a customer by externalId:
      `GET /v1/credit-scorecard/{externalId}`

    Use whichever id you already hold — the wrapper does the lookup.
    See [IDs, dates, and money](/concepts/ids-dates-money#externalids)
    for the full addressing convention.
  </Accordion>
</AccordionGroup>

Ready to start? Head to the [Quickstart](/quickstart).
