List the organization's loan products
Returns the loan products the organization offers, default product first, with the name and description to show the customer and the standard contract terms. The customer chooses one by passing its loan_product when they create an application. Requires the org:lending.loan_applications:read permission for an organization client; a user token can always call this. The response lists only the products the organization offers to the user. A user token is that user. An organization client names the user with user_id. Without user_id, the response lists only the products offered to every customer.
Authorization
oauth2 Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.
In: header
Path Parameters
The organization's slug.
Query Parameters
The customer to list products for. Ignored for a user token.
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/accounts/loan/products/muthokinju"{ "products": [ { "loan_product": "ACME_FLAT_RATE", "name": "Fixed fee", "description": "You pay fixed 1% fee for 7 days. Late fee 0.2% a day.", "short_description": "Fixed 1% fee for 7 days", "loan_product_type": "FLAT_RATE", "tenure": { "duration": 7, "unit": "DAYS" }, "interest_rate": { "basis_points": 100, "period_value": 7, "period_unit": "DAYS" }, "penalty_terms": { "rate_basis_points": 20, "calculation_basis": "PRINCIPAL_AND_ARREARS", "type": "RECURRING", "period_days": 1, "trigger": "AFTER_LOAN_END", "grace_period_days": 0, "max_charge_days": 7 }, "terms_range": { "min_loan_amount": 1000000, "max_loan_amount": 50000000 }, "currency": "KES" } ]}{ "code": "BAD_REQUEST", "description": "Bad Request"}{ "code": "UNAUTHORISED", "description": "Unauthorised"}{ "code": "FORBIDDEN", "description": "Forbidden"}{ "code": "RATE_LIMIT_EXCEEDED", "description": "Too Many Requests"}{ "code": "INTERNAL_ERROR", "description": "Internal Server Error"}Apply for a loan POST
Submits the quote. A term loan product disburses the loan to a new account. A credit line product keeps status `ACTIVE`, and a workflow approves or rejects the application. All supported organizations use the same required `loan_amount` and optional `reference_id` fields. Organization clients must send `user_id` with the `org:lending.loan_applications:write` scope. A missing `loan_amount` returns 400 `INVALID_PARAMS`. Returns 404 for an application outside the caller's scope, or status `REJECTED` for an existing active loan account. Returns 404 when the organization does not offer the product to the user, or when that check cannot complete. Send an optional `Idempotency-Key` header to replay the result after a retry.
List the refinance offers of a revolving credit facility GET
Returns the refinance offers of the caller's revolving credit facility after a reviewer approved them, the newest first. Returns 404 `RESOURCE_NOT_FOUND` for a facility of another user.