Tyche
  • Tyche API documentation
  • Get Started
  • API Reference
  • Reference
    • Clients
    • Client documents
    • Companies
    • Company documents
    • Loan Products
    • Loans
    • Deposit products
    • Deposits
    • Branch
    • Ledger
    • Channels
Powered by GitBook
On this page
  • Create a new loan
  • Update loan
  • Get all loan accounts
  • Get loan account details
  • Get loan schedule
  • Get loan transactions
  • Get loan balances
  • Repay loan
  • Loan payoff
  • Loan WriteOff
  • Loan topup
  • Liquidate loan
  • Disburse loan

Was this helpful?

  1. Reference

Loans

Add loan

Create a new loan

POST {base url}/v1/loans

Headers

Name
Type
Description

Authorization header*

string

API user secret key

Request Body

Name
Type
Description

loanProductId*

String

loan product id

name*

String

loan name

amount*

Number

loan amount(major)

interestRate

Number

loan interest rate

moratorium

Number

loan moratorium

tenure

Number

loan tenure

accountHolder*

String

id of the client/company

accountHolderType*

String

clients/companies

loanApplicationDate

string

application date

{
    "responseCode": "00",
    "status": "success",
    "message": "loan created successfully",
    "data": {
        "organizationId": "aee1a803-3835-4195-b732-a19f7c3702c8",
        "accountHolderType": "clients",
        "loanName": "third loan with repayment schedule",
        "amount": 10000,
        "accountNumber": "16050926853",
        "accountHolder": "d4c9f36f-ffbb-4c85-87cb-97c8fee6b9ad",
        "interestRate": 12,
        "moratorium": 6,
        "tenure": 90,
        "tranches": null,
        "state": "PENDING",
        "customData": {},
        "document": null,
        "depositAccount": null,
        "loanProductId": "798ca840-07c7-4226-ba10-52b722d8d968",
        "balances": {
            "totalAccruedFees": 0,
            "totalAccruedPenalty": 0,
            "totalAccruedinterest": 0,
            "totalPrincipalBalance": 10000
        },
        "gracePeriod": null,
        "riskState": null,
        "comment": null,
        "writtenOffDate": null,
        "approvedDate": null,
        "disbursedDate": null,
        "declinedDate": null,
        "nextRepaymentDate": null,
        "lastRepaymentDate": null,
        "id": "bd63129a-41d5-417c-a48a-c8377a901390",
        "totalDue": 0,
        "totalPaid": 0,
        "status": "inactive",
        "created_at": "2024-03-12T13:51:00.529Z",
        "updated_at": "2024-03-12T13:51:00.529Z"
    }
}
{
    "message": "No authorization token found",
    "code": 90
}

Update loan

PATCH {base url}/v1/loans

Update a single loan

Headers

Name
Type
Description

Authorization header*

string

API user secret key

Path Param

Name
Type
Description

loanId*

String

id of the loan to be updated

Request Body

Name
Type
Description

state*

string

Possible values are: APPROVED, DECLINED.

comment

text

{"message":"Loan updated successfully"}
{
    "message": "No authorization token found",
    "code": 90
}

Get all loan accounts

Get all loan accounts

GET {base url}/v1/loans

Get all loan accounts

{
    "responseCode": "00",
    "status": "success",
    "message": "Loans fetch successful",
    "data": [
        {
            "id": "bb630816-db35-4fe8-acdd-773a0387cdbd",
            "organizationId": "a5f38f16-6c44-408f-b7ff-6775f02b83ac",
            "loanName": "testing",
            "loanProductId": "fed36374-fcd2-4fac-a820-8100a6ae97af",
            "amount": 3000,
            "totalDue": 0,
            "totalPaid": 0,
            "accountNumber": "0000000427",
            "accountHolderType": "companies",
            "accountHolder": "05768940-15ed-450c-8d8e-70f36ffffff8",
            "tenure": 20,
            "customData": {},
            "document": null,
            "tranches": null,
            "status": "inactive",
            "state": "PENDING",
            "riskState": "PERFOMRING",
            "created_at": "2023-08-23T14:55:11.358Z",
            "updated_at": "2023-08-23T14:55:11.358Z",
            "firstName": null,
            "lastName": null,
            "clientkey": null,
            "name": "chowDeck",
            "accountholdername": "chowDeck",
            "companykey": "05768940-15ed-450c-8d8e-70f36ffffff8",
            "loanproductname": "test45",
            "currency": "NGN"
        }
    ]
}
{
    "message": "No authorization token found",
    "code": 90
}

Get loan account details

Get loan account details

GET {base url}/v1/loans

Get loan account details

Path Parameters

Name
Type
Description

loanId*

string

id of the loan.

{
    "responseCode": "00",
    "message": "Loan fetch successful",
    "data": {
        "id": "e7837f5f-5793-4b0f-bfc7-5f1e4926ace3",
        "organizationId": "ab3b150e-6a5d-429f-b499-f2d6ea99f668",
        "loanName": "No fees loan",
        "loanProductId": "29afa5b5-4d1b-4971-b407-bf421513a669",
        "amount": 100000,
        "totalDue": 0,
        "totalPaid": 0,
        "interestRate": 0,
        "gracePeriod": null,
        "accountNumber": "0000002825",
        "accountHolder": "a3ffa926-14ae-4a82-a9b7-9b27c7df7867",
        "accountHolderType": "clients",
        "tenure": 2,
        "customData": {
            "3rd": "33",
            "fffff": "ttgggg3",
            "4th boolean": "3333",
            "loan custom": "https://res.cloudinary.com/dtui4qk9s/image/upload/v1701709300/uploads/idmcp0elm7hi74jjubik.png"
        },
        "balances": {
            "totalAccruedFees": 0,
            "totalAccruedPenalty": 0,
            "totalAccruedinterest": 0,
            "totalPrincipalBalance": 0
        },
        "tranches": null,
        "status": "inactive",
        "document": null,
        "state": "WRITTENOFF",
        "riskState": "PERFOMRING",
        "comment": null,
        "created_at": "2023-12-04T17:01:43.122Z",
        "updated_at": "2023-12-07T16:55:10.568Z",
        "firstName": "no ref",
        "lastName": "client",
        "clientkey": "a3ffa926-14ae-4a82-a9b7-9b27c7df7867",
        "name": null,
        "accountholdername": null,
        "companykey": null,
        "loanproductname": "No fees loan",
        "currency": "NGN"
    }
}
{
    "message": "No authorization token found",
    "code": 90
}

Get loan schedule

Get loan schedule

GET {base url}/v1/loans/{loanId}/repayments

Request Param

Name
Type
Description

loanId

uuid

id of the loan.

{
    "responseCode": "00",
    "message": "Loan fetch successfully",
    "data": [
        {
            "id": "3df52413-295e-4de6-8230-6d9853265aef",
            "loanId": "e7837f5f-5793-4b0f-bfc7-5f1e4926ace3",
            "principal": 0,
            "interest": 0,
            "fee": 0,
            "penalty": 0,
            "totalDue": 0,
            "totalPaid": 0,
            "state": "WRITTENOFF",
            "dueDate": "2023-12-20",
            "created_at": "2023-12-04T17:01:43.122Z",
            "updated_at": "2023-12-07T16:55:10.228Z"
        },
        {
            "id": "39fa7101-a79d-4521-b285-bef2849309d7",
            "loanId": "e7837f5f-5793-4b0f-bfc7-5f1e4926ace3",
            "principal": 0,
            "interest": 0,
            "fee": 0,
            "penalty": 0,
            "totalDue": 0,
            "totalPaid": 0,
            "state": "WRITTENOFF",
            "dueDate": "2024-01-03",
            "created_at": "2023-12-04T17:01:43.122Z",
            "updated_at": "2023-12-07T16:55:10.228Z"
        }
    ]
}
{
    "message": "No authorization token found",
    "code": 90
}

Get loan transactions

Get loan transactions

GET {base url}/v1/loans/transactions

Get loan transactions

Query Parameters

Name
Type
Description

accountNumber*

string

account number generated for the loan.

{
    "status": "success",
    "message": "Transactions fetched successfully",
    "data": [],
    "pagination": {
        "currentPage": 1,
        "perPage": 15,
        "totalCount": 0,
        "totalPages": 0,
        "previousPage": 0,
        "nextPage": 0
    }
}
{
    "message": "No authorization token found",
    "code": 90
}

Get loan balances

Get loan balances

GET {base url}/v1/loans/{loanId}/balances

Get loan balances

Request Param

Name
Type
Descriopiton

loanId

uuid

id of the loan

{
    "responseCode": "00",
    "message": "Loan balances fetch successfully",
    "data": {
        "balances": {}
    }
}
{
    "message": "No authorization token found",
    "code": 90
}

Repay loan

Repay loan

POST {base url}/v1/loans/transaction/{loanId}/repay

Repay loan

Request Param

Name
Type
Description

loanId

uuid

id of the loan

Request Body

Name
Type
Description

channel

string

id of the channel attached when disbursing internal loan.

amount*

number

amount(major)

{
    "responseCode": "00",
    "message": "loan repayment successful"
}
{
    "message": "No authorization token found",
    "code": 90
}

Loan payoff

Loan payoff

POST {base url}/v1/loans/transaction/{loanId}/payoff

Loan payoff

Request Param

Name
Type
Description

loanId

uuid

id of the loan

Request Body

Name
Type
Description

channel

string

channel

amount*

number

amount(major)

{
    "responseCode": "00",
    "message": "loan payoff successful"
}
{
    "message": "No authorization token found",
    "code": 90
}

Loan WriteOff

POST {base url}/v1/loans/transaction/{loanId}/payoff

Loan write-off

Request Body

Name
Type
Description

amount*

number

amount (major)

{
    "responseCode": "00",
    "message": "loan writeoff successful"
}
{
    "message": "No authorization token found",
    "code": 90
}

loan topup

Loan topup

POST {base url}/v1/loans/transaction/{loanId}/topup

Loan topup

Request Body

Name
Type
Description

amount *

number

loan amount (major)

interest

number

interest

tenure

number

tenure

firstRepaymentDate

string

first repayment date

{
    "responseCode": "00",
    "message": "Loan topup succesfull"
}
{
    "message": "No authorization token found",
    "code": 90
}

Liquidate loan

Liquidate loan

POST {base url}/v1/loans/transaction/{loanId}/liquidate

Liquidate loan

Request Body

Name
Type
Description

amount *

number

loan amount (major)

channel

string

channel

{
    "responseCode": "00",
    "message": "loan liquidate succesfull"
}
{
    "message": "No authorization token found",
    "code": 90
}

disburse loan

Disburse loan

POST {base url}/v1/loans/transaction/{loanId}/disburse

disburse loan

Headers

Name
Value

Authorization header *

API secret key

Request Param

Name
Type
Decsription

loanId

uuid

id of the loan

Body

Name
Type
Description

type *

string

type (INTERNAL/EXTERNAL)

accountNumber

string

nuban account number is required if type is INTERNAL

narration

string

narration

channel

string

channel is required if type is INTERNAL

changeFirstRepaymentDate *

boolean

change repayment date

firstRepaymentDate

string

new first repayment date. required if changeFirstRepaymentDate is set to true.

disburseDate

string

loan disburse date

Response

{
    "responseCode": "00",
    "message": "Loan disbursed succesfully"
}
{
    "message": "No authorization token found",
    "code": 90
}
PreviousLoan ProductsNextDeposit products

Last updated 8 months ago

Was this helpful?