---
title: "List loan products"
method: GET
path: "/v2/loan-products"
tags: ["Loan products"]
---

# List loan products

`GET /v2/loan-products`

## Request

- Base URL: `https://sandbox.pismolabs.io/lending`
- URL: `https://sandbox.pismolabs.io/lending/v2/loan-products`
- Auth: HTTP bearer

List loan products.

## Query parameters

- `nextCursor` string, required: Opaque pagination cursor returned by the API. Pass back exactly as received to retrieve the next page; do not parse or modify it.
- `limit` integer: Maximum returned list size. Default = `10`.
- `loanProductId` string: Loan product ID. Accepts either a lowercase UUID (e.g., "2717a296-124a-47cc-b2a1-91e80dc723eb") or an uppercase alphanumeric string with underscores (e.g., "MY_LOAN_PRODUCT_001"). If not provided during creation, a UUID is auto-generated.
- `loanProductName` string: Open text that describes the product
- `productType` 'BNPL' | 'PERSONAL' | 'BUSINESS': Product type
- `currency` integer: ISO 4217 currency code
- `collateralType` 'NONE' | 'SINGLE' | 'COLLATERAL_MULTIPLE': Collateral
- `disbursementType` 'NONE' | 'SINGLE' | 'MULTIPLE': Disbursement method type or how the loan is delivered.
- `status` 'ACTIVE' | 'INACTIVE': Product status
- `startDate` string, date: Date value. Format = YYYY-MM-DD.
- `endDate` string, date: Date value. Format = YYYY-MM-DD.
- `sortField` 'PRODUCT_ID' | 'PRODUCT_NAME' | 'CREATION_DATE'
- `sortOrder` 'ASC' | 'DESC'

## Response `200`

Loan Products Retrieved.

- ListLoanProductV2Response
  - `has_next` boolean, required: Does the query have additional items to return?
  - `items` LoanProductV2Response[], required: List of loan products
    - `collateral` 'NONE' | 'SINGLE' | 'COLLATERAL_MULTIPLE', required: Collateral
    - `currency` integer, required: ISO 4217 currency code
    - `disbursement_method` LoanProductV2DisbursementMethod, required: Disbursement method
      - `type` 'NONE' | 'SINGLE' | 'MULTIPLE', required: Disbursement method type or how the loan is delivered.
    - `processing_codes` ProcessingCodes, required: Define processing codes for each operation during the loan lifecycle.
      - `booking` ProcessingCode[]: List of booking processing code
      - `disbursement` DisbursementPC: Define processing codes for disbursement operations.
        - `external` ProcessingCode[]: List of processing codes for external account
        - `internal` ProcessingCode[]: List of processing codes for internal account
      - `early_final_settlement` EfsPC: Define processing codes for early final settlement (EFS) operations.
        - `fee` ProcessingCode[]: List of fee processing codes for early final settlement
      - `insurance` InsurancePC: Define processing codes for insurance operations.
        - `booking` ProcessingCode[]: List of booking processing codes
        - `repayment` ProcessingCode[]: List of repayment processing codes
      - `penalty_accruals` ProcessingCode[]: List of penalty accruals processing codes
      - `penalty_waiver` ProcessingCode[]: List of penalty waiver processing codes
      - `prepayment` PrepaymentPC: Define processing codes for prepayment operations.
        - `fee` ProcessingCode[]: List of fee processing codes for prepayment
      - `present_value_discount` ProcessingCode[]: List of present value discount processing codes
      - `repayment` ProcessingCode[]: List of repayment processing codes
      - `restructuring` ProcessingCode[]: List of restructuring processing codes
    - `product_id` string, required: Loan product ID. Accepts either a lowercase UUID (e.g., "2717a296-124a-47cc-b2a1-91e80dc723eb") or an uppercase alphanumeric string with underscores (e.g., "MY_LOAN_PRODUCT_001"). If not provided during creation, a UUID is auto-generated.
    - `product_name` string, required: Open text that describes the product
    - `status` 'ACTIVE' | 'INACTIVE', required: Product status
    - `created_at` string, date-time: Loan created date in UTC. Format = YYYY-MM-DDThh:mm:ss.SSSZ
    - `early_final_settlement` LoanProductEFS: Define some early settlement requirements.
      - `penalty` PenaltyV2, required: Penalty configuration for early settlement or prepayment
        - `type` 'PERCENTAGE' | 'FIXED_AMOUNT', required: Type of penalty calculation
        - `value` number, double, required: Penalty value. For `PERCENTAGE` penalty type, enter a value between 0 and 1 (such as 0.05 for 5%). For `FIXED_AMOUNT` penalty type, enter the fixed amount value.
      - `lock_in_period` integer: Minimum number of installments that must be made before early settlement is possible.
    - `grace_period_days` integer: Number of calendar days after the installment due date during which late fees and delinquency are not applied. A value of `0` or omitted indicates no grace period.
    - `interest_plan_ids` string[]: List of interest plan IDs
    - `loan_activation_method` 'ON_BOOKING' | 'ON_DISBURSEMENT' | 'ON_DISBURSEMENT_OR_REPAYMENT' | 'ON_REPAYMENT': Indicate when the system changes a loan to active status. Default is `ON_DISBURSEMENT_OR_REPAYMENT`. If disbursement method type is `NONE`, you cannot set to `ON_DISBURSEMENT`, and if set to `ON_DISBURSEMENT_OR_REPAYMENT` the system changes the loan status on repayment.
    - `minimum_total_payment` number, double: Minimum total payment for the loan product. Must be positive.
    - `parameters` LoanProductV2Parameters: Loan product parameters
      - `overdue_threshold_days` number: Number of days before the account is considered overdue
      - `stop_accrual_number_of_days` number: Maximum period during which delinquency-related charges accrue after a payment is overdue, based on lender policy or local regulations. Once this threshold is reached, new penalty charges stop posting, so the outstanding debt no longer increases.
      - `delinquency_closure_days` number, nullable: Number of days past due after which all loans for the account are automatically closed or canceled using the delinquency closure process. When `null`, the loan product does not enable this delinquency closure feature. Value must be greater than `overdue_threshold_days` when both fields are provided. Returns `ELND0378` if `delinquency_closure_days` are less than or equal to `overdue_threshold_days`.
      - `bring_to_present_value_on_delinquency` boolean: Should the platform bring future installments to present value before cancellation when closing due to delinquency? When set to `true`, at least one `processing_codes.present_value_discount` code must be configured on the loan product (either provided in the same request or already present on the product for updates). Returns `ELND0380` otherwise.
      - `backdating_enabled` boolean: Does the product allow backdated payments? (These payments do not get penalized for arriving after the effective payment date). Defaults to `false`.
      - `max_backdating_window_days` number: Maximum age (in days) of a backdated `repayment_date`. Meaningful only when `backdating_enabled` is `true`; defaults to 60 when backdating is enabled and no value is provided. Returns `ELND0379` if set while `backdating_enabled` is not `true`.
    - `penalty_plan_codes` string[]: List of charge plan codes in order
    - `prepayment` LoanProductPrepayment: Defines some prepayment requirements.
      - `penalty` PenaltyV2, required: Penalty configuration for early settlement or prepayment
        - `type` 'PERCENTAGE' | 'FIXED_AMOUNT', required: Type of penalty calculation
        - `value` number, double, required: Penalty value. For `PERCENTAGE` penalty type, enter a value between 0 and 1 (such as 0.05 for 5%). For `FIXED_AMOUNT` penalty type, enter the fixed amount value.
      - `reduce_option` ReduceOption[], required: List of options to define how to reduce an outstanding loan amount. `INSTALLMENT` reduces the installment amounts over time but keeps the same maturity date. `TERM` applies the prepayment amount to reduce the loan term (duration), changing the loan maturity date. With either option, if the amount paid is not enough to cover a full installment amount, it partially pays the installment based on the prepayment hierarchy settings.
      - `lock_in_period` integer: Minimum number of installments that must be made before early settlement is possible.
    - `product_type` 'BNPL' | 'PERSONAL': Loan product type
    - `repayment_calculation_method` 'RATES': Method used to calculate the repayment amount
    - `repayment_hierarchy_code` string: Repayment hierarchy code. Must be normalized (Unicode NFC), and may contain a UUID, or uppercase letters, numbers, and underscore.
    - `updated_at` string, date-time: Loan last updated date in UTC. Format = YYYY-MM-DDThh:mm:ss.SSSZ.
    - `version` integer: Product version
  - `interest_plan_ids` string[]: List of interest plan IDs
  - `next_cursor` string: Opaque pagination cursor returned by the API. Pass back exactly as received to retrieve the next page; do not parse or modify it.
  - `repayment_calculation_method` 'RATES': Method used to calculate the repayment amount

## Other responses

- `400`: A validation error occurred.
- `500`: Internal Server Error

---

[API](https://skmtc.dev/pismo/apis/lending.md) - [All operations](https://skmtc.dev/pismo/apis/lending/llms.txt) - [OpenAPI document](https://skmtc.dev/pismo/apis/lending/revisions/a288022e3d8b?raw)
