Product Flow
User On-Boarding
Dynamic Status/Banner API
curl --location 'https://user-dev.kredmint.in/user/eligibility'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"username":"9819413273",
"page":"profile",
"source": "MOS"
}'
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"username\":\"9819413273\",\n \"page\":\"profile\",\n \"source\": \"MOS\"\n}");
Request request = new Request.Builder()
.url("https://user-dev.kredmint.in/user/eligibility")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Basic XXXX")
.build();
Response response = client.newCall(request).execute();
import http.client
import json
conn = http.client.HTTPSConnection("user-dev.kredmint.in")
payload = json.dumps({
"username": "9819413273",
"page": "profile",
"source": "MOS"
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic XXXX'
}
conn.request("POST", "/user/eligibility", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
// WARNING: For POST requests, body is set to null by browsers.
var data = JSON.stringify({
"username": "9819413273",
"page": "profile",
"source": "MOS"
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if(this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://user-dev.kredmint.in/user/eligibility");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Basic XXXX");
xhr.send(data);
This API can use to show the latest information about the user. for Ex. showing user status, assigned credit limit, banner url, etc.
HTTP Request
Sandbox: POST https://user-dev.kredmint.in/user/eligibility
Production: POST https://user.kredmint.in/user/eligibility
Request Body:
{
"source": "BNPL",
"username": "9887206895",
"page": "profile",
"failureDeepLink": "https://example.com/handler/failed",
"successDeepLink": "https://example.com/handler/success",
"backDeepLink": "https://example.com/handler/back",
"userContext": {
"fullName": "",
"mobile": "",
"email": "",
"gender": "MALE",
"gst": "",
"pancard": "",
"businessName": "",
"aadharNumber": "",
"gmv": {"minInLac": 0, "maxInLac": 0},
"latLong": {"latitude": 0.0, "longitude": 0.0},
"anchorVintageInDays": 368,
"address": {
"addressLine1": "",
"addressLine2": "",
"addressLine3": "",
"state": "",
"city": "",
"pincode": ""
},
"companyOwned": "true"
}
}
Response Body:
{
"payload": {
"show": true,
"title": "Get a Credit Limit with kredmint.",
"subTitle": "Kredmint lets you order now & pay later as per convenience.",
"logoUrl": "https://kredmint-public.s3.ap-south-1.amazonaws.com/b3+(1).png",
"landingUrl": "https://merchant2-dev.kredmint.in/auth/?sid=6626bb89d330a05177b64cce&userId=USR-2233&token=6b14bbb9-908a-4e9f-b7d0-99919189f195",
"landingType": "DEFAULT",
"availableCreditLimit": 0.0,
"state": "IncompleteProfile",
"creditLimit": 0.0,
"totalOutstanding": 0.0
},
"sum": 0.0,
"timestamp": 1713814409435,
"error": null
}
Request Body Attributes
| Attribute | Description |
|---|---|
| source | Static Value provided by kredmint. |
| username | User mobile number. |
| page | Static value profile. |
| failureDeepLink | Handler for failure case to redirection from kredmint to client |
| successDeepLink | Handler for success case to redirection from kredmint to client |
| backDeepLink | Handler for back button action perform by the user to redirection from kredmint to client |
| userContext | can pass user data to pre-fill user profile for seamless experience |
Static Url
curl 'https://merchant2-dev.kredmint.in/auth?partnerId=XXX&clientToken=XXXX&mobile=9887206895'
This URL can configure to any banner or button to directly route on kredmint.
Kredmint Flutter SDK
The Kredmint Flutter SDK enables seamless integration of loan onboarding and financial workflows into your Flutter applications.
With the SDK, businesses can integrate customer onboarding, loan applications, document submission, KYC verification, and other financial services into their mobile applications.
Features
- Customer registration and onboarding
- Loan application initiation
- KYC and document verification
- Financial information collection
- Bank account and financial data integration
- Loan application status tracking
- Secure communication with Kredmint APIs
Prerequisites
Before integrating the Kredmint Flutter SDK, ensure that you have:
- Flutter SDK installed.
- A Flutter application.
- An active Kredmint partner account.
- Valid SDK credentials.
- Access to the required onboarding APIs.
For Flutter installation instructions, refer to the Click Flutter Documentation.
SDK Access
To obtain the Kredmint Flutter SDK and integration credentials, contact our integration team.
Anchor Panel Access
Sandbox: https://merchant-dev-v2.kredmint.in
Note: Please use otp 1234 on development environment
Production: GET https://merchant-v2.kredmint.in
Upload Financial Data
curl --location 'https://user-dev.kredmint.in/user/document/upload'
--header 'Authorization: Basic XXXX'
--form 'file=@"/path/to/file"'
--form 'docType="FINANCIAL_DATA"'
--form 'userId="USR-111"'
--form 'username="9887206895"'
--form 'docPassword=""'
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","file",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("/path/to/file")))
.addFormDataPart("docType","FINANCIAL_DATA")
.addFormDataPart("userId","USR-111")
.addFormDataPart("username","9887206895")
.addFormDataPart("docPassword","")
.build();
Request request = new Request.Builder()
.url("https://user-dev.kredmint.in/user/document/upload")
.method("POST", body)
.addHeader("Authorization", "Basic XXXX")
.build();
Response response = client.newCall(request).execute();
import http.client
import mimetypes
from codecs import encode
conn = http.client.HTTPSConnection("user-dev.kredmint.in")
dataList = []
boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=file; filename={0}'.format('file')))
fileType = mimetypes.guess_type('/path/to/file')[0] or 'application/octet-stream'
dataList.append(encode('Content-Type: {}'.format(fileType)))
dataList.append(encode(''))
with open('/path/to/file', 'rb') as f:
dataList.append(f.read())
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=docType;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("FINANCIAL_DATA"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=userId;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("USR-111"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=username;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("9887206895"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=docPassword;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode(""))
dataList.append(encode('--'+boundary+'--'))
dataList.append(encode(''))
body = b'\r\n'.join(dataList)
payload = body
headers = {
'Authorization': 'Basic XXXX',
'Content-type': 'multipart/form-data; boundary={}'.format(boundary)
}
conn.request("POST", "/user/document/upload", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
var data = new FormData();
data.append("file", fileInput.files[0], "file");
data.append("docType", "FINANCIAL_DATA");
data.append("userId", "USR-111");
data.append("username", "9887206895");
data.append("docPassword", "");
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if(this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://user-dev.kredmint.in/user/document/upload");
xhr.setRequestHeader("Authorization", "Basic XXXX");
xhr.send(data);
This API can use to upload financial data for underwriting.
HTTP Request
Sandbox: POST https://user-dev.kredmint.in/user/document/upload
Production: POST https://user.kredmint.in/user/document/upload
Response Body:
{
"payload": {
"id": "UDOC-5018",
"createdBy": "USR-2255",
"creationDate": 1714739453785,
"lastModifiedDate": 1714739453785,
"lastModifiedBy": "USR-2255",
"url": "https://kredmint-user-doc-dev.s3.ap-south-1.kredmint.in/USR-2255/NGZvOf-TaxInvoice_AIN2425000543858.pdf",
"userId": "USR-2255",
"name": "TaxInvoice_AIN2425000543858.pdf",
"relativeUrl": "USR-2255/NGZvOf-TaxInvoice_AIN2425000543858.pdf",
"documentType": "FINANCIAL_DATA",
"urlExpiryDate": 1714825853708,
"seqPrefix": "UDOC-"
},
"sum": 0.0,
"timestamp": 1714739453797,
"error": null
}
Request Body Attributes
| Attribute | Description |
|---|---|
| file | Supported file formats are csv and json. |
| docType | Static value FINANCIAL_DATA. |
| userId | Find it in eligibility api response (optional). |
| username | mobile number |
| docPassword | Send password if file is protected (optional) |
Distributor / Supplier Management
Create New Distributor / Supplier
curl --location 'https://account-dev.kredmint.in/account/supplier' \
--header 'Authorization: Basic XXXX' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "9887206895",
"accountHolderName": "Devratna Arya",
"accountNumber": "12345432",
"ifsc": "ICIC00000012",
"bankName": "ICICI",
"branchName": "Okhala",
"gstin": "GST123",
"supplierName": "Devratna Arya",
"mobile": "7982892274",
"email": "supplier@gmail.com"
}'
This API can use to create new suppliers or Distributors
HTTP Request
Sandbox: POST https://account-dev.kredmint.in/account/supplier
Production: POST https://account.kredmint.in/account/supplier
Request Body:
{
"username": "9887206895",
"accountHolderName": "Devratna Arya 1",
"accountNumber": "12345432",
"ifsc": "ICIC00000012",
"bankName": "ICICI",
"branchName": "Okhala",
"gstin": "GST123",
"supplierName": "Devratna Arya 1",
"mobile": "798289227432",
"email": "supplier1@gmail.com"
}
Response Body:
{
"payload": {
"id": "SUPB-123",
"lenderId": "1234",
"creationDate": 1715326942568,
"lastModifiedDate": 1715326942568,
"userId": "USR-2285",
"mobile": "798289227432",
"gstin": "GST123",
"supplierName": "Devratna Arya 1",
"supplierBankId": "BNK-275",
"status": "Initiated",
"email": "supplier1@gmail.com",
"partnerInvoice": false,
"seqPrefix": "SUPB-"
},
"sum": 0.0,
"timestamp": 1715326942733,
"error": null
}
Request Body Attributes
| Attribute | Description |
|---|---|
| username | User mobile number. (Mandatory) |
| supplierName | Supplier / Distributor full name (Mandatory) |
| mobile | Supplier / Distributor mobile Number (Mandatory) |
| Supplier / Distributor email id | |
| gstin | Supplier / Distributor GST Number |
| accountHolderName | Account Holder Name (Mandatory) |
| accountNumber | Bank account number (Mandatory) |
| ifsc | IFSC code (Mandatory) |
| bankName | Bank Name (Mandatory) |
| branchName | Branch Name (Mandatory) |
Get All Distributors / Suppliers
curl --location 'https://account-dev.kredmint.in/account/supplier?username=9887206895' \
--header 'Authorization: Basic XXXX'
This API can use to get all the suppliers or Distributors
HTTP Request
Sandbox: GET https://account-dev.kredmint.in/account/supplier
Production: GET https://account.kredmint.in/account/supplier
Response Body:
{
"payload": [
{
"id": "SUPB-269",
"lenderId": "639b1fd3802a930379de2128",
"creationDate": 1715326286133,
"lastModifiedDate": 1715326286133,
"userId": "USR-2285",
"mobile": "798289227",
"gstin": "GST123",
"supplierName": "Devratna Arya",
"supplierBankId": "BNK-274",
"status": "Initiated",
"email": "supplier@gmail.com",
"partnerInvoice": false,
"seqPrefix": "SUPB-"
}
],
"sum": 0.0,
"timestamp": 1715332382795,
"error": null
}
Loan Disbursal
Invoice Pay by credit (Anchor Integration Flow)
curl --location 'https://user-dev.kredmint.in/user/eligibility'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"username":"9819413273",
"page":"payment",
"source": "MOS",
"invoiceNumber": "IN-123",
"amount": 100.0,
"paymentDate": 1713814546794
}'
This API can use to disburse amount from kredmint credit to supplier.
HTTP Request
Request Body:
{
"source": "BNPL",
"username": "9887206895",
"page": "payment",
"failureDeepLink": "https://example.com/handler/failed",
"successDeepLink": "https://example.com/handler/success",
"backDeepLink": "https://example.com/handler/back",
"invoiceNumber": "",
"paymentDate": 1234567890,
"amount": 100.0,
"invoicePdf": "https://example.com/invoice.pdf"
}
Response Body:
{
"payload": {
"show": true,
"title": "Pay by kred Mint.",
"subTitle": "Available Credit Rs 100000",
"logoUrl": "https://kredmint-public.s3.ap-south-1.amazonaws.com/b3+(1).png",
"landingUrl": "https://merchant2-dev.kredmint.in/auth/?sid=6626bc19d330a05177b64ccf&userId=USR-2225&token=f91fac22-1eb3-41cd-ba97-27edd0986b2f",
"landingType": "INVOICE",
"availableCreditLimit": 100000.0,
"state": "Active",
"creditLimit": 100000.0,
"totalOutstanding": 0.0
},
"sum": 0.0,
"timestamp": 1713814554113,
"error": null
}
Request Body Attributes
| Attribute | Description |
|---|---|
| source | Static Value provided by kredmint. |
| username | User mobile number. |
| page | Static value payment. |
| failureDeepLink | Handler for failure case to redirection from kredmint to client |
| successDeepLink | Handler for success case to redirection from kredmint to client |
| backDeepLink | Handler for back button action perform by the user to redirection from kredmint to client |
| invoiceNumber | unique identifier for the invoice |
| paymentDate | Disbursement Date in millis |
| amount | Invoice amount |
| invoicePdf | URL for the invoice in pdf format |
Bulk Invoice (Anchor Integration Flow)
curl --location --request POST 'https://account-dev.kredmint.in/account/invoices'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"username":"9819413273",
"groupId":"G12342",
"amount": 10000.0,
"source": "MOS",
"invoices": [
{
"invoiceNumber": "IN123",
"amount": 5000.0,
"date": 1713814546794
},
{
"invoiceNumber": "IN124",
"amount": 5000.0,
"date": 1713814546794
}
]
}'
This API can be used by the anchor to push their retailers invoices as part of the Anchor Integration Flow.
HTTP Request
Request Body:
{
"username":"9819413273",
"groupId":"G12342",
"amount": 10000.0,
"source": "MOS",
"invoices": [
{
"invoiceNumber": "IN123",
"amount": 5000.0,
"date": 1713814546794
},
{
"invoiceNumber": "IN124",
"amount": 5000.0,
"date": 1713814546794
}
]
}
Response Body:
{
"payload": {
"show": true,
"landingUrl": "https://merchant2-dev.kredmint.in/auth/?sid=6626bc19d330a05177b64ccf&userId=USR-2225&token=f91fac22-1eb3-41cd-ba97-27edd0986b2f",
"landingType": "INVOICE",
"availableCreditLimit": 100000.0,
"state": "Active",
"creditLimit": 100000.0,
"totalOutstanding": 0.0,
"groupId":"G12342",
"amount": 10000.0,
"source": "MOS",
"invoices": [
{
"id": "IN-321",
"invoiceNumber": "IN123",
"amount": 5000.0,
"date": 1713814546794
},
{
"id": "IN-987",
"invoiceNumber": "IN124",
"amount": 5000.0,
"date": 1713814546794
}
]
},
"sum": 0.0,
"timestamp": 1713814554113,
"error": null
}
update Invoice (Anchor Integration Flow)
curl --location --request PATCH 'https://account-dev.kredmint.in/account/invoice'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"username":"9819413273",
"invoiceNumber": "IN123",
"amount": 4000.0,
"date": 1713814546794
}'
This API can be used by the anchor to update their retailer invoice as part of the Anchor Integration Flow.
HTTP Request
Request Body:
{
"username":"9819413273",
"invoiceNumber": "IN123",
"amount": 4000.0,
"date": 1713814546794
}
Response Body:
{
"payload": {
"id": "IN-321"
"username":"9819413273",
"invoiceNumber": "IN123",
"amount": 4000.0,
"date": 1713814546794,
"status": "SUCCESS", // Possible values: SUCCESS, DISPUTED
"msg": "Invoice updated successfully"
},
"sum": 0.0,
"timestamp": 1713814554113,
"error": null
}
get Invoice (Anchor Integration Flow)
curl --location --request GET 'https://account-dev.kredmint.in/account/invoice/{orderNumber}'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
This API can be used by the anchor to get invoice/order details for their retailers as part of the Anchor Integration Flow.
HTTP Request
Response Body:
{
"payload": {
"id": "IN-321",
"invoiceNumber": "IN123",
"amount": 5000.0,
"date": 1713814546794,
"groupId": "1233",
"status": "Paid" // Possible values: PreInitiated, Initiated, Verified, Approved, Paid, Completed, Rejected, Cancelled
"repaySchedule": [
{
"id": "CM-123",
"emiNo": 1,
"date": 1713814546794,
"amount": 2500.0,
"principal": 2000.0,
"interest": 500.0,
"penalty": 0.0,
"status": "PENDING" // Possible values: PENDING, SCHEDULED, READY_FOR_SCHEDULED, COMPLETED, CANCELLED, BOUNCED
}
],
"repayCollections": [
{
"id": "COL-123",
"date": 1713814546794,
"amount": 2500.0,
"principal": 2000.0,
"interest": 500.0,
"penalty": 0.0,
"source": "PG", // Possible values: PG, RTGS, NATCH
"transactionId": "TXN-12345",
"status": "COMPLETED",
"utr": "UTR123",
"refId": "KM-12324"
}
]
},
"sum": 0.0,
"timestamp": 1713814554113,
"error": null
}
Invoice Pay by credit (Distributor / Supplier Integration Flow)
curl --location 'https://user-dev.kredmint.in/user/eligibility' </span>
--header 'Authorization: Basic XXXX' </span>
--header 'Content-Type: application/json' </span>
--data '{
"username":"9887206895",
"page":"payment",
"invoiceNumber":"5435323121",
"paymentDate":1715327098489,
"amount":1000,
"supplierId": "SUPB-270",
"source": "BIZOM"
}'
This API can use to disburse amount from kredmint credit to supplier.
HTTP Request
Request Body:
{
"username":"9887206895",
"page":"payment",
"invoiceNumber":"5435323121",
"paymentDate":1715327098489,
"amount":1000.0,
"supplierId": "SUPB-270",
"source": "BNPL",
"failureDeepLink": "https://example.com/handler/failed",
"successDeepLink": "https://example.com/handler/success",
"backDeepLink": "https://example.com/handler/back",
"invoicePdf": "https://example.com/invoice.pdf"
}
Response Body:
{
"payload": {
"show": true,
"title": "Pay by kred Mint.",
"subTitle": "Available Credit Rs 100000",
"logoUrl": "https://kredmint-public.s3.ap-south-1.amazonaws.com/b3+(1).png",
"landingUrl": "https://merchant2-dev.kredmint.in/auth/?sid=6626bc19d330a05177b64ccf&userId=USR-2225&token=f91fac22-1eb3-41cd-ba97-27edd0986b2f",
"landingType": "INVOICE",
"availableCreditLimit": 100000.0,
"state": "Active",
"creditLimit": 100000.0,
"totalOutstanding": 0.0
},
"sum": 0.0,
"timestamp": 1713814554113,
"error": null
}
Request Body Attributes
| Attribute | Description |
|---|---|
| source | Static Value provided by kredmint. (Mandatory) |
| username | User mobile number. (Mandatory) |
| page | Static value payment. (Mandatory) |
| supplierId | Get it from the Create Supplier / Disctributor API response (Mandatory) |
| failureDeepLink | Handler for failure case to redirection from kredmint to client |
| successDeepLink | Handler for success case to redirection from kredmint to client |
| backDeepLink | Handler for back button action perform by the user to redirection from kredmint to client |
| invoiceNumber | unique identifier for the invoice (Mandatory) |
| paymentDate | Disbursement Date in millis (Mandatory) |
| amount | Invoice amount (Mandatory) |
| invoicePdf | URL for the invoice in pdf format (Mandatory) |
Invoice Upload API
Upload invoice once it is available in doc format
curl --location 'https://account-dev.kredmint.in/account/invoice/upload' </span>
--header 'Authorization: Basic XXX' </span>
--form 'file=@' </span>
--form 'username="959579"' </span>
--form 'amount="100.0"' </span>
--form 'invoiceNumber="543354123253"'
This API can use to push single invoice doc after disbursal.
HTTP Request
Sandbox: POST https://account-dev.kredmint.in/account/invoice/upload
Production: POST https://account.kredmint.in/account/invoice/upload
Response Body:
{
"payload": {
"id": "UDOC-5588",
"url": "https://kredmint-user-doc-dev.s3.ap-south-1.amazonaws.com/USR-2307/ADFJlB-Screenshot_2023-11-22_182933.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20240529T123719Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86399&X-Amz-Credential=AKIAQPDDTIBA2GHW7WID%2F20240529%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Signature=9a2c74e2d2e4e419156d6d3c194c68fffa6b3e1967771260786914caad99eab5",
"userId": "USR-2307",
"name": "Screenshot 2023-11-22 182933.png",
"relativeUrl": "USR-2307/ADFJlB-Screenshot_2023-11-22_182933.png",
"documentType": "INVOICE",
"urlExpiryDate": 1717072639779
},
"sum": 0.0,
"timestamp": 1716986251645
}
Request Body Attributes
| Attribute | Description |
|---|---|
| file | select pdf file. |
| username | Common identifier (mobile number) |
| amount | invoice amount |
| invoiceNumber | same invoice number that was passed in Loan Disbursal API |
Upload multi invoices once it is available in doc format
curl --location 'https://account-dev.kredmint.in/account/invoice/upload/v2' \
--header 'Authorization: Basic XXX' \
--form 'file=@"/Users/admin/Desktop/Screenshot 2025-11-18 at 12.15.36 PM.png"' \
--form 'file=@"/Users/admin/Desktop/Screenshot 2025-11-18 at 12.15.36 PM.png"' \
--form 'username="959579"' \
--form 'amount="100.0"' \
--form 'invoiceNumber="543354123253"'
This API can use to push single invoice doc after disbursal.
HTTP Request
Sandbox: POST https://account-dev.kredmint.in/account/invoice/upload/v2
Production: POST https://account.kredmint.in/account/invoice/upload/v2
Response Body:
{
"payload": [
{
"id": "691d9eb17c76f419c86a1c57",
"url": "https://kredmint-user-prod.blr1.digitaloceanspaces.com/USR-4416/ZcFTMl-Screenshot_2025-11-18_at_12.15.36%E2%80%AFPM.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20251119T104049Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=DO00N7XPVGQ3P9PZA8CC%2F20251119%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Signature=78cfc5cd3ef65e2a6254a5d1e0d736f8b063561853d36670dba5d15c855ab59c",
"userId": "USR-4416",
"name": "Screenshot 2025-11-18 at 12.15.36 PM.png",
"relativeUrl": "USR-4416/ZcFTMl-Screenshot_2025-11-18_at_12.15.36 PM.png",
"documentType": "INVOICE",
"urlExpiryDate": 1763635249390
},
{
"id": "691d9eb17c76f419c86a1c58",
"url": "https://kredmint-user-prod.blr1.digitaloceanspaces.com/USR-4416/ycSlTv-Screenshot_2025-11-18_at_12.15.36%E2%80%AFPM.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20251119T104049Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=DO00N7XPVGQ3P9PZA8CC%2F20251119%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Signature=96030898f65e14a60e34d84c29b93cc18d1303b45cc30de2e6094bc1b885ff41",
"userId": "USR-4416",
"name": "Screenshot 2025-11-18 at 12.15.36 PM.png",
"relativeUrl": "USR-4416/ycSlTv-Screenshot_2025-11-18_at_12.15.36 PM.png",
"documentType": "INVOICE",
"urlExpiryDate": 1763635249610
}
],
"sum": 0.0,
"timestamp": 1763548859189,
"requestId": "0.45596486-1763548843873",
"error": null
}
Request Body Attributes
| Attribute | Description |
|---|---|
| file | select pdf file. |
| username | Common identifier (mobile number) |
| amount | invoice amount |
| invoiceNumber | same invoice number that was passed in Loan Disbursal API |
Reject Invoice API
curl --location --request POST 'https://account-dev.kredmint.in/account/invoice/reject'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"username":"9819413273",
"invoiceNumber":"123321",
"reason": "Incorrect document"
}'
This API can use to reject invoice.
Reject Invoice Request
Sandbox: POST https://account-dev.kredmint.in/account/invoice/reject
Production: POST https://account.kredmint.in/account/invoice/reject
Response Body:
{
"payload": {
"invoiceNumber": "123321",
"status": "REJECTED",
"reason": "Incorrect document"
"message": "Invoice rejected successfully"
},
"sum": 0.0,
"timestamp": 1763549351091,
"requestId": "0.8262354-1763549348869",
"error": null
}
Webhooks
User onboarding Notification Webhook
curl --location 'your webhook url'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"payload": [
{
"mobile": "9599170579",
"name": "Dev",
"email": "test@gmail.com",
"uid": "USR-1234",
"status": "NEW_USER", // NEW_USER, ESIGN_PENDING, ENACH_PENDING, PROCESSING_FEE_PENDING, ACTIVE
"creditLimit": 0.0
}
]
"type": "USER",
"timestamp": 1716865119200
}'
We will send this webhook whenever the user's state transitions from one stage to another
Request Body:
{
"payload": [
{
"mobile": "9599170579",
"name": "Dev",
"email": "test@gmail.com",
"uid": "USR-1234",
"status": "NEW_USER", // NEW_USER, ESIGN_PENDING, ENACH_PENDING, PROCESSING_FEE_PENDING, ACTIVE
"creditLimit": 0.0
}
]
"type": "USER",
"timestamp": 1716865119200
}
Request Body Attributes
| Attribute | Description |
|---|---|
| mobile | Borrower mobile number. |
| name | Borrower name. |
| email id. | |
| uid | Unique id for the borrower |
| status | Status of the loan application, expected values: NEW_USER, ESIGN_PENDING, ENACH_PENDING, PROCESSING_FEE_PENDING, ACTIVE |
| creditLimit | Soft limit assigned after underwriting |
Disbursement Start Notification Webhook
curl --location 'your webhook url'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"payload": {
"id": "IN-787",
"username": "9599170579",
"invoiceNumber": "543354123253",
"paymentDate": 1716864267785,
"amount": 1000.0,
"transactionId": null,
"status": "Initiated",
"utr": null,
"reason": null
},
"type": "INVOICE",
"timestamp": 1716865119200
}'
This Webhook we will send once transaction successfully completed.
Request Body:
{
"payload": {
"id": "IN-787",
"username": "9599170579",
"invoiceNumber": "543354123253",
"paymentDate": 1716864267785,
"amount": 1000.0,
"transactionId": null,
"status": "Initiated",
"utr": null,
"reason": null
},
"type": "INVOICE",
"timestamp": 1716865119200
}
Request Body Attributes
| Attribute | Description |
|---|---|
| invoiceNumber | Same value as in disbursement request. |
| amount | Disbursed amount. |
| paymentDate | Same value as in disbursement request. |
| transactionId | Unique id for the transaction |
| status | Status of the transaction, expected values: Initiated, Verified, Approved, Paid, Failed, Completed, Cancelled |
| username | Common identifier (mobile number) |
| id | Kredmint unique id for the invoice |
| type | it will differentiate the webhooks, expected values: PAYMENT, PAYMENT_SETTLEMENT, NACH, USER, INVOICE |
Disbursement Success Notification Webhook
curl --location 'your webhook url'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"payload": {
"id": "IN-787",
"username": "9599170579",
"invoiceNumber": "543354123253",
"paymentDate": 1716864267785,
"amount": 1000.0,
"transactionId": "gheahgfja",
"status": "Paid",
"utr": null,
"reason": null
},
"type": "INVOICE",
"timestamp": 1716865119200
}'
This Webhook we will send once transaction successfully completed.
Request Body:
{
"payload": {
"id": "IN-787",
"username": "9599170579",
"invoiceNumber": "543354123253",
"paymentDate": 1716864267785,
"amount": 1000.0,
"transactionId": "dsfgkgsfd",
"status": "Paid",
"utr": null,
"reason": null
},
"type": "INVOICE",
"timestamp": 1716865119200
}
Request Body Attributes
| Attribute | Description |
|---|---|
| invoiceNumber | Same value as in disbursement request. |
| amount | Disbursed amount. |
| paymentDate | Same value as in disbursement request. |
| transactionId | Unique id for the transaction |
| status | Status of the transaction, expected values: Initiated, Verified, Approved, Paid, Failed, Completed, Cancelled |
| username | Common identifier (mobile number) |
| id | Kredmint unique id for the invoice |
| type | it will differentiate the webhooks, expected values: PAYMENT, PAYMENT_SETTLEMENT, NACH, USER, INVOICE |
Disbursement Failure Notification Webhook
curl --location 'your webhook url'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"payload": {
"id": "IN-787",
"username": "9599170579",
"invoiceNumber": "543354123253",
"paymentDate": 1716864267785,
"amount": 1000.0,
"transactionId": null,
"status": "Failed",
"utr": null,
"reason": null
},
"type": "INVOICE",
"timestamp": 1716865119200
}'
This Webhook we will send once transaction successfully completed.
Request Body:
{
"payload": {
"id": "IN-787",
"username": "9599170579",
"invoiceNumber": "543354123253",
"paymentDate": 1716864267785,
"amount": 1000.0,
"transactionId": null,
"status": "Failed",
"utr": null,
"reason": "invalid amount or date provided"
},
"type": "INVOICE",
"timestamp": 1716865119200
}
Request Body Attributes
| Attribute | Description |
|---|---|
| invoiceNumber | Same value as in disbursement request. |
| amount | Disbursed amount. |
| paymentDate | Same value as in disbursement request. |
| transactionId | Unique id for the transaction |
| status | Status of the transaction, expected values: Initiated, Verified, Approved, Paid, Failed, Completed, Cancelled |
| username | Common identifier (mobile number) |
| id | Kredmint unique id for the invoice |
| type | it will differentiate the webhooks, expected values: PAYMENT, PAYMENT_SETTLEMENT, NACH, USER, INVOICE |
Payment settlement Notification Webhook
curl --location 'your webhook url'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"payload": [
{
"id": "IN-787",
"username": "9599170579",
"invoiceNumber": "543354123253",
"paymentDate": 1716864267785,
"amount": 1000.0,
"interestAmount": 200.0,
"principalAmount": 800.0,
"penalAmount": 0.0,
"transactionId": null,
"status": "Completed",
"utr": "SBIU1234567890"
},
{
"id": "IN-788",
"username": "9599170579",
"invoiceNumber": "543354123253",
"paymentDate": 1716864267785,
"amount": 1000.0,
"interestAmount": 200.0,
"principalAmount": 800.0,
"penalAmount": 0.0,
"transactionId": null,
"status": "Completed",
"utr": "SBIU1234567890"
},
]
"type": "PAYMENT_SETTLEMENT",
"timestamp": 1716865119200
}'
Payment received Notification Webhook
curl --location 'your webhook url'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"payload": [
{
"id": "PAY12324",
"username": "9599170579",
"paymentDate": 1716864267785,
"amount": 1000.0,
"transactionId": "ghsdfgdsfg",
"status": "Completed",
"source": "PG"
}
]
"type": "PAYMENT",
"timestamp": 1716865119200
}'
Scheduled nach status Notification Webhook
curl --location 'your webhook url'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"payload": [
{
"id": "NACH12324",
"username": "9599170579",
"date": 1716864267785,
"amount": 1000.0,
"transactionId": "ghsdfgdsfg",
"status": "Scheduled"
}
]
"type": "NACH",
"timestamp": 1716865119200
}'
Completed Nach status Notification Webhook
curl --location 'your webhook url'
--header 'Content-Type: application/json'
--header 'Authorization: Basic XXXX'
--data '{
"payload": [
{
"id": "NACH12324",
"username": "9599170579",
"date": 1716864267785,
"amount": 1000.0,
"transactionId": "ghsdfgdsfg",
"status": "Completed"
}
]
"type": "NACH",
"timestamp": 1716865119200
}'
Vouchers
Create Voucher codes (Voucher Order API)
curl --location 'https://api-offer-dev.kredmint.in/v2/client/coupon/voucher' </span>
--header 'Authorization: Basic XXXX' </span>
--header 'Content-Type: application/json' </span>
--data '[
{
"sku" : "TEST123",
"denomination" : "100",
"quantity" : 1,
"expiryDate" : "2025-07-30T00:00:00.000Z",
"withPin": true
},
{
"sku" : "TEST124",
"denomination" : "1000",
"quantity" : 1,
"expiryDate" : "2025-07-30T00:00:00.000Z",
"withPin": false
}
]'
This API can use create voucher codes for the end users.
HTTP Request
Sandbox: POST https://api-offer-dev.kredmint.in
Production: POST https://api-offer.kredmint.in
Request Body:
[
{
"sku" : "TEST123",
"denomination" : "100",
"quantity" : 1,
"expiryDate" : "2025-07-30T00:00:00.000Z",
"withPin": true
},
{
"sku" : "TEST124",
"denomination" : "1000",
"quantity" : 1,
"expiryDate" : "2025-07-30T00:00:00.000Z",
"withPin": false
}
]
Response Body:
{
"payload": "Z0T96FZ90XKI-MXHZJK9FXED5",
"sum": 0.0,
"timestamp": 1753095446829
}
Request Body Attributes
| Attribute | Description |
|---|---|
| sku | Get it from product master |
| denomination | Choose any numeric (1 < n < 10,000,000). |
| quantity | No of vouchers. |
| expiryDate | Voucher expiry Date |
| withPin | provide true if need pin for voucher, else false |
Download Vouchers (Voucher Download API in CSV or Json format)
curl --location 'https://api-offer-dev.kredmint.in/v2/client/coupon/voucher?txnId=8VVQVUEYQXXT-K5RP6NPEW77J&format=csv' \
--header 'Authorization: Basic XXXX'
This API can use to download voucher codes in CSV or Json format.
HTTP Request
Sandbox: POST https://api-offer-dev.kredmint.in
Production: POST https://api-offer.kredmint.in
Request Attributes
| Attribute | Description |
|---|---|
| txnId | This is the transaction id returned from the Create Voucher API. (value of payload attribute in response) |
Redeem Voucher
curl --location 'https://api-offer-dev.kredmint.in/v2/client/coupon/redeem?type=VOUCHER&code=CUP52491' </span>
--header 'Authorization: Basic XXXX' </span>
--header 'Content-Type: application/json' </span>
--data '{
"cart" : {
"total_items" : 1,
"selling_price" : 150,
"items" : [
{
"sku" : "TEST123",
"mrp" : 200,
"selling_price" : 150,
"total_selling_price" : 150,
"quantity" : 1
}
]
},
"customer" : {
"uid" : "USR-1",
"mobile" : "9999999999"
},
"meta": {
}
}'
This API can use to redeem voucher codes for the end users.
HTTP Request
Sandbox: POST https://api-offer-dev.kredmint.in
Production: POST https://api-offer.kredmint.in
Request Body:
{
"cart" : {
"total_items" : 1,
"selling_price" : 150,
"items" : [
{
"sku" : "TEST123",
"mrp" : 200,
"selling_price" : 150,
"total_selling_price" : 150,
"quantity" : 1
}
]
},
"customer" : {
"uid" : "USR-1",
"mobile" : "9999999999"
},
"meta": {
}
}
Response Body:
{
"payload": {
"couponCode": "CUP52491",
"discount": 30.0,
"discountType": "VALUE",
"percent": 0.0,
"freeSkus": {},
"txnId": "8VVQVUEYQXXT-K5RP6NPEW77J"
},
"sum": 0.0,
"timestamp": 1753096274104
}
Request Body Attributes
| Attribute | Description |
|---|---|
| cart | Cart details (configurable based on client need) |
| customer | Provide customer details, uid is mandatory. (configurable based on client need) |
| meta | Pass any key value pair (string, string), which can be use for voucher validation (configurable based on client need) |
Cancel Redemption
curl --location 'https://api-offer-dev.kredmint.in/v2/client/coupon/cancelRedemption?type=VOUCHER&code=CUP52491' \
--header 'Authorization: Basic XXXX' \
--header 'Content-Type: application/json' \
--data '{
"txnId": "8VVQVUEYQXXT-K5RP6NPEW77J",
"customer" : {
"uid" : "USR-1",
"mobile" : "9999999999"
}
}'
This API can use to redeem voucher codes for the end users.
HTTP Request
Sandbox: POST https://api-offer-dev.kredmint.in
Production: POST https://api-offer.kredmint.in
Request Body:
{
"txnId": "8VVQVUEYQXXT-K5RP6NPEW77J",
"customer" : {
"uid" : "USR-1",
"mobile" : "9999999999"
}
}
Response Body:
{
"payload": {
"status": "SUCCESS"
},
"sum": 0.0,
"timestamp": 1753096274104
}
Request Body Attributes
| Attribute | Description |
|---|---|
| txnId | Unique transaction id returned from the Redeem Voucher API. (value of txnId attribute in response) |
| customer | Provide customer details, uid is mandatory. (configurable based on client need) |
| meta | Pass any key value pair (string, string), which can be use for voucher validation (configurable based on client need) |
Promocode
Redeem coupon / promocode
curl --location 'https://api-offer-dev.kredmint.in/v2/client/coupon/redeem?type=COUPON&code=CUP52491' \
--header 'Authorization: Basic XXXX' \
--header 'Content-Type: application/json' \
--data '{
"cart" : {
"total_items" : 1,
"selling_price" : 150,
"items" : [
{
"sku" : "TEST123",
"mrp" : 200,
"selling_price" : 150,
"total_selling_price" : 150,
"quantity" : 1
}
]
},
"customer" : {
"uid" : "USR-1",
"mobile" : "9999999999"
},
"meta": {
}
}'
This API can use to redeem promocode (its same as redeem voucher API, just pass identifier "type" in request params).
HTTP Request
Sandbox: POST https://api-offer-dev.kredmint.in
Production: POST https://api-offer.kredmint.in
Request Body:
{
"cart" : {
"total_items" : 1,
"selling_price" : 150,
"items" : [
{
"sku" : "TEST123",
"mrp" : 200,
"selling_price" : 150,
"total_selling_price" : 150,
"quantity" : 1
}
]
},
"customer" : {
"uid" : "USR-1",
"mobile" : "9999999999"
},
"meta": {
}
}
Response Body:
{
"payload": {
"couponCode": "CUP52491",
"discount": 30.0,
"discountType": "VALUE",
"percent": 0.0,
"freeSkus": {},
"txnId": "8VVQVUEYQXXT-K5RP6NPEW77J"
},
"sum": 0.0,
"timestamp": 1753096274104
}
Request Body Attributes
| Attribute | Description |
|---|---|
| cart | Cart details (configurable based on client need) |
| customer | Provide customer details, uid is mandatory. (configurable based on client need) |
| meta | Pass any key value pair (string, string), which can be use for voucher validation (configurable based on client need) |
Cancel Coupon Redemption
curl --location 'https://api-offer-dev.kredmint.in/v2/client/coupon/cancelRedemption?type=COUPON&code=CUP52491' \
--header 'Authorization: Basic XXXX' \
--header 'Content-Type: application/json' \
--data '{
"txnId": "8VVQVUEYQXXT-K5RP6NPEW77J",
"customer" : {
"uid" : "USR-1",
"mobile" : "9999999999"
}
}'
This API can use to redeem voucher codes for the end users.
HTTP Request
Sandbox: POST https://api-offer-dev.kredmint.in
Production: POST https://api-offer.kredmint.in
Request Body:
{
"txnId": "8VVQVUEYQXXT-K5RP6NPEW77J",
"customer" : {
"uid" : "USR-1",
"mobile" : "9999999999"
}
}
Response Body:
{
"payload": {
"status": "SUCCESS"
},
"sum": 0.0,
"timestamp": 1753096274104
}
Request Body Attributes
| Attribute | Description |
|---|---|
| txnId | Unique transaction id returned from the Redeem Coupon API. (value of txnId attribute in response) |
| customer | Provide customer details, uid is mandatory. (configurable based on client need) |
| meta | Pass any key value pair (string, string), which can be use for coupon validation (configurable based on client need) |
Errors
The Kredmint API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request -- Your request is invalid. |
| 401 | Unauthorized -- Your API key is wrong. |
| 403 | Forbidden -- Your API key is not for requested resource. |
| 404 | Not Found -- The specified api/resource could not be found. |
| 405 | Method Not Allowed -- You tried to access with an invalid method. |
| 406 | Not Acceptable -- You requested a format that isn't json. |
| 418 | I'm a teapot. |
| 429 | Too Many Requests -- You're requesting too many request! Slow down! |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |