The MCASuite REST API allows companies to integrate into MCA Suite system through a HTTP RESTful web service.  The API is designed to ease the painful process of hand entering data from one system to another system.  All responses will be in JSON format.  Add Contact and Add Deal.
 
Login
 
All calls require two identifying header parameters for credentialing:

1.    X_MCASUITE_APP_ID
2.    X_MCASUITE_APP_TOKEN

Both of these values will be generated by MCA Suite and provided to our customers. Please contact your representative to get these credentials. 
 
 
URLS: 
 
The Base REST URL will be provided to the customer upon API request.
 
Format:
 
The API will accept form encoded or json encoded parameters.
 
Testing:
 
To test the rest url and parameter, we recommend to use the Rested app on Mac OS.  Alternatively, you can use the “Advanced Rest Client” extension on google Chrome.  If using the Chrome extension, please verify you use application/json as content type, and paste the json parameters into the Raw tab.

Adding a Contact
 

When adding a contact through the REST api, the contact will appear in the 'Pending Contacts' page in MCA Suite.  If an existing company exists, it will re-use the same company.  To create a new duplicate company, see the addDuplicateCompany field.


Function:
Name: addContact
Type: POST
Parameters: 


Field Name





Required?
Type
Description

contactType

 Yes
String
The category of the contact:


  • Funder
  • Broker
  • Merchant
  • Collector
  • Credit Card Processor
  • Vendor
  • Investor
  • General
  • Other
contactStatus String Must be:
  • Lead 
  • Assigned 
  • Active
  • Declined
If none provided, the default contact status setup in Admin will be used.
For the contact to show up on the leads page, the status must be 'Lead'
companyName

String - Max 150

Contact’s company name
firstName
Yes

String - Max 30

First name of contact
lastName
YesString - Max 30
Last name of contact
title

StringContact's title
businessPhone

StringBusiness Phone
mobilePhone

StringMobile Phone
email

StringEmail address
website

StringWebsite address
address1

StringStreet line 1
address2

StringStreet line 2
city

StringCity
state

StringState (Two Lettter Abbr)
zip

StringZip Code
country

StringCountry
industry
StringMust match industry name (Case sensitive) in MCA Suite or error
additionalInfo

String - Max 250
Person's additional info
campaign
StringMust match campaign in (Case sensitive) MCA Suite, otherwise skipped
assignedTo
StringMust match username in MCA Suite, otherwise skipped
autoAdd    
BooleanUse 'true' if you want the contact automatically added to the system
and bypass the Pending contacts page.
addDuplicateCompany
BooleanUse 'true' if you want to create a new company even if it is a duplicate.  Otherwise a contact will be added to an existing company with the same name


Return Response


Field Name
TypeDescription
success
booleantrue/false
error
StringError message if available



Example (URL not real):

Add contact via MCA Suite API

PHP code example using Curl:  
 
<?php

$service_url = 'http://XXXXXXXXXXXX/rest/addContact/';
$app_id = XXXXXXXXXXX';
$token = 'XXXXXXXXXXX’;

$curl = curl_init($service_url);

$curl_post_data = array("contactType" =>"Merchant",
"companyName"=> "Test Company",
"firstName"=> "Bob",
"lastName"=> "Smith",
"title"=> "Test CEO",
"businessPhone"=> "4564564568",
"mobilePhone"=> "8978978978",
"email"=> "test@test.com",
"website"=>"test.com",
"address1"=> "123 fake St",
"address2"=> "Suite 230",
"city"=> "Saint Louis",
"state"=> "MO",
"zip"=> "11100",
"country"=> "USA");

$headr = array();
$headr[] = 'X_MCASUITE_APP_ID: ' . $app_id;
$headr[] = 'X_MCASUITE_APP_TOKEN: ' . $token;

curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headr);
$curl_response = curl_exec($curl);
curl_close($curl);

// Check out response message, it will be in json format.
echo $curl_response;

?>



Adding a Deal
 
Functions:
Name: addDeal
Type: POST
Parameters:


Field Name
Required?TypeDescription
amountRequested

Decimal
Amount requested of the deal, example if the amount is $10000.25, send 10000.25
companyName
YesString – Max 50
Name of the company
dba
YesString – Max 50
DBA of the company
entityType

StringBusiness type, valid options only are:
·      Corporation
·      Incorporation
·      Limited Liability Company
·      Limited Liability Partnership
·      Partnership
·      Sole Proprietorship
       Non-Profit
name
String - Max 100Name of deal, if not the default deal name setting will be used.
useOfProceeds

String – Max 250
Description of the deal
companyAddress.street1

String – Max 100
Company address street line 1
companyAddress.street2

String – Max 100
Company address street line 2
companyAddress.city

String – Max 30
Company address city
companyAddress.state

String – Max 2
Company address state, only the two letter abbreviation
companyAddress.zip



String - Max 10
Company address zip code, only valid 5 number zip – 4 digit extension.   
Valid examples: 12345 or 12345-1234
companyBusinessPhone

String – Max 20
Company business phone number
companyMainPhone

String – Max 20
Company main phone number
companyFaxPhone

String – Max 20
Company fax number
companyEmail

String – Max 50
Company business email
web
String – Max 50
Company website
businessMonthlyRate

Decimal
Monthly rental rate of business
currentProcessor

String – Max 30
Current credit card processor
grossAnnualSales DecimalCredit Card Annual sales of business
averageMonthlyGross

Decimal
Average monthly gross sales
averageMonthlyCC

Decimal
Average monthly credit card

averageMonthlyMasterCard / avgMonthlyVisa


Decimal



Average monthly MC or Visa
bankruptcies

String – Max 20
Number of bankruptcies
firstName YesString – Max 30Owner’s first name
lastName YesString – Max 30Owner’s last name
middleName String – Max 30Owner’s middle name

title


String – Max 10
Title of the owner’s name
ssn

String
Owner’s SSN
dateOfBirth

String – Max 20
Owner’s date of birth
ownerHomePhone

String – Max 20
Owner’s home phone
ownerMobilePhone String – Max 20Owner’s mobile phone
ownerAddress.street1 String – Max 100Owner address street 1
ownerAddress.street2 String – Max 100Owner address street 2
ownerAddress.city String – Max 30Owner address city
ownerAddress.state String – Max 2Owner address state
ownerAddress.zip String – Max 10Owner address zip code
ownerEmail

String – Max 20
Owner email of type ‘Business’
ownership String – Max 20Ownership %
dateInc StringDate Incorporated
taxId
 StringFederal Tax ID / EIN 
totalDeposits DecimalTotal Deposits
loanAmount
 String – Max 50Existing Loan Amount
paybackAmount String – Max 50Existing Payback Amount 
holdback String – Max 50Holdback
industry String – Max 50Must match Industries in Application Configuration options
numberEmployees String – Max 20Number of employees in the business
homeBusiness String - Max 20Is it home based business?
assignedToOne



StringThis is the username (email login) of a MCA Suite user. The system must have the user in MCA Suite in order for the record to be accepted.  Permissions on the deal will automatically be set to this user.
category
StringMatch Deal Category in MCA Suite.
campaign


StringMatch campaign name in Admin - Application configuration.
autoAdd



StringMust be set to “true”.  This will automatically send it through from pending to accepted.  You must contact MCA Suite to setup this feature.
annualGrossSales
String - Max 20Bank statements annual gross sales
dealDescription                
String - Max 250Deal description
additionalInformation
String - Max 250Deal additional information
sourceCompany
StringMust match company name in the MCA Suite, if doesn't match, deal will still be added.
sourceContact
StringFirst and last name separated by space.  If no match, deal will still be added.
businessCreditStartDate

StringBusiness Credit - Start Date
timeAtLocation

StringBusiness Credit > Business Location Time at Location
contractTerms.advanceAmount
DecimalContract Terms - Advance Amount
contractTerms.paybackAmount

Decimal
Contract Terms - Payback Amount, will calculate factor if both advance and payback are entered but NOT factor
contractTerms.factor

Decimal
Contract Terms - Factor %, if advancedAmount and factor are entered, payback amount will be calculated and override payback amount
contractTerms.purchasedPct

DecimalContract Terms - Purchased %
contractTerms.calculation

IntegerContract Terms - Calculation Method
0 - Manual, enter number of payments and rate
1 - Calculate off Daily Rate, enter collection method daily rate
2 - Calculate off payments, enter number of payments

contractTerms.numberPayments

DecimalContract Terms - Number of Payments
collectionMethod.dailyRate
DecimalCollection Method - Daily Rate, also used to calculate number of payments



Return Response


Field Name
TypeDescription
successbooleantrue/false
errorStringError message if available
urlString

Only if autoAdd is used then the response will include the URL of the deal summary page for new deal.

id

NumberOnly if autoAdd is used then then the new deal id will be returned.


Example (URL not real):

Add Deal API

PHP code example:

<?php

$service_url = 'http://XXXXXXXXXX/rest/addDeal/';
$app_id = 'XXXXXXXXXX';
$token = ‘XXXXXXXXXXX';

$curl = curl_init($service_url);

$curl_post_data = array(
"companyName"=> "Test Company",
"firstName"=> "Bob",
"lastName"=> "Smith",
"dba"=> "Test Company LLC",
"companyBusinessPhone"=> "4564564568",
"companyMainPhone"=> "8978978978",

"companyAddress.street1": "123 fake St",
"companyAddress.street2": "Suite 230",
"companyAddress.city": "Saint Louis",
"companyAddress.state": "MO",
"companyAddress.zip": "11100",

"entityType"=> "LLC");

$headr = array();
$headr[] = 'X_MCASUITE_APP_ID: ' . $app_id;
$headr[] = 'X_MCASUITE_APP_TOKEN: ' . $token;

curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headr);
$curl_response = curl_exec($curl);
curl_close($curl);
echo $curl_response;
?>