Loan simulation

To run a digital lending product, your system must send API requests to the Pismo platform and handle asynchronous event messages in response. Some workflows are completed over multiple requests and events. For more information on loan simulations, refer to the Simulation service guide.

Although the Pismo platform returns informative responses to your API requests, you should build your system to respond to the asynchronous events. For more information on receiving event data from the Pismo platform, refer to Data and reporting overview.

Simulate, book, and disburse a loan

To book a loan, you begin by using a loan product to simulate the booking. If the customer does not agree to the terms and conditions shown in the simulation, you have the option of simulating another loan (using a different loan product). If the customer agrees to the terms and conditions, you use the simulation to book the loan. How the funds are disbursed (in one lump sum or in stages) is determined by how you set up the loan product, but you need to call the Disburse loan V2 endpoint to perform the actual disbursal.

Your system

Sends a POST to payment-methods-admin/v1/simulations with the following payload:

{
  "authorization_mode": "CREDIT"
}

Pismo platform

Generates the Loan simulation created event:

{  
	org_id: "89e56522-726a-453e-ba6d-796b03245128",  
	simulation_id: "afedc8b0-86b2-41ca-87a3-3481df17261b",  
	product_id: "BNPL_PRODUCT_2022",  
	product_version: "1",  
	loan_amount: 1000.0,  
	start_date: "2022-10-24",  
	disbursment_schedule: [  
		"2022-10-24",  
		"2022-11-24",  
		...  
	],  
	stages: \[  
		{  
			period: 12,  
			interest_rate:  
				{  
					unit: "YEAR",  
					value: 0.12  
				}  
		},  
		...  
	}  
}

Your system

Sends a POST to /lending/v2/loans with the following payload:

curl --request POST \
     --url https://sandbox.pismolabs.io/lending/v2/loans \
     --header 'accept: application/json' \
     --header 'content-type: application/json'

Pismo platform

Generates a loan_booked-1 event:

{
    "org_id": "TN-89e56522-726a-453e-ba6d-796b03245128",
    "external_id": "cca6041c-b57d-44cf-a203-eeea22723878",
    "loan_id": "ded913af-abc9-4769-b179-068ed6181ec5",
    "status": "BOOKED",
    "product_id": "89e56522-726a-453e-ba6d-796b03245128",
    "account_id": 104336697,
    "amount": 1000.0,
    "start_date": "2022-10-24",
    "created_at": "2022-10-24T21:34:47"
}

Your system

Sends a POST to /lending/v2/loans/{loanId}/disburse. In the following example request, loanId is "2717a296-124a-47cc-b2a1-91e80dc723eb":

curl --request POST \
     --url https://sandbox.pismolabs.io/lending/v2/loans/2717a296-124a-47cc-b2a1-91e80dc723eb/disburse \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "disbursement_account": {
    "account_type": "INTERNAL"
  }
}
'

Pismo platform

Generates a Loan disbursement V2 status changed event:

{
    "loan_id": "2717a296-124a-47cc-b2a1-91e80dc723eb",
    "org_id": "TN-89e56522-726a-453e-ba6d-796b03245128",
    "disbursement_id": "89e56522-726a-453e-ba6d-796b03245128",
    "idempotency_key": "48704d83-0412-431f-816a-50ba81451148",
    "currency": "USD",
    "created_at": "2022-10-24T21:34:47",
    "updated_at": "2022-10-24T21:34:47",
    "previous_disbursement_status": "SCHEDULED",
    "current_disbursement_status": "PROCESSING",
    "disbursement_amount": 1234.56,
    "disbursement_account": {
        "account_type": "INTERNAL",
        "account_id": 221123
    },
    "authorization_id": 1231231,
    "authorization_tracking_id": "ded913af-abc9-4769-b179-068ed6181ec5",
    "disbursement_date": "2022-10-24"
}