Domain Object Specification

Metadata

Key

Type

Validations

Mandatory

Description

version

String

Min Length : 1
Max Length: 6

Yes

Version of the API being used. NPCI may host multiple versions for supporting gradual migration. As of this specification, default production version is "1.0".

timestamp

ISODateTime
YYYY-MM-DDThh:mm:ssZ+/-hh:mm (eg 1997-07-16T19:20:30+05:30) where; YYYY = four-digit year MM = two-digit month (01=January, etc.) DD = two-digit day of month (01 through 31) hh = two digits of hour (00 through 23) (am/pm NOT allowed) mm = two digits of minute (00 through 59) ss = two digits of second (00 through 59) Z +/- hh:mm = time zone designator (Z) followed by time zone difference from GMT in hours and minutes. THIS IS OPTIONAL. If not provided, it is assumed to be IST (+5.30)

Min Length : 1
Max Length : 255

Yes

Time of request from the creator of the message. API request time stamp. Since timestamp plays a critical role, it is highly recommended that devices are time synchronized with a time server.

traceId

Alphanumeric

Length : 35

Yes

Message identifier-used to correlate between the request and response. The unique identifier created by the originator of the message and will be used to correlate the response with the original request

orgId

Alphanumeric

Min Length : 1
Max Length : 35

Yes

Unique identifier for the organization in the ecosystem. In case of LSPs it will LSP id, for lenders it will be the FIUid and so on

Sample json

{
   "version": "1.0",
   "orgId": "LSP123",
   "timestamp": "2018-12-06T11:39:57.153Z",
   "traceId": "e8cc6822bd4bbb4eb1b9e1b4996fbff8acb"
}

Response

This object is used to capture errors.

Key

Type

Validations

Mandatory

Descrioption

error

String

Length : 35

Yes

Errors in the current request received.If no errors are found, error = 0. For example, if a mandatory attribute is missing, error code should capture that

LoanApplication

Key

Type

Validations

Description

createdDate

ISODateTime

Time when the loan application was created

loanApplicationId

Alphanumeric

Length : 35

UUID for the loan application. Generated by LSP

offers

Array Offer

Offers given by lender for a the loan application

type

CASHFLOW | PERSONAL | HOME | VEHICLE | BUSINESS

ENUM

Expandable Enum. Captures the type of loan. Will be Cash Flow for invoice based loans.

borrower

Borrower

Details of the Borrower

collaterals

Array Collateral

Details of the instruments against which the user wishes to take loan. If no data is there to be sent, an empty array block can be passed.

guarantors

Array Guarantors

List of guarantors that the borrowers have for the loan. If no data is there to be sent, an empty array block can be passed.

applicants

Array Applicant

List of applicants for the loan. If no data is there to be sent, an empty array block can be passed

terms

LoanTerms

Terms of loan agreement

description

String

Max Length : 1000

A short description of the loan application

url

String

Max Length: 1000

For any new data that needs to be passed as a link

extensibleData

JSON

For any new data that needs to be added

Borrower

Key

Type

Validations

Mandatory

Description

primaryIdType

PAN | MOBILE | AADHAAR

ENUM

Yes

Identifier Type for the borrower

primaryId

Alphanumeric

Length : 35

Yes

Borrower unique identifier for the identifier type above

secondaryId

Alphanumeric

No

category

ORGANIZATION | INDIVIDUAL

ENUM

Yes

Category of the Borrower

name

String

Max Length : 50

No

Name of the borrower

contactDetails

Array ContactDetails

Yes

ContactDetails for the borrower. If no data is there to be sent, an empty array block can be passed.

additionalIdentifiers

Array AdditionalIdentifier

No

Additional identifier details for the borrower

platformData

Array PlatformData

No

documents

Array Document

Yes

Additional documents related to the borrower. If no data is there to be sent, an empty array block can be passed.

url

String

Max Length : 1000

No

extensibleData

JSON

No

For any new data that needs to be added

For Bhim for Lending case: GST TaxPayer Profile will be pulled from Search Tax payer API. The schema for GSTN profile can be found in the Search Tax Payer API published in https://developer.gst.gov.in/apiportal/common/others

Sample json

{
   "primaryId": "CPAA1234A",
   "primaryIdType": "PAN",
   "additionalIdentifiers": [],
   "name": "John doe",
   "category": "ORGANIZATION",
   "contactDetails": [
       {
           "type": "PRIMARY",
           "phone": "7777777777",
           "email": "[email protected]",
           "address": {
               "co": "<care of>",
               "hba": "<House/Building/Apartment>",
               "srl": "<Street/Road/Lane>",
               "landmark": "",
               "als": "<Area/Locality/Sector>",
               "vtc": "<Village/Town/City>",
               "pincode": "",
               "po": "",
               "district": "",
               "state": "",
               "country": "",
               "uri": "<digital address>",
               "latitude": "",
               "longitude": ""
           }
       }
   ],
   "documents": []
}

Applicant

Key

Type

Validation

Mandatory

Description

primaryIdType

PAN | MOBILE | AADHAAR

ENUM

Yes

Identifier Type for the Applicant

primaryId

Alphanumeric

Length : 35

Yes

Applicant unique identifier for the identifier type above

category

ORGANIZATION | INDIVIDUAL

ENUM

No

Category of the Applicant

name

String

Max Length : 50

No

Name of the Applicant

relationshipWithBorrower

String

Max Length : 50

No

Relationship of the applicant with Borrower

contactDetails

Array ContactDetails

No

ContactDetails for the Applicant If no data is there to be sent, an empty array block can be passed.

additionalIdentifiers

Array AdditionalIdentifier

No

Additional identifier details for the Applicant

documents

Array Document

No

Additional documents related to the Applicant. If no data is there to be sent, an empty array block can be passed.

url

String

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
   "primaryId": "<PAN NO.>",
   "primaryIdType": "PAN | <SOME VALID REGISTRY>",
   "additionalIdentifiers": [
       {
           "key": "",
           "value": ""
       }
   ],
   "name": "",
   "category": "ORGANISATION | INDIVIDUAL",
   "relationshipWithBorrower": "",
   "contactDetails": [
       {
           "type": "PRIMARY | OTHER",
           "phone": "",
           "email": "",
           "address": {
               "hba": "<House/Building/Apartment>",
               "srl": "<Street/Road/Lane>",
               "landmark": "",
               "als": "<Area/Locality/Sector>",
               "vtc": "<Village/Town/City>",
               "pincode": "",
               "po": "",
               "district": "",
               "state": "",
               "country": "",
               "uri": "<digital address>",
               "latitude": "",
               "longitude": ""
           }
       }
   ],
   "documents": [
       {
           "format": "PDF/EXCEL/PNG/JSON",
           "reference": "3c986a71-15c2-46a3-bf20-810ed203e06d",
           "source": "FIP | USER ",
           "sourceIdentifier": "",
           "type": "PAN | AADHAAR | DRIVING_LICENSE | PASSPORT",
           "isDataInline": "true/false",
           "data": "<Base64 encoded data>"
       }
   ]
}

Lender

Key

Type

Validity

Mandatory

Description

primaryIdType

PAN | MOBILE | AADHAAR | FIU

ENUM

Yes

Identifier Type for the lender

primaryId

Alphanumeric

Min Length : 1
Max Length : 20

Yes

Lender unique identifier for the identifier type above

category

ORGANIZATION | INDIVIDUAL

ENUM

Yes

Category of the Lender

name

Alphanumeric

Max Length : 50

Yes

Name of the lender

additionalIdentifiers

Array AdditionalIdentifier

No

Additional identifier details for the lender. If no data is there to be sent, an empty array block can be passed.

contactDetails

Array ContactDetails

Yes

ContactDetails for the lender. If no data is there to be sent, an empty array block can be passed.

documents

Array Document

Yes

Additional documents related to the lender. If no data is there to be sent, an empty array block can be passed.

url

String

Max length : 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
       "primaryId": "AWWPA7645M",
       "primaryIdType": "PAN",
       "additionalIdentifiers": [],
       "name": "ABC Bank",
       "category": "ORGANIZATION",
       "contactDetails": [
           {
               "co": "<care of>",
               "type": "PRIMARY",
               "phone": "8888888888",
               "email": "[email protected]",
               "address": {
                   "hba": "<House/Building/Apartment>",
                   "srl": "<Street/Road/Lane>",
                   "landmark": "",
                   "als": "<Area/Locality/Sector>",
                   "vtc": "<Village/Town/City>",
                   "pincode": "",
                   "po": "",
                   "district": "",
                   "state": "",
                   "country": "",
                   "uri": "<digital address>",
                   "latitude": "",
                   "longitude": ""
               }
           }
       ],
       "documents": []
   }

ContactDetails

Key

Type

Validations

Mandatory

Description

type

PRIMARY | OTHER

ENUM

Yes

Type of Contact. Whether primary or others.

description

String

Max Length : 1000

No

Description of the contact detail

phone

String

Min Length :10
Max Length : 15

Yes

Phone number

email

String

Min Length : 3
Max Length : 50

No

Email address

address

Address

No

Address

url

String

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample Json

{
   "type": "PRIMARY",
   "phone": "7777777777",
   "email": "[email protected]",
   "address": {
       "co": "<Care of>",
       "hba": "<House/Building/Apartment>",
       "srl": "<Street/Road/Lane>",
       "landmark": "",
       "als": "<Area/Locality/Sector>",
       "vtc": "<Village/Town/City>",
       "pincode": "",
       "po": "",
       "district": "",
       "state": "",
       "country": "",
       "uri": "<digital address>",
       "latitude": "",
       "longitude": ""
   }
}

AdditionalIdentifier

Key

Type

Validations

Mandatory

Description

key

Alphanumeric

Min Length : 1
Max Length: 50

Yes

Additional key related to the entity.

value

Alphanumeric

Min Length : 1
Max Length: 50

Yes

Value for the key in the context of the entity

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
   "key": "123488888888",
   "value": "AADHAAR"
}

Address

Key

Type

Validations

Mandatory

Description

co

String

Max Length : 100

No

Care of.

hba

String

Max Length : 255

Yes

House/Building/Apartment

srl

String

Max Length : 99

Yes

Street/Road/Lane

landmark

String

Max Length : 50

No

Landmark

als

String

Max Length : 50

No

Area/Locality/Sector

vtc

String

Max Length : 50

No

Village/Town/City

pinCode

String

Max Length : 10

Yes

Pin Code

po

String

Max Length : 10

No

Post Office

district

String

Max Length : 50

No

District

state

String

Max Length : 50

Yes

State

country

String

Max Length : 50

Yes

Country

latitude

String

Max Length : 50

No

Latitude of the address

longitude

String

Max Length : 50

No

Longitude of the address

url

String

Max Length : 1000

No

Digital url for the address

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
   "hba": "<House/Building/Apartment>",
   "srl": "<Street/Road/Lane>",
   "landmark": "",
   "als": "<Area/Locality/Sector>",
   "vtc": "<Village/Town/City>",
   "pinCode": "",
   "po": "",
   "district": "",
   "state": "",
   "country": "",
   "url": "<digital address>",
   "latitude": "",
   "longitude": ""
}

Document

Key

Type

Validations

Mandatory

Description

source

AA | FIP | FIU | FSR | USER | GSTN

ENUM

Yes

Source system from where data is coming. Source can be from AA ecosystem or from USER

sourceIdentifier

Alphanumeric

Min Length : 1
Max Length : 35

Yes

If source is in AA ecosystem, sourceIdentifier is the identifier in central registry. In case of User, it will be his unique identifier

format

DOC | IMAGE | CSV | JSON | XML

ENUM

Yes

Format of the data in documents

reference

String (UUID)

Length : 35

Yes

Unique identifier for a document which can be used by other objects for referencing a document. In case where isDataInline is false, reference number can be used to hit an external api to get the data.

type

GSTN_B2B_INVOICE | GSTN_PROFILE | PAN | AADHAAR | DRIVING_LICENSE | PASSPORT | OTHER

ENUM

Yes

Expandable enum. Includes fiTypes in AA ecosystem and any additional type of documents that can be added to the system later

isDataInline

Boolean

Yes

Indicates whether the data is actually present in the document block. If Yes, data field contains base 64 encoded version of the data.

data

String

Min Length : 1

Yes

Base64 encoded string

Sample json including GSTN data about Borrower

{
   "source": "GSTN",
   "sourceIdentifier": "GSTN",
   "format": "JSON",
   "reference": "docref12",
   "type": "GST_PROFILE",
   "isDataInline": true,
   "data": "eyJzdGpDZCI6IkFQMDAzIiwibGdubSI6Ik1TIENPUlBPUkFUSU9OIiwic3RqIjoiQkNQIEtPRElLT05EQSIsImR0eSI6IlJlZ3VsYXIiLCJjeGR0IjoiIiwiZ3N0aW4iOiIwNUFCTlRZMzI5MFA4WkEiLCJuYmEiOlsiQm9uZGVkIFdhcmVob3VzZSIsIkVPVSAvIFNUUCAvIEVIVFAiLCJGYWN0b3J5IC8gTWFudWZhY3R1cmluZyIsIklucHV0IFNlcnZpY2UgRGlzdHJpYnV0b3IgKElTRCkiLCJMZWFzaW5nIEJ1c2luZXNzIl0sImxzdHVwZHQiOiIwNS8wMS8yMDE3IiwicmdkdCI6IjA1LzA1LzIwMTciLCJjdGIiOiJGb3JlaWduIExMUCIsInN0cyI6IlByb3Zpc2lvbmFsIiwiY3RqQ2QiOiJBUDAwNCIsImN0aiI6IkJDUCBUSFVNTUFLVU5UQSIsInRyYWRlTmFtIjoiQUxUT04gUExBU1RJQyBQUklWQVRFIExURCIsImFkYWRyIjpbeyJhZGRyIjp7ImJubSI6IkVMUEhJTlNUT05FIEJVSUxESU5HIiwic3QiOiIxMCwgVkVFUiBOQVJJTUFOIFJPQUQiLCJsb2MiOiJGT1JUIiwiYm5vIjoiMTAiLCJzdGNkIjoiUmFqYXN0aGFuIiwiZmxubyI6IjFTVCBGTE9PUiIsImx0IjoiNzQuMjE3OSIsImxnIjoiMjcuMDIzOCIsInBuY2QiOiI0MDAwMDEifSwibnRyIjpbIldob2xlc2FsZSBCdXNpbmVzcyJdfV0sInByYWRyIjp7ImFkZHIiOnsiYm5tIjoiS0FUR0FSQSBIT1VTRSIsInN0IjoiMTUsIEwgSkFHTU9IQU5EQVMgTUFSRyIsImxvYyI6Ik1BTEFCQVIgSElMTCIsImJubyI6IjUiLCJzdGNkIjoiTWFoYXJhc2h0cmEiLCJmbG5vIjoiNFRIIEZMT09SIiwibHQiOiI3NC4yMTc5IiwibGciOiIyNy4wMjM4IiwicG5jZCI6IjQwMDAwNiJ9LCJudHIiOlsiV2hvbGVzYWxlIEJ1c2luZXNzIl19fQ"
}

The schema for GSTN profile can be found in the Search Tax Payer API published in https://developer.gst.gov.in/apiportal/common/others

Collateral

This block describes the credit instruments that you are using to raise a loan request. In Invoice financing, this block will capture invoices. For taking a loan against a house, this will have home registration document details.

Key

Type

Validations

Mandatory

Description

collateralPrimaryId

Alphanumeric

Length : 35

Yes

Primary Identifier for the collateral. Generated as collateralPrimaryIdType_collaetralPrimaryId

collateralPrimaryIdType

GST_INVOICE | VIN |

ENUM

Yes

Expandable ENUM. Type of collateral source. Will be Invoice in case of invoice based lending, vehicle identification number (VIN) for vehicle as collateral

description

String

Max Length : 1000

No

Description of the collateral

type

GST_INVOICE | VEHICLE | HOME

Yes

Type of collateral.

additionalIdentifiers

Array AdditionalIdentifier

Yes

Additional identifier for the collateral. If no data is there to be sent, an empty array block can be passed.

valuation

Valuation

No

Valuation details of the collateral including value, source etc

parties

Array Party

Yes

Parties involved in the collateral. In case of home loan agreement, this can hold details of current owner and previous owner. If no data is there to be sent, an empty array block can be passed.

documents

Array Document

Yes

Additional documents related to the collateral. If no data is there to be sent, an empty array block can be passed.

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
           "collateralPrimaryId": "INVOICE_<GSTIN>_<INVOICENUM>",
           "collateralPrimaryIdType": "GST_INVOICE | VIN <SOME VALID REGISTRY>",
           "additionalIdentifiers": [
               {
                   "key": "",
                   "value": ""
               }
           ],
           "valuation": {
               "value": "",
               "currency": "",
               "date": "",
               "source": "GSTN"
           },
           "parties": [
               {
                   "primaryId": "<PAN NO.>",
                   "primaryIdType": "PAN | <SOME VALID REGISTRY>",
                   "additionalIdentifiers": [
                       {
                           "key": "",
                           "value": ""
                       }
                   ],
                   "name": "",
                   "category": "ORGANISATION | INDIVIDUAL",
                   "relationshipWithCollateral": "",
                   "contactDetails": [
                       {
                           "type": "PRIMARY | OTHER",
                           "phone": "",
                           "email": "",
                           "address": {
                               "hba": "<House/Building/Apartment>",
                               "srl": "<Street/Road/Lane>",
                               "landmark": "",
                               "als": "<Area/Locality/Sector>",
                               "vtc": "<Village/Town/City>",
                               "pincode": "",
                               "po": "",
                               "district": "",
                               "state": "",
                               "country": "",
                               "uri": "<digital address>",
                               "latitude": "",
                               "longitude": ""
                           }
                       }
                   ],
                   "documents": [
                       {
                           "format": "JSON",
                           "reference": "3c986a71-15c2-46a3-bf20-810ed203e06d",
                           "source": "FIP | USER ",
                           "sourceIdentifier": "",
                           "type": "",
                           "isDataInline": true,
                           "data": "<Base64 encoded data>"
                       }
                   ]
               }
           ],
           "type": "GST_INVOICE",
           "documents": [
               {
                   "format": "JSON",
                   "reference": "3c986a71-15c2-46a3-bf20-810ed203e06d",
                   "source": "GSTN",
                   "sourceIdentifier": "GSTN",
                   "type": "GSTN_B2B_INVOICE",
                   "isDataInline": true,
                   "data": "eyJjdGluIjoiMDFBQUJDRTIyMDdSMVo1IiwiY2ZzIjoiWSIsImludiI6W3siY2hrc3VtIjoiQkJVSUJVSVVJSktLQkpLR1VZRlRGR1VZIiwidXBkYnkiOiJTIiwiaW51bSI6IlMwMDg0MDAiLCJpZHQiOiIyNC0xMS0yMDE2IiwidmFsIjo3MjkyNDguMTYsInBvcyI6IjA2IiwicmNocmciOiJOIiwiZXRpbiI6IjAxQUFCQ0U1NTA3UjFaNCIsImludl90eXAiOiJSIiwiY2ZsYWciOiJOIiwiZGlmZl9wZXJjZW50IjowLjY1LCJvcGQiOiIyMDE2LTEyIiwiaXRtcyI6W3sibnVtIjoxLCJpdG1fZGV0Ijp7InJ0Ijo1LCJ0eHZhbCI6MTAwMDAsImlhbXQiOjMyNSwiY2FtdCI6MCwic2FtdCI6MCwiY3NhbXQiOjEwfX1dfV19"
               }
           ]
       }

The schema for GSTN invoice can be found in the ANX1-GetB2B API published in https://developer.gst.gov.in/apiportal/taxpayer/newreturns .

However, for the first phase, we might actually be using the old returns api - GSTR1 - Get B2B Invoices. The documents.data field on decoding gives the B2B invoices return.

Cred Block

Key

Type

Validations

Mandatory

Description

type

OTP

ENUM

Yes

Type of credential used for verification

data

OTPBlock

Yes

Credential details specific to the the type

extensibleData

JSON

No

For any new data that needs to be added

OTPBlock

Key

Type

Validations

Mandatory

Description

appToken

String

Max Length : 100

No

Acknowledgement block indicating the receipt and status of request

otpSessionKey

String

Length : 35

No

otpSession created for verifying the OTP sent by the borrower

maskedPhoneNumber

String

Max Length : 15

No

Phone number linked to the disbursement account obtained from the AA bank account statements

url

String

Max Length : 1000

No

extensibleData

JSON

No

Pair of key values of adding custom fields

otp

Numeric

Length : 6

No

One time numeric password generated by lender sent to the registered mobile number of the disbursement account holder

status

INVALID_SESSION | INCORRECT_OTP | SUCCESS

Yes

Field captures the status of verify OTP

LoanDetail

Key

Type

Validations

Mandatory

Description

loanId

Alphanumeric

Length : 35

Yes

UUID for loan. Created by lender

terms

LoanTerms

Yes

Terms of the loan

Valuation

Key

Type

Validation

Mandatory

Description

value

String

Max Length : 20

No

Value of the collateral. In case of invoice this can have the invoice value. 2 digits precision

description

String

Max Length : 1000

No

Description of the valuation

date

Date

Max Length : 20

No

Date when the valuation of collateral was done

currency

CurrencyType

Max Length : 20

No

Currency

source

GSTN | OTHERS

ENUM

No

Expandable ENUM. Source of the valuation.

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
               "value": "20000",
               "currency": "INR",
               "date": "2018-12-06",
               "source": "GSTN"
}

Party

Key

Type

Validations

Mandatory

Description

primaryIdType

PAN | MOBILE | AADHAAR | FIU

ENUM

Yes

Identifier Type for the party

primaryId

Alphanumeric

Min Length : 1
Max Length : 20

Yes

Party unique identifier for the identifier type above

description

String

Max Length: 1000

No

Description of the party

category

ORGANIZATION | INDIVIDUAL

ENUM

Yes

Category of the party

name

Alphanumeric

Max Length : 50

Yes

Name of the party

relationshipWithCollateral

Alphanumeric

Max Length : 50

Yes

Association with collateral. In case of invoice the 2 parties involved would be the buyer and seller

additionalIdentifiers

Array AdditionalIdentifier

No

Additional identifier details for the party. If no data is there to be sent, an empty array block can be passed.

contactDetails

Array ContactDetails

Yes

ContactDetails for the party. If no data is there to be sent, an empty array block can be passed.

documents

Array Document

Yes

Additional documents related to the party. If no data is there to be sent, an empty array block can be passed.

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample Json

{
   "primaryId": "<PAN NO.>",
   "primaryIdType": "PAN",
   "additionalIdentifiers": [
       {
           "key": "",
           "value": ""
       }
   ],
   "name": "",
   "category": "INDIVIDUAL",
   "relationshipWithCollateral": "",
   "contactDetails": [
       {
           "type": "PRIMARY",
           "phone": "",
           "email": "",
           "address": {
               "hba": "<House/Building/Apartment>",
               "srl": "<Street/Road/Lane>",
               "landmark": "",
               "als": "<Area/Locality/Sector>",
               "vtc": "<Village/Town/City>",
               "pincode": "",
               "po": "",
               "district": "",
               "state": "",
               "country": "",
               "uri": "<digital address>",
               "latitude": "",
               "longitude": ""
           }
       }
   ],
   "documents": [
       {
           "format": “PNG",
           "reference": "3c986a71-15c2-46a3-bf20-810ed203e06d",
           "source": "USER",
           "sourceIdentifier": "USER",
           "type": "PAN",
           "isDataInline": true,
           "data": "<Base64 encoded data>"
       }
   ]
}

Charges

Key

type

Validations

Mandatory

Description

prepayment

ChargeDetails

No

Details of the charges levied for prepayment of loan

bounce

ChargeDetails

No

Details of the charges levied when a repayment attempt by the borrower is not honored by bank. Eg: failure of a mandate execution

latePayment

ChargeDetails

No

Details of the charges levied when the borrower makes a late payment

processing

ChargeDetails

No

Processing fees charged by the lender

SampleJson

{
   "prepayment": {
       "chargeType": "RATE_BASED",
       "data": {
           "rate": "6",
           "applicableParameter": "TOTAL_LOAN_AMOUNT"
       }
   },
   "bounce": {
       "chargeType": "FIXED_AMOUNT",
       "data": {
           "amount": "3000.00"
       }
   },
   "latePayment": {
       "chargeType": "FIXED_AMOUNT",
       "data": {
           "amount": "3000.00"
       }
   },
   "processing": {
       "chargeType": "FIXED_AMOUNT",
       "data": {
           "amount": "3000.00"
       }
   }
}

ChargeDetails

Key

type

Validations

Mandatory

Description

chargeType

FIXED_AMOUNT | RATE_BASED

ENUM

Yes

This field indicates whether the penalty is fixed or varies

data

Json

Yes

This object captures the details of the charges

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

The fields that can come inside data Json are the below.

rate

String

Max Length : 10

No

Annualized Rate of interest charged as penalty. 2 digits precision. Applicable only when type= RATE_BASED

amount

String

Max Length : 20

No

Fixed penalty charged

description

String

Max Length : 500

No

A brief description of how the penalty charges will be applied

url

String

Max Length : 1000

No

A link to the lender’s page explaining the calculation of penalty

applicableParameter

TOTAL_LOAN_AMOUNT | OUTSTANDING_PAYABLE_AMOUNT| EMI | PREPAYMENT_PRINCIPAL

ENUM

No

The parameter on which rate is applied to arrive at the rate based charge. For example : If rate is 6% and applicable parameter is TOTAL_LOAN_AMOUNT, penalty = 0.06*TOTAL_LOAN_AMOUNT

Sample JSON

{
     "chargeType": "RATE_BASE,
     "data": {
          "rate": "6",
          "applicableParameter": "TOTAL_LOAN_AMOUNT"
     }
}

LoanTerms

Key

type

Validations

Mandatory

Description

requestedAmount

String

Min Length : 1
Max Length : 20

Yes

Amount . 2 digits precision

description

String

Max Length : 1000

No

Description of the loan terms

currency

CurrencyType

Min Length : 1
Max Length : 20

Yes

Currency

sanctionedAmount

String

Min Length : 1
MaxLength : 20

No

Loan Amount Approved by lender

interestType

FIXED | FLOATING

Max Length : 20

No

Flag indicating if the interest rate is fixed or floating

interestRate

String

Max Length : 20

No

Interest Rate for the loan. 2 digits precision

interestAmount

String

Max Length : 20

No

Interest Amount for the duration specified in tenure

totalAmount

String

Max Length : 20

No

Total amount for repaymen

tenure

LoanTenure

No

Tenure details of the loan

legalAgreement

Loan Agreement

No

Loan agreement

documents

Array Document

No

Additional documents regarding the loan terms

charges

Charges

No

Penalties levied for issues with repayments

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample JSON

{
       "requestedAmount": "50000.00",
       "currency": "INR",
       "sanctionedAmount": "5000.00",
       "interestType": "FIXED",
       "interestRate": "6.50",
       "tenure": {
           "duration": "3",
           "unit": "MONTH"
       },
       "legalAgreement": {
           "type": "TEXT",
           "data": "<Base64 Encoded Data>"
       },
       "documents": [],
    "charges": {
        "prepayment": {
                "type": "RATE_BASED",
                "rate": "6.00",
                "applicableParameter": "TOTAL_LOAN_AMOUNT"
        },
        "bounce": {
                "type": "FIXED_AMOUNT",
                "amount": "3000.00"
        },
        "latePayment": {
                "type": "FIXED_AMOUNT",
                "amount": "3000.00"
        },
        "processing": {
                "type": "FIXED_AMOUNT",
                "amount": "3000.00"
        }
    }
   }

LoanAgreement

Key

type

Validations

Mandatory

Description

type

TEXT | URL

ENUM

Yes

Indicates whether the agreement is shared directly as text or needs to be fetched from a url

data

String

Min Length : 1

Yes

Base64 encoded string.
If type = text, this field will have the loan agreement in base 64 encoded format.
If type = url, this field will have base 64 encoded url from where doc can be fetched.

CreditScoreType

Key

type

Validation

Mandatory

Description

value

String

Min Length : 1
Max Length : 20

Yes

Credit score given for the borrower by the LSP. 0-900 range

source

LSP | PLATFORMS

ENUM

Yes

Source of the credit score. Can be LSP in case of FLDG. If it is not FLDG we still want to send credit score. (Maybe swiggy wants to send the score)

sourceIdentifier

String

Min Length : 1
Max Length : 35

Yes

Identifier of the source. Eg. SWIGGY for Restaurants

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
   "value": "800",
   "sourceType": "LSP",
   "source": "SWIGGY"
}

Guarantor

Key

type

Validations

Mandatory

Description

primaryIdType

PAN | MOBILE | AADHAAR

ENUM

Yes

Identifier Type for the guarantor

primaryId

Alphanumeric

Length : 35

Yes

guarantor unique identifier for the identifier type above

description

String

Max Length : 1000

No

Description of the guarantor and his involvement in the loan

category

ORGANIZATION | INDIVIDUAL

ENUM

Yes

Category of the guarantor

name

String

Max Length : 50

No

Name of the guarantor

relationshipWithBorrower

String

Max Length : 50

No

Relationship with the borrower

contactDetails

Array ContactDetails

Yes

ContactDetails for the guarantor. If no data is there to be sent, an empty array block can be passed.

additionalIdentifiers

Array AdditionalIdentifier

No

Additional identifier details for the guarantor

documents

Array Document

Yes

Additional documents related to the guarantor. If no data is there to be sent, an empty array block can be passed.

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
   "primaryId": "CPAA1234A",
   "primaryIdType": "PAN",
   "additionalIdentifiers": [],
   "name": "John doe",
   "relationshipWithBorrower": "Father",
   "category": "ORGANIZATION",
   "contactDetails": [
       {
           "type": "PRIMARY",
           "phone": "7777777777",
           "email": "[email protected]",
           "address": {
               "co": "<care of>",
               "hba": "<House/Building/Apartment>",
               "srl": "<Street/Road/Lane>",
               "landmark": "",
               "als": "<Area/Locality/Sector>",
               "vtc": "<Village/Town/City>",
               "pincode": "",
               "po": "",
               "district": "",
               "state": "",
               "country": "",
               "uri": "<digital address>",
               "latitude": "",
               "longitude": ""
           }
       }
   ],
   "documents": []
}

RejectionDetail

Key

type

Validations

Mandatory

Description

reason

FRAUD | DOC_IRREGULARITIES | LOW_CREDIT_SCORE | OTHERS

ENUM

Yes

Reason why the lender has decided not to make a loan offer to the borrower

description

String

Min length : 1
Max Length : 1000

Yes

Detailed description of the reason for rejection

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
   "reason": "LOW_CREDIT_SCORE",
   "description": "Credit score below 600"
}

Reference

This object is used when a reference needs to be made to another object that is sent as part of the request / response. For example, when the lender sends an Action Required block, it might refer to a document in the documents section

Key

type

Validations

Mandatory

Description

object

String

Min Length : 1
Max Length : 20

Yes

Name of the object in the request/reference to which the reference is made

value

String

Min Length : 1
Max Length : 35

Yes

Reference number within the referred object

Sample json

{
   "object": "documents",
   "value": "INVOICE_GSTN_INV2011"
}

ActionRequired

Key

type

Validations

Mandatory

Description

actionType

ADD_DOCUMENT | RESUBMIT_DOCUMENT | OTHER

ENUM

Yes

Type of action expected from the borrower

description

String

Min Length : 1
Max Length : 99

Yes

Detailed description of the expected action

reference

Reference

No

Reference to any documents uploaded as part of the loan request indicating the document where action is required

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
   "actionType": "ADD_DOCUMENT",
   "description": "DL number not visible",
   "reference": {
       "object": "documents",
       "value": ""
   }
}

Ack

Standard response block obtained for an Asynchronous API call.

Key

type

Validations

Mandatory

Description

error

String

Min Length : 1
Max Length : 35

Yes

Errors in the current request received.If no errors are found, error = 0. For example, if a mandatory attribute is missing, error code should capture that

traceId

Alphanumeric

Min Length : 1
Max Length : 35

Yes

Message identifier-used to correlate between the request and response. The unique identifier created by the originator of the message and will be used to correlate the response with the original request

timestamp

ISODateTime
YYYY-MM-DDThh:mm:ssZ+/-hh:mm (eg 1997-07-16T19:20:30+05:30) where; YYYY = four-digit year MM = two-digit month (01=January, etc.) DD = two-digit day of month (01 through 31) hh = two digits of hour (00 through 23) (am/pm NOT allowed) mm = two digits of minute (00 through 59) ss = two digits of second (00 through 59) Z +/- hh:mm = time zone designator (Z) followed by time zone difference from GMT in hours and minutes. THIS IS OPTIONAL. If not provided, it is assumed to be IST (+5.30)

Min Length : 1
Max Length : 255

Yes

Time of request from the creator of the message. API request time stamp. Since timestamp plays a critical role, it is highly recommended that devices are time synchronized with a time server.

Sample json

{
   "error": "0",
   "traceId": "e8cc6822-d4bb-4eb1-9e1b-4996fbff8acb",
   "timestamp": "2018-12-06T11:39:57.153Z"
}

Offer

Key

type

Validations

Mandatory

Description

id

Alphanumeric

Min Length : 1
Max Length : 35

Yes

Unique identifier for the offer in the lending system

description

String

Max Length : 1000

No

A short description of the offer.

validTill

ISODateTime

Min Length : 1
Max Length : 255

Yes

Time till which the offer from the lender is available

terms

LoanTerms

Yes

Details about the terms of the loan offer

disbursement

Disbursement

Yes

Details about the disbursement provided by lender.

repayment

Repayment

Yes

Details about the repayment plans provided by lender.

documents

Array Document

No

Any other additional documents provided by the lender as part of the offer. If no data is there to be sent, an empty array block can be passed.

url

String

Max Length: 1000

No

For any new data that needs to be passed as a linkFor any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
   "id": "e8cc6822bd4bbb4eb1b9e1b4996fbff8acb",
   "validTill": "2018-12-06T00:00:00.000Z",
   "terms": {
       "requestedAmount": "50000.00",
       "currency": "INR",
       "sanctionedAmount": "50000.00",
       "interestType": "FIXED",
       "interestRate": "6.00",
       "tenure": {
           "duration": "3",
           "unit": "MONTH"
       },
       "legalAgreement": {
           "type": "TEXT",
           "data": "<Base64 Encoded Data>"
       },
       "charges": {
           "prepayment": {
               "chargeType": "RATE_BASED",
               "data": {
                   "rate": "6.00",
                   "applicableParameter": "TOTAL_LOAN_AMOUNT"
               }
           },
           "bounce": {
               "chargeType": "FIXED_AMOUNT",
               "data": {
                   "amount": "3000.00"
               }
           },
           "latePayment": {
               "chargeType": "FIXED_AMOUNT",
               "data": {
                   "amount": "3000.00"
               }
           },
           "processing": {
               "chargeType": "FIXED_AMOUNT",
               "data": {
                   "amount": "3000.00"
               }
           }
       }
   },
   "disbursement": {
       "plans": [
           {
               "id": "e8cc6822bd4bbb4eb1b9e1b4996fbff8acb",
               "autoDisbursement": false,
               "scheduleType": "ONE_TIME",
               "amount": "10000.00"
           }
       ],
       "accountDetails": {
           "accountDataType": "ACCOUNT",
           "data": {
               "accountType": "CURRENT",
               "maskedAccountNumber": "XXXXXXXXX9090"
           }
       }
   },
   "repayment": {
       "plans": [
           {
               "id": "e8cc6822bd4bbb4eb1b9e1b4996fbff8acb",
               "autoRepayment": "Y",
               "scheduleType": "ONE_TIME",
               "amount": "10000.00"
           }
       ],
       "methods": [
           {
               "type": "EMANDATE_UPI",
               "data": {
                   "refNumber": "",
                   "amount": "50000.00",
                   "amountType": "MAX",
                   "activeFrom": "2020-01-01",
                   "expiryDate": "",
                   "destinationAccount": {
                       "accountDataType": "ACCOUNT",
                       "data": {
                           "accountType": "CURRENT",
                           "accountIFSC": "IKCC0009",
                           "maskedAccountNumber": "XXXXXXXX9090",
                           "accountNumber": "1112090999090"
                       }
                   },
                   "sourceAccount": {
                       "accountDataType": "VPA",
                       "data": {
                           "accountType": "CURRENT",
                           "accountIFSC": "IKCC0009",
                           "maskedAccountNumber": "XXXXXXXX9090",
                           "accountNumber": "1112090999090"
                       }
                   }
               }
           }
       ]
   }
}

ChosenRepayment

Key

type

Validations

Mandatory

Description

plan

PaymentPlan

Yes

Repayment plan chosen by borrower for the loan

method

PaymentMethod

No

Current Repayment Method set by the borrower

PaymentPlan

Key

type

Validations

Mandatory

Description

id

Alphanumeric

Min Length : 1
Max Length : 35

Yes

Unique id for the repayment plan in the lender system

title

String

Max Length : 100

No

Title for the repayment plan

shortDescription

String

Max Length : 100

No

Short description for the repayment plan

description

String

Max Length : 2000

No

Detailed description of the payment plan

paymentUrl

String

Max Length : 1000

No

Url of the payment page provided by the lender

automatic

Boolean

Min Length : 1
Max Length : 1

Yes

Flag indicating whether payment is automatic or user initiated

payNowAllowed

Boolean

No

Flag indicates if the borrower can make an immediate payment with this repayment plan

editPlanAllowed

Boolean

No

This flag indicates if the configurations of the current repayment plan can be changed by the borrower

changeMethodAllowed

changeMethodAllowed

No

This field indicates if the borrower can choose a different payment method for the plan

scheduleType

ONE_TIME | RECURRING | AS_PRESENTED

ENUM

Yes

Type of schedule - can be one time, as_presented or recurring

frequency

WEEKLY | MONTHLY | QUARTERLY | HALF YEARLY | YEARLY

ENUM

No

In case of a recurring payment, this field indicates how often the payment is disbursed

noOfInstallments

Alphanumeric

Max Length : 10

Yes

Number of installments for the chosen repayment plan. Will be 1 for ONE TIME schedule type

tenure

LoanTenure

No

Tenure associated with the repayment plan. This value will be less than or equal to the tenure in loan terms.

principal

Alphanumeric

Max Length : 20

No

Principal. Upto 2 digits precision

interestAmount

Alphanumeric

Max Length : 20

No

Interest component for the duration specified in plan. Upto 2 digits precision

penalty

penalty

Max Length : 20

No

Penalty component for the duration specified in loan. Upto 2 digits precision

startDate

Date

No

The first date on which the borrower chooses to make payment/wishes to get the disbursement credited.

status

ACTIVE | INACTIVE | PENDING_AUTH

ENUM

No

Flag indicating if the plan is active or inactive

totalAmount

String

Min Length : 1
Max Length : 20

Yes

Amount to be repaid as per the payment plan. 2 digits precision

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample Json

{
   "id": "e8cc6822bd4bbb4eb1b9e1b4996fbff8acb",
   "automatic": false,
   "scheduleType": "RECURRING",
   "frequency": "MONTHLY",
   "tenure": {
    "duration": "1",
    "unit": "MONTH"
   },
   "totalAmount": "5000.00"
}

LoanTenure

Key

type

Validations

Mandatory

Description

duration

String

Min length : 1
Max Length : 10

Yes

Duration of the loan amount

unit

DAY | MONTH | YEAR

ENUM

Yes

Unit in which the loan duration is mentioned

{
   "duration": "1",
   "unit": "MONTH"
}

LoanTermsHistory

Key

type

Validations

Mandatory

Description

interest

String

Min Length : 1
Max Length : 10

Yes

Loan interest rate as on the effective date. 2 digits precision

tenure

tenure

Min Length : 1
MaxLength : 20

Yes

Tenure of the loan amount as on the effective date

effectiveDate

Date

Min Length : 1
Max Length : 10

Yes

Date on which the interest and tenure is effective

Sample Json

{
       "interest": "18",
       "tenure": {
           "duration": "1",
           "unit": "MONTH"
       },
       "effectiveDate": "2020-01-01"
   }

Repayment

Key

type

Validations

Mandatory

Description

plans

Array PaymentPlan

Yes

Repayment plans provided by lender for the loan

Disbursement

Key

type

Validations

Mandatory

Description

plans

Array PaymentPlan

Yes

Disbursement plans provided by lender for the loan

accountDetails

Array AccountDetails

No

Account where the amount will be disbursed by the lender.

ChosenDisbursement

Key

type

Validations

Mandatory

Description

plan

PaymentPlan

Yes

Disbursement plans selected for the loan

accountDetails

AccountDetails

No

Account where the amount will be disbursed by the lender.

Payment

Key

type

Validations

Mandatory

Description

id

Alphanumeric

Length : 35

Length : 35

UUID for the payment request. Generated by LSP

description

String

Length : 500

Length : 500

A short description of the payment

date

Timestamp

Min Length : 1
Max Length : 20

No

Date and time when the payment transaction is done

principal

String

Min Length : 1
Max Length : 20

No

Principal paid by the borrower. 2 digits precision

interestAmount

String

Min Length : 1
Max Length : 20

No

Interest paid by the borrower. 2 digits precision

fee

String

Min Length : 1
Max Length : 20

No

Fees paid by the borrower. 2 digits precision

penalty

String

Min Length : 1
Max Length : 20

No

Penalty paid by the borrower. 2 digits precision

totalAmount

String

Min Length : 1
Max Length : 20

No

Total amount paid by borrower. 2 digit precision

installmentNumber

String

Max Length : 10

No

The installment which is being currently paid

status

SUCCESS | FAILURE | PROCESSING | PENDING_AUTH

ENUM

No

Status of the repayment

useSavedPaymentOption

Boolean

No

Indicates whether the payment needs be made with the savedPaymentOption. Incase where it is a disbursement, this flag being set disburses amount to the pre-selected account. In case of repayment, this flag being set causes repayment using already set payment method

paymentMethodType

EMANDATE_UPI | NETBANKING | UPI | ENACH | DEBIT_CARD | CREDIT_LINE

No

Payment method used for the transaction. To be populated when payment is done

paymentUrl

String

Max Length : 1000

No

Url for the payment page

txnRefNo

String

Min Length : 1
Max Length : 100

No

Receipt no of the transactions

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample Json

{
       "totalAmount": "5000.00",
       "date": "2020-10-10",
       "status": "SUCCESS",
       "installmentNumber": "1",
       "txnRefNo": "004618602124",
       "paymentId": "e8cc6822bd4bbb4eb1b9e1b4996fbff8acb"
}

Transaction

Key

type

Validations

Mandatory

Description

date

Timestamp

Yes

Time when the transaction is carried out

narration

String

Max Length : 200

Yes

Narration as it appears in the bank statement

txnRefNo

String

Max Length : 20

Yes

Reference number for the transaction

amount

Alphanumeric

Max Length : 20

Yes

Transaction Amount. Upto 2 digits precision

type

DEPOSIT | WITHDRAWAL

ENUM

Yes

DEPOSIT for repayment transactions and WITHDRAWAL for disbursement transactions

closingBalance

Alphanumeric

Alphanumeric

Yes

Closing balance in the account after the transaction

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample json

{
           "date": "25-01-2020",
           "narration": "Repayment of Loan no : xxxxxxx9090",
           "txnRefNo": "004618602124",
           "amount": "50000.00",
           "type": "DEPOSIT",
           "closingBalance": "50000.00"
}

Dispute

Key

type

Validations

Mandatory

Description

id

Alphanumeric

Max Length : 35

No

UUID for dispute. Generated by lender

description

String

Min Length : 1
Max Length : 256

No

Detailed description of the complaint code raised by borrower

url

String

Max Length: 1000

No

Lender url where dispute details can be seen / updated

status

NEW | PROCESSING | NEEDMORE INFO | RESOLVED | CLOSED

ENUM

No

Current status of the dispute

extensibleData

JSON

No

For any new data that needs to be added

AccountDetails

Key

type

Validations

Mandatory

Description

id

Alphanumeric

Max Length : 35

No

Unique id. Mandatory if object is coming from lender

description

String

Max Length : 1000

No

Description of the account

status

ACTIVE | INACTIVE

ENUM

No

This field captures the status of whether the account has been linked to a loan or not

accountDataType

ACCOUNT | VPA

ENUM

Yes

This suggests what kind of data is expected for account details in the data object

data

AccountDetailsData

Yes

Account details specific to the accountDataType

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

AccountDetailsData

Key

type

Validations

Mandatory

Description

accountType

CURRENT | SAVINGS | OVERDRAFT

ENUM

No

Type of the account

accountIFSC

String

Max Length : 20

No

IFSC code of the account

accountNumber

String

Max Length : 20

No

Account Number

vpa

String

Max Length : 50

No

Virtual Payment Address

maskedAccountNumber

String

No

Masked account details

Sample Json

{
      "accountType": "CURRENT",
      "maskedAccountNumber": "XXXXXXXXX9090"
}

PaymentMethod

Key

type

Validations

Mandatory

Description

id

Alphanumeric

Length : 35

Yes

Unique id created in the lender system for the repaymentMethod.

description

String

Max Length : 1000

No

Description of the payment method.

type

EMANDATE_UPI | ELIEN | ENACH | ANY

ENUM

No

Type of repayment method chosen

isActive

Boolean

Yes

Is the loan/credit line active for payment? TRUE, if Active

data

Json

No

Parameters for the repayment method which varies based on type.

status

INACTIVE, ACTIVE, CANCELLED, PAUSED

ENUM

Yes

Status of the repaymentMethod in the lender system

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

For type = EMANDATE_UPI , data object will have the structure of Mandate Domain Object.

Consent

Key

type

Validations

Mandatory

Description

vua

String

Min Length : 3
Max Length : 50

No

Customer unique identifier created by the AA. Example : [email protected]

description

String

Max Length : 1000

No

Description of the consent

lspInfo

LSPInfo

No

This information is supposed to be passed to AA so that they can write custom logic for handling the consent

consentFetchType

PERIODIC | ONETIME

ENUM

No

Periodicity for the consent data fetch

isAggregationEnabled

Boolean

No

Flag indicating whether the consents need to be aggregated

consentAggregationId

Alphanumeric

Ids are of length 35 each

No

This is an id generated by LSP which is passed on to AA to tell the AA how to aggregate all the consent requests from all the lenders.

consentHandle

String

Length : 36

No

Consent handles created by the AA for the lender’s request. This field will be filled when status is PENDING

consentStatus

READY | PENDING | FAILED

ENUM

No

Status of the consent

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

LspInfo

Key

type

Validations

Mandatory

Description

lspId

String

Length: 35

Yes

Unique identifier for the lsp in the ecosystem

version

version

Length: 35

Yes

Version of the lsp

appName

String

Length: 35

Yes

Yes

url

String

Max Length: 1000

No

For any new data that needs to be passed as a link

extensibleData

JSON

No

For any new data that needs to be added

Sample Json

"lspInfo": {
     "lspId": "<AA can identify the LSP based on this>",
    "version": "<version of LSP>",
    "appName": "<Package name of the app>"
   }

Did this page help you?