Loans

List account loans

Retrieve all loans associated with the specified account.

Note: This endpoint requires an account-specific access token.

get/v2/accounts/{accountId}/loans

Request

  • Base URL
    https://sandbox.pismolabs.io/lending
  • URL
    https://sandbox.pismolabs.io/lending/v2/accounts/{accountId}/loans
  • Auth
    HTTP bearer

Path parameters

accountIdstring required

ID of the account the loan belongs to

Query parameters

nextCursorstring required

Opaque pagination cursor returned by the API. Pass back exactly as received to retrieve the next page; do not parse or modify it.

Example:NmI5NmNlYzUtZTg1Ni00MjY0LTlkNzctNGY5OGIzNTk4YWM1IzE3NDU5NDY2MTg3NTIjMjAyNS0wNC0yOVQxNzoxMDoxOC43MjY3MTY0Mlo

Next page cursor identifier

limitinteger

Maximum returned list size. Default = 10.

Example:10

Maximum number of items to return per page

status'PENDING' | 'BOOKED' | 'ACTIVE' | 'CANCELED' | 'SETTLED' | 'RENEGOTIATED'

Loan status

PENDING-The loan has been created but has not yet been booked. Terms may still be under review or awaiting confirmation.

BOOKED-The loan has been approved and booked. The payment schedule is confirmed and the loan is ready for disbursement.

ACTIVE-The loan is active and in progress. Funds have been disbursed and the borrower is expected to make repayments according to the agreed schedule.

CANCELED-A repayment is no longer expected to be paid.

SETTLED-The loan has been fully repaid and is closed. No further repayments are expected.

RENEGOTIATED-The original loan terms have been modified after booking, typically due to a change in repayment conditions or borrower circumstances.

Example:ACTIVE

Loan status filter

expandboolean

Also retrieve disbursements and repayments?

presentValueboolean

Boolean value

Example:true

Retrieve the present value of the loan?

referenceDatestring date

Date value. Format = YYYY-MM-DD.

Example:2023-12-31

Reference date to calculate the present value of the loan

fromCreatedDatestring date

Date value. Format = YYYY-MM-DD.

Example:2023-12-31

Filter loans created on or after this date (inclusive). Format = YYYY-MM-DD. Invalid format returns 400 Bad Request. Can be used alone to get all loans created from this date onwards, or combined with toCreatedDate to filter within a specific date range.

toCreatedDatestring date

Date value. Format = YYYY-MM-DD.

Example:2023-12-31

Filter loans created on or before this date (inclusive). Format = YYYY-MM-DD. Invalid format returns 400 Bad Request. Can be used alone to get all loans created up to this date, or combined with fromCreatedDate to filter within a specific date range.

fromStartDatestring date

Date value. Format = YYYY-MM-DD.

Example:2023-12-31

Filter loans with start/activation date on or after this date (inclusive). Format = YYYY-MM-DD. Invalid format returns 400 Bad Request. Can be used alone to get all loans with start date from this date onwards, or combined with toStartDate to filter within a specific date range.

toStartDatestring date

Date value. Format = YYYY-MM-DD.

Example:2023-12-31

Filter loans with start/activation date on or before this date (inclusive). Format = YYYY-MM-DD. Invalid format returns 400 Bad Request. Can be used alone to get all loans with start date up to this date, or combined with fromStartDate to filter within a specific date range.

summarizeLoansboolean

When true, returns an aggregated summary across all loans that match the provided filter parameters (pagination is ignored). The response contains only the loan_summary field. When absent or false, returns a standard paginated response (has_next, next_cursor, items).

includeInsuranceHistoryboolean

Indicate true to get a response with the insurance history for loans in any state (ACTIVE, CANCELED, or SETTLED). When you use true for the query, each insured installment in repayment_schedule includes an insurance_premium_state field, and the response includes loan-level insurance_summary for loans that have an insurance policy. (The field is omitted entirely for uninsured loans). Also the response includes cancelled insurance and its installments. When absent or false, the response does not include these insurance-related fields. An invalid boolean value returns 400 with error code ELND1807. On the list endpoint, summarizeLoans=true takes precedence and this flag is ignored when summarizeLoans=true.

Response

Loans retrieved

OR

Example response

{
  "has_next": true,
  "items": [
    {
      "account_id": 514751581,
      "created_at": "2026-09-03T17:58:35.520Z",
      "loan_amount": 2000,
      "loan_id": "MY_CUSTOM_LOAN_ID",
      "product_id": "2717a296-124a-47cc-b2a1-91e80dc723eb",
      "start_date": "2022-06-28",
      "status": "ACTIVE",
      "total_payable": {
        "amount_due": {
          "charge": 5,
          "fee": 10,
          "interest": 20,
          "penalty": 27,
          "principal": 2000,
          "tax": 10,
          "total": 2072
        },
        "arrears": {
          "charge": 5,
          "fee": 10,
          "interest": 20,
          "penalty": 27,
          "principal": 2000,
          "tax": 10,
          "total": 2072
        },
        "charge": 5,
        "fee": 10,
        "interest": 20,
        "penalty": 27,
        "principal": 2000,
        "tax": 10,
        "total": 2072
      },
      "total_paid": {
        "amount_paid": {
          "principal": 2000,
          "interest": 20,
          "fee": 10,
          "tax": 10,
          "charge": 5,
          "penalty": 27,
          "total": 2072
        }
      },
      "updated_at": "2024-03-15T13:00:00.000+00:00",
      "authorization_tracking_id": "4df987e3-8179-11ed-8209-06c7b022d1ee",
      "contracted_installment_count": 6,
      "days_past_due": 12,
      "disbursement": {
        "can_disburse_more": true,
        "remaining_to_disburse_amount": 700,
        "schedule": [
          {
            "amount": 300,
            "authorization_id": 2422410859,
            "date": "2025-11-13",
            "disbursement_account": {
              "account_id": 317890964,
              "account_type": "INTERNAL"
            },
            "id": "54efa995-66f1-4595-9934-5b92222faf37",
            "status": "PAID",
            "tracking_id": "003b3de8-c321-464c-a3dd-6009b8698325",
            "transactions_ids": [
              6354273849,
              982393773
            ]
          }
        ],
        "total_disbursed_amount": 300,
        "type": "SINGLE"
      },
      "external_id": "my_external_id",
      "grace_period_days": 7,
      "initial_amounts": {
        "principal": 2000,
        "interest": 20,
        "charge": 5,
        "tax": 10,
        "fee": 10,
        "penalty": 27,
        "total": 2072
      },
      "insurance_summary": {
        "installment_counts": {
          "canceled": 3,
          "paid": 3
        },
        "insurance_ever_active": true,
        "last_covered_date": "2023-12-31"
      },
      "loan_principal_amount": 1800,
      "original_loan_id": "2717a296-124a-47cc-b2a1-91e80dc723eb",
      "prepayments": [
        {
          "amount_paid": 1000,
          "created_at": "2026-06-15T10:00:00.000Z",
          "new_remaining_total": 4000,
          "penalty_amount_paid": 50,
          "prepayment_id": "73e45fd5-759f-4e04-a88a-7172fa948afa",
          "reduce_option": "INSTALLMENT",
          "settlement_date": "2026-06-15T10:00:00.000Z",
          "status": "REGISTERED",
          "updated_at": "2026-06-15T10:00:00.000Z"
        }
      ],
      "rates": {
        "annual_interest_rate": 12,
        "effective_annual_cost": 319.98,
        "effective_monthly_cost": 12.7,
        "interest_rate": 12
      },
      "repayment_schedule": [
        {
          "repayment_id": "5c075cc6-8dc2-4fe6-9ed7-cf5687d4e834",
          "transactions_ids": [
            6354273849,
            982393773
          ],
          "status": "SCHEDULED",
          "period": 1,
          "due_date": "2022-06-28",
          "real_due_date": "2025-06-28",
          "present_value_amount": 100,
          "present_value_discount": 100,
          "amount_due": {
            "charge": 5,
            "fee": 10,
            "interest": 20,
            "penalty": 27,
            "principal": 2000,
            "tax": 10,
            "total": 2072
          },
          "amount_paid": {
            "charge": 5,
            "fee": 10,
            "interest": 20,
            "penalty": 27,
            "principal": 2000,
            "tax": 10,
            "total": 2072
          },
          "initial_amount": {
            "charge": 5,
            "fee": 10,
            "interest": 20,
            "penalty": 27,
            "principal": 2000,
            "tax": 10,
            "total": 2072
          },
          "insurance": {
            "charge": 5,
            "fee": 10,
            "interest": 20,
            "penalty": 27,
            "principal": 2000,
            "tax": 10,
            "total": 2072
          },
          "insurance_premium_state": "PAID"
        }
      ],
      "restructure_loan_id": "2717a296-124a-47cc-b2a1-91e80dc723eb",
      "restructured_initial_amounts": {
        "principal": 2000,
        "interest": 20,
        "charge": 5,
        "tax": 10,
        "fee": 10,
        "penalty": 27,
        "total": 2072
      },
      "total_expected_payment_amount": 1100,
      "transactions_ids": [
        6354273849,
        982393773
      ]
    }
  ],
  "next_cursor": "NmI5NmNlYzUtZTg1Ni00MjY0LTlkNzctNGY5OGIzNTk4YWM1IzE3NDU5NDY2MTg3NTIjMjAyNS0wNC0yOVQxNzoxMDoxOC43MjY3MTY0Mlo"
}

Changes

No recorded changes to this operation across all 1 revision of this API.