A repayment is a transaction posted against an active loan. The API exposes two operations today: posting a new repayment, and reading one back by id. All repayment endpoints are nested under a loan. The loan can be addressed two equivalent ways. Prefer the externalId form — it lets you drive repayment flows off the reference you already store, with no client-side mapping to a numeric LMS id.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.
Addressing the loan
| Form | Path prefix | When to use |
|---|---|---|
| By loan externalId (recommended) | /v1/loans/external/{loan_external_id}/repayments/... | Use the externalId you supplied on loan create. |
| By LMS id | /v1/loans/{loan_id}/repayments/... | Use the numeric id from the create response. |
404 not_found if no loan matches.
The repayment object
Transaction type label. For partner-posted transactions this is
always
Repayment.ISO-8601
YYYY-MM-DD. Date the transaction was effective.Total transaction amount.
Portion applied to principal. Omitted if zero.
Portion applied to interest. Omitted if zero.
Overpayment amount, present only when the transaction exceeded the
outstanding balance. Surfacing it on the response is a strong signal
that something needs reconciling.
Whether this transaction has been reversed (always
false on a
fresh repayment — reversals are an operational LMS-side action).Endpoints
| Method | Path | Purpose |
|---|---|---|
| POST | /v1/loans/external/{loan_external_id}/repayments | Repay by loan externalId (recommended) |
| POST | /v1/loans/{loan_id}/repayments | Repay by LMS id |
| GET | /v1/loans/external/{loan_external_id}/repayments/{transaction_id} | Get a transaction by loan externalId (recommended) |
| GET | /v1/loans/{loan_id}/repayments/{transaction_id} | Get a transaction by LMS id |
Request body
POST /v1/loans/.../repayments takes a single-field body:
Must be greater than 0.

