Getting Started
Welcome to the Mulligan Funding ISO API. This guide provides an overview of how to integrate with our platform to programmatically submit funding applications, upload required documentation, and receive real-time status updates via webhooks.
Overview
The Mulligan Funding ISO API is a RESTful, HTTP-based API that enables Mulligan Funding's partners to build
custom client applications and automate their interaction with Mulligan Funding.
To begin your integration, you will need to operate within two distinct environments. All API requests must be directed to the appropriate base URL for your target environment:
- Sandbox (partner.sandbox.mulliganfunding.com): A testing environment to aid in implementing and validating your API submissions.
- Production (partner.mulliganfunding.com): The live production environment.
Structure
All API endpoints utilize standard HTTP verbs (GET, POST, PUT, and DELETE). Not all endpoints offer access to all HTTP verbs. Please refer to the specific endpoint documentation for more information.
Quickstart
To send an application to our API, first request an access-token using base64-encoded credentials (your client-id and client-secret):
export accessToken=$(curl --request POST \
--url https://partner.mulliganfunding.com/iso/api/auth/oauth2/token \
--header 'accept: application/json' \
--header 'authorization: Basic MTIzNDpwYXNzd29yZA==' | jq .accessToken)After that, you can send an application to the v1/application endpoint:
curl --request POST \
--url https://partner.mulliganfunding.com/iso/api/v1/application \
--header 'accept: application/json' \
--header "authorization: Bearer ${accessToken}" \
--header 'content-type: application/json'
-d @application.jsonNote: see the Submitting Applications documentation for the structure of this document.
The above POST will return a JSON payload like this:
{"application_id": "123456789"}Finally, you can add files to this submission by sending them to the document endpoint:
curl --request POST \
--url https://partner.mulliganfunding.com/iso/api/v1/document \
--header 'accept: application/json' \
--header "authorization: Bearer ${accessToken}" \
--header 'content-type: multipart/form-data' \
--form application_id=123456789 \
--form type=bank_statement \
--form doc='@bank%20statement-generic.pdf'
See Create Document for more information
Versioning
All routes (except authentication, oauth, and token routes) should include the version number in the path prefix.
Note: previous API-integrations may use paths such as: /iso/api/application and /iso/api/document. These paths are now deprecated in favor of the versioned-endpoints, all prefixed with v1.
Following are the updated endpoints you should use:
/iso/api/application->/iso/api/v1/application/iso/api/document->/iso/api/v1/document/iso/api/documents->/iso/api/v1/documents/iso/api/offers->/iso/api/v1/offers/iso/api/offer->/iso/api/v1/offer/iso/api/webhooks->/iso/api/v1/webhooks
The /auth endpoints are unchanged.
Eventually, the deprecated paths will be removed: please update your integrations if you are still relying on the old paths.
Error Handling
The API uses standard HTTP response codes. If a request fails, the API returns a JSON error object shaped like this:
{
"error": "Validation failed for POST /v1/application",
"path": "/v1/application",
"detail": "Validation failed for POST /v1/application",
"extra": [
{
"message": "Field required",
"key": "application"
},
{
"message": "Field required",
"key": "company"
}
]
}Note: If an error occurs during application or document submission, the data was not received and must be corrected before resubmitting.
For more error examples, see Errors.
We're here to help!
If you get stuck, shoot us an email and we'd be happy to assist you in your implementation.
Updated about 2 months ago
