This document describes the API for calculating a deposit score of a depositor. The score is based on the depositor's historical deposit behavior, including deposit consistency, deposit amounts, timeliness of deposits, and the presence of partial deposits.

Base URL

https://score.cladfy.com/v1

API Endpoint:

POST /deposit_score/

Request Headers:

Content-Type: application/json
X-API-Key: Your unique API. Please email us at info@cladfy.com for an API Key.

Request Body:

The request body should be JSON following the ScoreInput data type specification below.

  • startDate (str): The start date of the scoring period in ISO 8601 format (YYYY-MM-DD).
  • endDate (str): The end date of the scoring period in ISO 8601 format (YYYY-MM-DD).
  • expectedDepositDay (str): The expected day of the month for deposits (e.g., "5").
  • expectedDepositAmount (int): The expected amount of each deposit.
  • deposits (List[{}]): A list of dictionaries containing deposit details. Each dictionary should have the following keys:
    • date (str): The date of the deposit in ISO 8601 format (YYYY-MM-DD).
    • amount (int): The amount deposited.
  • client_id: A unique client identifier you send to our APIs is returned to you for data syncing.

Example Request Body:

{ "client_id": "12345", "startDate": "2023-10-09", "endDate": "2024-01-08", "expectedDepositDay": "5", "expectedDepositAmount": 1500, "deposits": [ {"date": "2023-11-05", "amount": 1600}, {"date": "2023-12-05", "amount": 1500}, {"date": "2024-01-05", "amount": 1550}, {"date": "2024-02-05", "amount": 1550} ] }

Response:

The API returns a dictionary with the following keys:

  • Overall Deposit Score (float): A value between 0 and 1 representing the overall deposit score.
  • Individually Scored Months (Dict[str, float]): A dictionary where keys are month strings (YYYY-MM) and values are individual deposit scores for each month (between 0 and 1).
  • Longest On-time Deposit Streak (int): The longest streak of consecutive on-time deposits within the scoring period.
  • Longest Late Deposit Streak (int): The longest streak of consecutive late deposits within the scoring period (currently initialized to 0).
  • Partial Deposit Count: This is the number of all partial deposits
{"client_id": "12345", 'Individually Scored Months': {'2023-11': 0.9, '2023-12': 1.0, '2024-01': 1.1, '2024-02': 1.2 }, 'Longest Late Deposit Streak': 0, 'Longest On-time Deposit Streak': 4, 'Overall Deposit Score': 0.43, "Partial Deposit Count": 2 }

Error Handling:

401 Unauthorized: If the API key is invalid.
400 Bad Request: If the request body is not valid JSON or missing required fields.
500 Internal Server Error: If an internal server error occurs during score calculation. The response will include an error message.

Additional Notes:

  • The specific attributes supported by the scorecard and their formats might vary depending on the implementation. Please refer to the detailed scorecard documentation provided by Cladfy via email.
  • The API logs the call with the provided API key and service name ("deposit_score").

Python Test Example:

This test example demonstrates sending a POST request to the API endpoint with client data containing money deposits to an account. The response will include a deposit score considering the late payment history.

import requests import json # Import the json library # Define the API endpoint URL url = "https://score.cladfy.com/v1/deposit_score/" # Set the request headers headers = { "Content-Type": "application/json", "X-API-Key": "YOUR_API_KEY" # Replace with your actual API key } # Prepare the JSON data for the borrower (Example with some on-time deposits) data = { "client_id": "12345", "startDate": "2023-10-09", "endDate": "2024-01-08", "expectedDepositDay": "5", "expectedDepositAmount": 1500, "deposits": [ {"date": "2023-11-05", "amount": 1600}, # Deposit on expected day {"date": "2023-12-10", "amount": 1500}, # Late deposit {"date": "2024-01-05", "amount": 1550}, # Deposit on expected day {"date": "2024-02-05", "amount": 1550} # Deposit on expected day ] } # Convert the dictionary to a JSON string using json.dumps json_data = json.dumps(data) # Send the POST request with the JSON-formatted string response = requests.post(url, headers=headers, json=json_data) # Check for successful response if response.status_code == 200: # Get the JSON response data data = response.json() print("Deposit Score with some Late Deposits:", data) # Access the score from the response data else: print("Error:", response.status_code, response.text)


cURL Test Example:

This curl command demonstrates sending a POST request to the API endpoint with client deposit data in JSON format.

curl -X POST https://score.cladfy.com/v1/deposit_score/ -H "Content-Type: application/json" -H "X-API-Key: YOUR_API_KEY" -d '{"client_id": "12345", "startDate": "2023-10-09", "endDate": "2024-03-08", "expectedDepositDay": "16", "expectedDepositAmount": 2100, "deposits": [{"date": "2023-11-16", "amount": 1500},{"date": "2023-12-26", "amount": 2100}, {"date": "2024-01-06", "amount": 100}, {"date": "2024-02-16", "amount": 2100}]}'

Important Note: https://score.cladfy.com/v1/deposit_score/ is the actual URL of your Deposit score API and you should replace "YOUR_API_KEY" with your actual API key before running the script.