Credilinq.ai Loans API
The Loans API from Credilinq.ai — 4 operation(s) for loans.
The Loans API from Credilinq.ai — 4 operation(s) for loans.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/credilinqai-loans-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: CrediLinq Authentication Loans API
description: 'CrediLinq embedded finance API: B2B PayLater and GMV Financing for platforms and marketplaces. Covers Auth0 token generation, merchant onboarding and eligibility, customer and director KYC, credit line and loan (drawdown) management, payments and reconciliation, reporting, and demographic reference data.'
version: '1.0'
contact:
name: CrediLinq Support
email: support@credilinq.ai
url: https://docs.credilinq.ai/
servers:
- url: https://sandbox-api.credilinq.ai
description: Sandbox
- url: https://stage-api.credilinq.ai
description: Staging
- url: https://api.credilinq.ai
description: Production
security:
- access-token: []
tags:
- name: Loans
paths:
/v1/loan/calculateloanschedule:
post:
operationId: DrawdownController_calculateRepaymentScheduleBNPL
summary: Preview Loan
description: ''
parameters:
- name: accept-language
in: header
description: 'Language of the response, supported languages: en-us, in'
schema:
type: string
default: en-us
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CalculateLoanScheduleV1Dto'
responses:
'200':
description: Preview Your Loan Details
content:
application/json:
schema:
$ref: '#/components/schemas/GetCalculateLoanResponse'
'400':
description: Invalid Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestDrawdownResponse'
'401':
description: Invalid credentials
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
'403':
description: Forbidden resource
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
'404':
description: Requested Data Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerNotFoundResponse'
'500':
description: Internal Server Error, Some problem is there, please try after sometime
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorResponse'
tags:
- Loans
security:
- access-token: []
/v1/loan:
post:
operationId: DrawdownController_createDrawdownBNPL
summary: Create Loan
description: ''
parameters:
- name: accept-language
in: header
description: 'Language of the response, supported languages: en-us, in'
schema:
type: string
default: en-us
- name: idempotency-key
in: header
description: Idempotency Key for retries
schema:
type: string
default: ''
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLoanV1Dto'
responses:
'200':
description: Loan created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDrawdownResponse'
'400':
description: Invalid Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestDrawdownResponse'
'401':
description: Invalid credentials
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
'403':
description: Forbidden resource
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
'404':
description: Requested Data Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerNotFoundResponse'
'500':
description: Internal Server Error, Some problem is there, please try after sometime
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorResponse'
tags:
- Loans
security:
- access-token: []
/v1/loan/disburse:
post:
operationId: DrawdownController_disburseDrawdownBNPL
summary: Disburse loan
description: ''
parameters:
- name: accept-language
in: header
description: 'Language of the response, supported languages: en-us, in'
schema:
type: string
default: en-us
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DisburseLoanDto'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DisburseDrawdownResponse'
'400':
description: Invalid Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestDrawdownResponse'
'401':
description: Invalid credentials
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
'403':
description: Forbidden resource
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
'404':
description: Requested Data Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/DrawdownNotFoundResponse'
'500':
description: Internal Server Error, Some problem is there, please try after sometime
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorResponse'
tags:
- Loans
security:
- access-token: []
/v1/loan/summary/{loanId}:
get:
operationId: DrawdownController_getDrawdownBNPL
summary: Loan Summary
description: ''
parameters:
- name: accept-language
in: header
description: 'Language of the response, supported languages: en-us, in'
schema:
type: string
default: en-us
- name: loanId
required: true
in: path
schema:
type: string
responses:
'200':
description: Loan summary details
content:
application/json:
schema:
$ref: '#/components/schemas/GetLoanSummaryResponse'
'401':
description: Invalid credentials
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
'403':
description: Forbidden resource
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
'404':
description: Requested Data Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/DrawdownNotFoundResponse'
'500':
description: Internal Server Error, Some problem is there, please try after sometime
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorResponse'
tags:
- Loans
security:
- access-token: []
components:
schemas:
LoanSummaryResponse:
type: object
properties:
loanId:
type: string
default: string
description: Id of the created loan
loanStatus:
type: string
description: "Status of loan\n \n We support these three statuses,\n \n 1. ```pending-for-approval``` - Loan is pending for approval\n \n 2. ```waiting-for-disbursal``` - Loan is pending for disbursal,\n \n 3. ```active``` - Loan is active,\n \n 4. ```rejected``` - Loan is rejected for some reason,\n \n 5. ```closed``` - Loan is paid & closed"
example: active
loanReferenceNo:
type: string
default: BNPL180820235070
description: Loan Reference number
loanType:
type: string
description: "Type of loan\n \n We support these 4 types,\n \n 1. ```BNPL``` - Buyer Financing\n \n 2. ```BNPL_Term``` - Buyer Financing Term Loan\n \n 3. ```GMV``` - Seller Financing\n \n 4. ```GMV_Term``` - Seller Financing Term Loan"
example: BNPL
customerReferenceNo:
type: string
default: ''
description: Customer Reference number, for which loan is created
loanTerm:
type: number
example: 30
description: Duration of the loan. Based on loan terms selected at the cusomer level, The customer for whom loan is being created should be
enum:
- 30
- 45
- 60
- 90
- 120
- 150
- 180
- 210
- 240
- 270
- 300
- 330
- 360
default: 30
loanAmount:
type: number
description: Loan Amount
example: 3500
totalServiceFee:
type: number
description: Total Service fee applied on loan
example: 99.17
totalServiceFeeDue:
type: number
description: Total Service fee Due for loan
example: 99.17
expectedRepaymentAmount:
type: number
description: Total Expected Repayment Amount
default: 3599.17
totalDueAmount:
type: number
description: Total Due amount that is remaining to repay
default: 3599.17
loanDueDate:
type: string
description: Loan Due Date eg. 18 September 2023
default: 18 September 2023
example: 18 September 2023
dueDatePostGracePeriod:
type: string
description: Due date with Grace Period, eg. Loan Due date is 18 September 2023, and grace period is 3 days. so dueDatePostGracePeriod will be 21 September 2023
default: 18 September 2023
example: 21 September 2023
gracePeriodInDays:
type: number
description: Grace Period(In Days), After which loan goes into overdue.
default: 3
example: 3
totalPenaltyDue:
type: number
description: Penalty outstanding that needs to repay
default: 0
example: 0
currency:
type: string
default: SGD
description: Currency Code
requestedDate:
type: string
description: Loan Due Date eg. 18 Aug 2023
default: 18 Aug 2023
example: 18 Aug 2023
repaymentSchedule:
description: Repayment schedule for loan
type: array
items:
$ref: '#/components/schemas/RepaymentScheduleV2Response'
payments:
description: All payments done by customer for the loan
type: array
items:
$ref: '#/components/schemas/LoanPayment'
required:
- loanId
- loanStatus
- loanReferenceNo
- loanType
- customerReferenceNo
- loanTerm
- loanAmount
- totalServiceFee
- totalServiceFeeDue
- expectedRepaymentAmount
- totalDueAmount
- loanDueDate
- dueDatePostGracePeriod
- gracePeriodInDays
- totalPenaltyDue
- currency
- requestedDate
- repaymentSchedule
- payments
GetCalculateLoanResponse:
type: object
properties:
statusCode:
type: number
default: 200
description: The HTTP status code of the error
data:
description: Response Data from the operation
allOf:
- $ref: '#/components/schemas/CalculateLoanResponse'
message:
type: string
default: Success
description: Human-readable message containing all available details about the operation
success:
type: boolean
default: true
description: A boolean indicating whether this was a success response or an error response
required:
- statusCode
- data
- message
- success
InternalErrorResponse:
type: object
properties:
statusCode:
type: number
default: 500
description: The HTTP status code of the error
error:
type: string
default: string
description: Human-readable generic error message
errorCode:
type: string
default: E_INTERNAL_ERROR
description: Computer-readable code for error handling
message:
type: string
default: string
description: Human-readable error message containing all available details about how the error occurred
success:
type: boolean
default: false
description: A boolean indicating whether this was a success response or an error response
required:
- statusCode
- error
- errorCode
- message
- success
CustomerNotFoundResponse:
type: object
properties:
statusCode:
type: number
default: 404
description: The HTTP status code of the error
error:
type: string
default: string
description: Human-readable generic error message
errorCode:
type: string
default: E_C_CUSTOMER_NOT_FOUND
description: Computer-readable code for error handling
message:
type: string
default: string
description: Human-readable error message containing all available details about how the error occurred
success:
type: boolean
default: false
description: A boolean indicating whether this was a success response or an error response
required:
- statusCode
- error
- errorCode
- message
- success
CalculateLoanResponse:
type: object
properties:
customerReferenceNo:
type: string
default: ''
description: Customer Reference number, for which loan is created
loanTerm:
type: number
example: 30
description: Duration of the loan. Based on loan terms selected at the cusomer level, The customer for whom loan is being created should be
enum:
- 30
- 45
- 60
- 90
- 120
- 150
- 180
- 210
- 240
- 270
- 300
- 330
- 360
default: 30
totalDueAmount:
type: number
description: Total Loan Due Amount
default: 2000
loanDueDate:
type: string
description: Total Loan Due Amount in UTC Format eg. 2023-03-30T11:46:42.195Z
default: '2025-01-08T05:12:17.406Z'
disbursalAmount:
type: number
description: Loan Amount
default: 2000
chargesApplied:
type: number
description: Total Amount of Charges Applied on Loan Amount
default: 50
totalRepaymentExpected:
type: number
description: Total Repayment Expected
default: 2000
currency:
type: string
description: Currency Code
default: SGD
required:
- customerReferenceNo
- loanTerm
- totalDueAmount
- loanDueDate
- disbursalAmount
- chargesApplied
- totalRepaymentExpected
- currency
DrawdownNotFoundResponse:
type: object
properties:
statusCode:
type: number
default: 404
description: The HTTP status code of the error
error:
type: string
default: string
description: Human-readable generic error message
errorCode:
type: string
default: E_D_NOT_FOUND
description: Computer-readable code for error handling
message:
type: string
default: string
description: Human-readable error message containing all available details about how the error occurred
success:
type: boolean
default: false
description: A boolean indicating whether this was a success response or an error response
required:
- statusCode
- error
- errorCode
- message
- success
GetLoanSummaryResponse:
type: object
properties:
statusCode:
type: number
default: 200
description: The HTTP status code of the error
data:
description: Response Data from the operation
allOf:
- $ref: '#/components/schemas/LoanSummaryResponse'
message:
type: string
default: Success
description: Human-readable message containing all available details about the operation
success:
type: boolean
default: true
description: A boolean indicating whether this was a success response or an error response
required:
- statusCode
- data
- message
- success
LoanPayment:
type: object
properties:
paymentId:
type: string
default: string
description: Id of the payment
paymentDate:
type: string
default: '2025-01-08T05:12:17.404Z'
description: Date of the payment in UTC Format eg. 2023-03-30T11:46:42.195Z
paymentAmount:
type: number
default: 1000
description: Payment Amount
paymentMethod:
type: string
default: 1000
description: Payment Amount
example: Bank Transfer/UEN Payment/QR Code Payment
paymentReferenceNo:
type: string
default: string
description: Payment reference number provided while making payment
accountNumber:
type: string
default: string
description: "Account Number varies based on payment types.\n \n\nSo for bank transfer payment( this field will contain ```bank account number``` & for UEN number payment this will contain ```UEN Number```"
accountName:
type: string
default: string
description: Account Name to which payment has been made.
bankName:
type: string
default: string
description: "Bank Name varies based on payment types.\n \n\nSo for bank transfer payment this field will be present, for rest of the types it will be empty"
bankSwiftCode:
type: string
default: string
description: "Bank Swift Code varies based on payment types.\n \n\nSo for bank transfer payment this field will be present, for rest of the types it will be empty"
paymentStatus:
type: number
default: 2
description: "We have 3 types of payment status codes. \n \n For payment rejected: ```0``` \n \n For payment done, but verification pending: ```1```\n \n For payment done & verified: ```2```"
loanId:
type: string
default: string
description: Loan Id, for which payment has been made.
customerReferenceNo:
type: string
default: string
description: Customer Reference Number, for which payment has been made.
metadata:
type: string
default: string
description: Metadata for payments. It can be used for reporting, reconciliation purpose.
createdAt:
type: string
default: '2025-01-08T05:12:17.405Z'
description: Created Timestamp of the payment in UTC Format eg. 2023-03-30T11:46:42.195Z
updatedAt:
type: string
default: '2025-01-08T05:12:17.405Z'
description: Updated Timestamp of the payment in UTC Format eg. 2023-03-30T11:46:42.195Z
currency:
type: string
default: SGD
description: Currency Code
required:
- paymentId
- paymentDate
- paymentAmount
- paymentMethod
- paymentReferenceNo
- accountNumber
- accountName
- bankName
- bankSwiftCode
- paymentStatus
- loanId
- customerReferenceNo
- metadata
- createdAt
- updatedAt
- currency
UnauthorizedResponse:
type: object
properties:
statusCode:
type: number
default: 401
description: The HTTP status code of the error
error:
type: string
default: string
description: Human-readable generic error message
errorCode:
type: string
default: E_UNAUTHORIZED
description: Computer-readable code for error handling
message:
type: string
default: string
description: Human-readable error message containing all available details about how the error occurred
success:
type: boolean
default: false
description: A boolean indicating whether this was a success response or an error response
required:
- statusCode
- error
- errorCode
- message
- success
DisburseLoanDto:
type: object
properties:
loanId:
type: string
default: ''
example: c3eb1619-ff24-4773-97d8-b05264621e60
description: Loan Id
metadata:
type: string
description: Metadata for loans. It can be used for reporting, reconciliation purpose.
example: ''
required:
- loanId
RepaymentScheduleV2Response:
type: object
properties:
dueDate:
type: string
description: Loan Due Date eg. 18 September 2023
default: 18 September 2023
example: 18 September 2023
totalDueForPeriod:
type: number
description: Total due payment for current period
example: 3599.17
penaltyDueForPeriod:
type: number
description: Total due penalty for current period
example: 0
totalServiceFeeForPeriod:
type: number
description: Total Service fee for current period
example: 99.17
totalServiceFeeDueForPeriod:
type: number
description: Total Service fee due for current period
example: 99.17
principalDueForPeriod:
type: number
description: Total due principal for current period
example: 3500
dueDatePostGracePeriod:
type: string
description: Due date with grace period eg. 21 September 2023
example: 21 September 2023
paid:
type: boolean
description: indicates that payment is completed or not
example: false
required:
- dueDate
- totalDueForPeriod
- penaltyDueForPeriod
- totalServiceFeeForPeriod
- totalServiceFeeDueForPeriod
- principalDueForPeriod
- dueDatePostGracePeriod
- paid
ForbiddenResponse:
type: object
properties:
statusCode:
type: number
default: 403
description: The HTTP status code of the error
error:
type: string
default: string
description: Human-readable generic error message
errorCode:
type: string
default: E_FORBIDDEN
description: Computer-readable code for error handling
message:
type: string
default: string
description: Human-readable error message containing all available details about how the error occurred
success:
type: boolean
default: false
description: A boolean indicating whether this was a success response or an error response
required:
- statusCode
- error
- errorCode
- message
- success
DisburseDrawdownResponse:
type: object
properties:
statusCode:
type: number
default: 200
description: The HTTP status code of the error
data:
description: Response Data from the operation
allOf:
- $ref: '#/components/schemas/DisburseLoanStatusResponse'
message:
type: string
default: Success
description: Human-readable message containing all available details about the operation
success:
type: boolean
default: true
description: A boolean indicating whether this was a success response or an error response
required:
- statusCode
- data
- message
- success
DisburseLoanStatusResponse:
type: object
properties:
loanId:
type: string
default: string
description: Id of the created loan
loanReferenceNo:
type: string
default: string
description: Reference Number of the created loan for eg. BNPL***
customerReferenceNo:
type: string
default: ''
description: Customer Reference number, for which loan is created
loanTerm:
type: number
example: 30
description: Duration of the loan. Based on loan terms selected at the cusomer level, The customer for whom loan is being created should be
enum:
- 30
- 45
- 60
- 90
- 120
- 150
- 180
- 210
- 240
- 270
- 300
- 330
- 360
default: 30
loanType:
type: string
description: "Type of loan\n \n We support these two types,\n \n 1. ```BNPL``` - Buyer Financing\n \n 2. ```GMV``` - Seller Financing"
example: BNPL
loanStatus:
type: string
description: "Status of loan\n \n We support these three statuses,\n \n 1. ```pending-for-approval``` - Loan is pending for approval\n \n 2. ```waiting-for-disbursal``` - Loan is pending for disbursal,\n \n 3. ```active``` - Loan is active,\n \n 4. ```rejected``` - Loan is rejected for some reason,\n \n 5. ```closed``` - Loan is paid & closed"
example: active
disbursalAmount:
type: number
description: Loan Amount
default: 2000
totalDueAmount:
type: number
description: Total Loan Due Amount
default: 2000
loanDueDate:
type: string
description: Loan Due Date in Local Format eg. 21 Aug 2023
default: 21 August 2023
example: 21 August 2023
loanDueDateUTC:
type: string
description: Loan Due Date in UTC Format eg. 2023-08-20T18:30:00.000Z
default: '2023-08-20T18:30:00.000Z'
example: '2023-08-20T18:30:00.000Z'
dueDatePostGracePeriod:
type: string
description: Loan Due Date with grace period in Local Format eg. 24 Aug 2023
default: 24 August 2023
example: 24 August 2023
dueDatePostGracePeriodUTC:
type: string
description: Loan Due Date with grace period in UTC Format eg. 2023-08-23T18:30:00.000Z
default: '2023-08-23T18:30:00.000Z'
example: '2023-08-23T18:30:00.000Z'
gracePeriodInDays:
type: number
description: Grace Period(In Days), After which loan goes into overdue.
default: 3
example: 3
charges:
type: number
description: Total Monthly Charges(%) Applied on Loan Amount
default: 1
chargesApplied:
type: number
description: Total Amount of Charges Applied on Loan Amount
default: 50
customerApprovedCredit:
type: number
description: Customer Approved Credit Line
default: 20000
customerAvailableCredit:
type: number
description: Customer Remaining Credit Line after loan
default: 17500
remark:
type: string
description: Remark given while requesting for loan
default: string
metadata:
type: string
default: string
description: Metadata for loans. It can be used for reporting, reconciliation purpose.
createdAt:
type: string
default: '2025-01-08T05:12:17.405Z'
description: Created Timestamp of the created loan in UTC Format eg. 2023-03-30T11:46:42.195Z
updatedAt:
type: string
default: '2025-01-08T05:12:17.405Z'
description: Updated Timestamp of the created loan in UTC Format eg. 2023-03-30T11:46:42.195Z
currency:
type: string
default: SGD
description: Currency Code
required:
- loanId
- loanReferenceNo
- customerReferenceNo
- loanTerm
- loanType
- loanStatus
- disbursalAmount
- totalDueAmount
- loanDueDate
- loanDueDateUTC
- dueDatePostGracePeriod
- dueDatePostGracePeriodUTC
- gracePeriodInDays
- charges
- chargesApplied
- customerApprovedCredit
- customerAvailableCredit
- remark
- metadata
- createdAt
- updatedAt
- currency
BadRequestDrawdownResponse:
type: object
properties:
statusCode:
type: number
default: 400
error:
default: ''
oneOf:
- type: string
- type: array
items:
type: string
errorCode:
default: ''
oneOf:
- type: string
- type: array
items:
type: string
message:
default: Error
oneOf:
- type: string
- type: array
items:
type: string
success:
type: boolean
default: false
required:
- statusCode
- error
- errorCode
- message
- success
LoanResponse:
type: object
properties:
loanId:
type: string
default: string
description: Id of the created loan
loanReferenceNo:
type: string
default: string
description: Reference Number of the created loan for eg. BNPL***
customerReferenceNo:
type: string
default: ''
description: Customer Reference number, for which loan is created
loanTerm:
type: number
example: 30
description: Duration of the loan. Based on loan terms selected at the cusomer level, The customer for whom loan is being created should be
enum:
- 30
- 45
- 60
- 90
- 120
- 150
- 180
- 210
- 240
- 270
- 300
- 330
- 360
default: 30
loanType:
type: string
description: "Type of loan\n \n We support these two types,\n \n 1. ```BNPL``` - Buyer Financing\n \n 2. ```GMV``` - Seller Financing"
example: BNPL
loanStatus:
type: string
description: "Status of loan\n \n We support these three statuses,\n \n 1. ```pending-for-approval``` - Loan is pending for approval\n \n 2. ```waiting-for-disbursal``` - Loan is pending for disbursal,\n \n 3. ```active``` - Loan is active,\n \n 4. ```rejected``` - Loan is rejected for some reason,\n \n 5. ```closed``` - Loan is paid & closed"
example: waiting-for-disbursal
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/credilinqai/refs/heads/main/openapi/credilinqai-loans-api-openapi.yml