Lending APIs

Introduction

The Pulse Lending APIs enables trusted partners to seamlessly integrate with Lending Partners, providing a streamlined and efficient way to deliver fast, flexible funding solutions to small & medium size businesses.

This API exposes core functionality of the Lender platform, empowering partners to offer a complete lending experience directly from their own applications or platforms. Whether you're looking to prequalify customers, submit applications, or retrieve offers, the Pulse Lending API provides the tools you need to build a robust and scalable funding journey.

Key Capabilities:

Submit Customer Data & Applications

Submit customer profiles and loan applications for evaluation. Ensure accurate and efficient data transfer to accelerate the lending process.

Get Quotes & Offers

Instantly receive real-time funding quotes and offers tailored to the applicant’s business. Provide immediate feedback to customers, helping them make informed borrowing decision

By integrating with the Pulse Lending API, partners can enhance their financial products and services while giving SMEs access to the capital they need—quickly, securely, and reliably.

Onboarding: Pulse Lending API Integration

This process ensures a smooth and secure setup so you can begin offering embedded lending solutions to your customers.

Step 1: Partnership Approval & Access Request

Before integration, your organization must be approved as an official partner.

To request a partnership with Pulse, please email us at api.support@mypulse.io for evaluation

Once your request is approved:

You will receive your API credentials, including Client ID, Client Secret, Subscription key, Grant Type, and Scope details.

Access to the sandbox (test) environment will be provisioned.

Step 2: Authentication and Connection Management
myPulse OAuth 2.0 Securely authenticates and provides secure delegated access for third-party applications without exposing user credentials.
Authentication Steps:

Client can hit on Authentication API and use the above details to generate Bearer token.

Users need to send bearer token in the Authorization header to access protected resources.

The generated token remains active for 60 minutes. Once it expires, a new token needs to be generated. 

Once the token is generated, you can call the endpoint by including the Bearer token and the provided subscription key in the request headers.

Note: URL will be based on Environment (Sandbox or Production)

ParameterValue / Example
Header NameOcp-Apim-Subscription-Key
Sandbox URLhttps://demo-api.mypulse-sandbox.io
Production URLhttps://prod-api.mypulse.io

Authentication URL{EnvironmentUrl}/authorization/oauth2/v2.0/token

Request Header

Request Header
API image
API image

Request Body

Request Body

API Response Codes

CodeDescription
200Success
401Your API request was not properly authorized.
404One or more of the resources you referenced could not be found.
Step 3: Start with the Sandbox

Use the sandbox environment to test your integration.

This environment is safe for development and simulates real-time responses without impacting production systems.

Step 4: Go Live
Once your integration has been tested and approved by our technical team:

You will receive production credentials.

API endpoints will be updated to point to the live environment.

Monitoring, logging, and support agreements will be activated.

Our team will work closely with you during this phase to ensure a smooth transition.

Loan APIs

Create a Loan Application

To create a loan application for a business, use the Create-Application API endpoint.

Create Loan Application Image

Steps to Create an Application via API

API Requirements

The information provided must meet the minimum data requirements. Failure to meet these requirements will result in the application being ineligible for the Lender.

If the data is incomplete, the API will return an error code indicating the application ID cannot be created.

POST {EnvironmentUrl}/v1/Create-Application
Upon a successful request, the endpoint will return: application_id:Unique identifier used throughout the loan journey.
Applicant Details
Consent_To_Search
Boolean
Indicates whether the user has given consent to perform a search (credit & fraud)
First_Name
String
Applicant given name
Last_Name
String
Applicant surname
Email
String
Applicant email address
Phone_Number
String
Applicant's phone number
Address
String
Full address
House_Number
String
House or building number
Flat_Number
String
Apartment or flat number (if applicable)
Street
String
Name of the street
Town
String
Name of the town or city
Postcode
String
Postal or ZIP code
Residential_Status
String
Applicant’s residential status (Owner, Tenant)
Date_Of_Birth
String
Applicant’s date of birth (String format: DD-MM-YYYY)
Percent_Of_Control
Number
Percentage of control (ownership in a company)
Role
String
Role or position held (e.g., Director, Shareholder)
Guarantor
Boolean
Indicates whether the person is a guarantor
Send_OB_Link
Boolean
Whether to send an Open Banking link to the user
Send_OA_Link
Boolean
Whether to send an Open Accounting link to the user
Company_Name
String
Name of the company associated with the user
Companies_House_ID
String
Unique identifier for the company in Companies House (Company CRN)
Last_12_Months_Turnover
Number
Turnover of the company for last 12 months
Important Notes:
1. Each application must include exactly one Applicant.
  • The Applicant's contact must be designated as the Guarantor.
  • All fields related to the Applicant’s contact information are mandatory.
2. The “consent_to_search” field is required and must be set to true to proceed.
  • If the consent flag is false, the API request will be rejected and return an error code.
3. Customers must be clearly and explicitly informed that credit and fraud checks will be conducted.
4. Your privacy policy must include details about the sharing of customer data with Lending Partners.

Address sample response

Sample Response
1[ 2 { 3 "residential_addresses": [ 4 { 5 "house_number": "42", 6 "flat_number": "5B", 7 "street": "Baker Street", 8 "town": "London", 9 "postcode": "NW1 6XE", 10 "residential_status": "tenant" 11 } 12 ] 13 } 14]
Mandatory Information to Create a Loan Application
  • Information for one applicant.
  • The consent_to_search flag must be set to true.
  • If the company has more than one director, two guarantors are mandatory:
    • The applicant must act as one of the guarantors.
    • The second guarantor must be selected from the remaining directors
Loading...

Sample Body

Sample Response
1[ 2 { 3 "application": { 4 "consent_to_search": "<Boolean>" 5 }, 6 "applicant": { 7 "first_name": "<String>", 8 "last_name": "<String>", 9 "email": "<String>", 10 "phone_number": "<String>", 11 "address": [ 12 { 13 "house_number": "<String>", 14 "flat_number": "<String>", 15 "street": "<String>", 16 "town": "<String>", 17 "postcode": "<String>", 18 "residential_status": "<String>" 19 } 20 ], 21 "date_of_birth": "<String>", 22 "percent_of_control": "<Float>", 23 "role": "<String>", 24 "guarantor": "<Boolean>", 25 "send_ob_link": "<Boolean>", 26 "send_oa_link": "<Boolean>" 27 }, 28 "directors": [ 29 { 30 "first_name": "<String>", 31 "last_name": "<String>", 32 "email": "<String>", 33 "phone_number": "<String>", 34 "address": [ 35 { 36 "house_number": "<String>", 37 "flat_number": "<String>", 38 "street": "<String>", 39 "town": "<String>", 40 "postcode": "<String>", 41 "residential_status": "<String>" 42 } 43 ], 44 "date_of_birth": "<String>", 45 "percent_of_control": "<Float>", 46 "role": "<String>", 47 "guarantor": "<Boolean>", 48 "send_ob_link": "<Boolean>", 49 "send_oa_link": "<Boolean>" 50 }, 51 { 52 "first_name": "<String>", 53 "last_name": "<String>", 54 "email": "<String>", 55 "phone_number": "<String>", 56 "address": [ 57 { 58 "house_number": "<String>", 59 "flat_number": "<String>", 60 "street": "<String>", 61 "town": "<String>", 62 "postcode": "<String>", 63 "residential_status": "<String>" 64 } 65 ], 66 "date_of_birth": "<String>", 67 "percent_of_control": "<Float>", 68 "role": "<String>", 69 "guarantor": "<Boolean>" 70 } 71 ], 72 "company": { 73 "company_name": "Cool Company LTD", 74 "companies_house_id": "12341234", 75 "last_12_months_turnover": "<Number>" 76 } 77 } 78]

Sample Response

Sample Response
1[ 2 { 3 "status": "success", 4 "message": "Application submitted successfully", 5 "application_id": "abc12345", 6 "open_banking_link": "https://www.exampleurl.com" 7 } 8]

Required Validation

Structure Validation

Ensure all required top-level keys exist: application, applicant, directors, and company.

Ensure all required nested objects/arrays are present and not null.

Field-Level Validation

Application

consent_to_search: Must be a boolean.

Applicant & Director

first_name, last_name: Required, non-empty strings, alphabetic characters only.

email: Must be valid email format.

phone_number: Valid phone number format (e.g., 10-digit number, country-specific).

date_of_birth: Valid date with format DD/MM/YYYY.

percent_of_control: Number between 0 and 100 (inclusive).

guarantor: Must be boolean.

Company

company_name: Required, non-empty string.

companies_house_id: Required, non-empty string.

Cross-Field / Business Rule Validation

Director total control: Sum of percent_of_control across all directors should not exceed 100%.

Guarantor presence: At least one guarantor must be true.

Application Status API

This API will be used to fetch the real-time status of a loan application from the Lender Loan Management System (LMS) using the Application ID as a reference and return the corresponding status in the response.

Create Loan Application Image

GET {EnvironmentUrl}/v1/Application-Status/{application_id}
Application Status Details
Application_ID
String
Unique identifier for the application
Company_Name
String
Name of the company associated with the application
Status
String
Current status of the application
Amount
Number
Approved Loan Amount
Term
Number
Approved Loan Term
Interest_Rate
Number
Approved Interest Rate
Repayment_Type
String
Approved Repayment Type
Loading...

Sample Response

Sample Response
1[ 2 { 3 "application_id": "<string>", 4 "company_name": "<string>", 5 "status": "<string>", 6 "loan_offer": { 7 "amount": "<Number>", 8 "term": "<Number>", 9 "interest_rate": "<Number>", 10 "repayment_type": "<String>" 11 } 12 } 13]

The response values for Application Status are as follows:

Decline

Lender has assessed the customer but is unable to make an offer.

Reason for decline will be included in the response.

Pre-Approved

Lender has issued a tentative offer based on turnover provided for last 12 months.

This offer is subject to change once all information is received.

Approved

Lender has issued a confirmed offer letter. 

Display the offer details (view above sample response).

Payout

Once the deal is paid out, the status will be set to Payout.

InProgress

Lender has not yet made a decision; the application is still in progress.