MCA Manager Public API
v1.4.0 · openapi.json · · guide · webhooks · keys
REST API for MCA Manager. Authenticate with a per-tenant API key (Authorization: Bearer mca_live_… or mca_test_…) scoped per resource (read / write). The base URL is your company host, e.g. https://acme.mcamgr.com. Every response carries X-Request-Id and X-RateLimit-Limit / X-RateLimit-Remaining; errors share one envelope { error, code, details?, requestId }. Lists paginate by cursor. POSTs honour Idempotency-Key. Outbound webhooks (Settings → Webhooks or /api/v1/webhook-endpoints) POST a signed envelope { id, event, version, occurredAt, data } for the events listed at /help/webhooks.
Paste an API key (Settings → API keys) and send requests against your instance from this page. Prefer a mca_test_ key: it works against your sandbox, or read-only until one exists. Requests are same-origin, so open this page on your company subdomain.
Conventions
- Auth:
Authorization: Bearer mca_live_…; each operation names the scope it needs (e.g.deals:write; write implies read). - Errors:
{ error, code, details?, requestId }. QuoterequestId(also inX-Request-Id) when reporting a problem. - Lists:
limit(≤200) +cursor→{ items, count, hasMore, nextCursor };sort=field:asc|desc,expand=,fields=,ids=,q=, date windows. - Writes: send
Idempotency-Keyon POSTs; money is a decimal string ("425.00"); timestamps are UTC ISO-8601. - Rate limit: 120 requests per minute per key;
X-RateLimit-Remainingcounts down, 429 carriesRetry-After.
Whoami
/api/v1/whoamiDescribe the calling keyanyLeads
/api/v1/leadsList leadsleads:read/api/v1/leadsCreate a leadleads:write/api/v1/leads/{id}Get a leadleads:read/api/v1/leads/{id}Update a leadleads:write/api/v1/leads/{id}Delete a leadleads:writeMerchants
/api/v1/merchantsList merchantsmerchants:read/api/v1/merchantsCreate a merchantmerchants:write/api/v1/merchants/{id}Get a merchantmerchants:read/api/v1/merchants/{id}Update a merchantmerchants:write/api/v1/merchants/{id}Delete a merchantmerchants:writeDeals
/api/v1/dealsList dealsdeals:read/api/v1/dealsCreate a dealdeals:write/api/v1/deals/{id}Get a dealdeals:read/api/v1/deals/{id}Update a deal or move its statedeals:write/api/v1/deals/{id}Delete a dealdeals:write/api/v1/deals/{id}/statement-analysisLatest bank-statement analysis on a dealstatement-analysis:read/api/v1/deals/{id}/statement-analysisDeliver a bank-statement analysis for a dealstatement-analysis:writeStatement Analysis
/api/v1/statement-analysisDeliver a bank-statement analysis (target by deal, merchant or EIN)statement-analysis:writePayments
/api/v1/paymentsList paymentspayments:read/api/v1/paymentsRecord a paymentpayments:write/api/v1/payments/{id}Get a paymentpayments:read/api/v1/payments/{id}Update a payment or its statuspayments:writeSubmissions
/api/v1/submissionsList submissionssubmissions:readDecisions
/api/v1/decisionsList underwriting decisionscompliance:readRenewals
/api/v1/renewalsList renewal opportunitiesrenewals:readCredit Facilities
/api/v1/credit-facilitiesList lines of creditcredit-facilities:readIsos
/api/v1/isosList ISOsisos:read/api/v1/isosCreate an ISOisos:write/api/v1/isos/{id}Get an ISOisos:read/api/v1/isos/{id}Update an ISOisos:write/api/v1/isos/{id}Delete an ISOisos:writeFunders
/api/v1/fundersList fundersfunders:read/api/v1/fundersCreate a funderfunders:write/api/v1/funders/{id}Get a funderfunders:read/api/v1/funders/{id}Update a funderfunders:write/api/v1/funders/{id}Delete a funderfunders:writeSyndicators
/api/v1/syndicatorsList syndicatorssyndicators:read/api/v1/syndicatorsCreate a syndicatorsyndicators:write/api/v1/syndicators/{id}Get a syndicatorsyndicators:read/api/v1/syndicators/{id}Update a syndicatorsyndicators:write/api/v1/syndicators/{id}Delete a syndicatorsyndicators:writeDisclosures
/api/v1/disclosuresList disclosurescompliance:readUcc Filings
/api/v1/ucc-filingsList UCC filingscompliance:readPayouts
/api/v1/payoutsList payout batchespayouts:readApplications
/api/v1/applicationsList application submissionsapplications:readCommunications
/api/v1/communicationsList communicationscommunications:readWebhook Endpoints
/api/v1/webhook-endpointsList webhook endpoints and the event cataloguewebhooks:read/api/v1/webhook-endpointsCreate a webhook endpointwebhooks:write/api/v1/webhook-endpoints/{id}Get a webhook endpoint with its recent deliverieswebhooks:read/api/v1/webhook-endpoints/{id}Update a webhook endpointwebhooks:write/api/v1/webhook-endpoints/{id}Rotate the signing secret (?action=rotate)webhooks:write/api/v1/webhook-endpoints/{id}Delete a webhook endpointwebhooks:writeWebhook events
deal.created— A deal was created (staff, API, portal or email intake).deal.state_changed— A deal moved to a new state (funded, closed, defaulted…).merchant.created— A merchant record was created.lead.created— A lead was created.lead.status_changed— A lead's status changed.submission.status_changed— A funder submission moved to a new pipeline status.payment.paid— A payment was marked paid (staff, processor or API).payment.bounced— A payment was returned; carries the NACHA return code when known.esign.signed— One party signed a document sent for signature.esign.completed— Every party signed; carries the filed document id and url.esign.declined— A signer declined; the request stopped and carries their reason.webhook.test— Sent by the Send test button.
Schemas
Error
error- string (required)code- string (required)details- objectrequestId- string (required)
Lead
id- integer (required)businessName- string (required)dbaName- stringcontactName- stringemail- stringphone- stringstatus- string (required) (NEW | CONTACTED | QUALIFIED | CONVERTED | DEAD)source- stringrequestedAmount- decimal stringnotes- stringownerId- integernextActionAt- stringcreatedAt- string (required)updatedAt- string (required)
NewLead
businessName- string (required)dbaName- stringcontactName- stringemail- stringphone- stringrequestedAmount- decimal stringsource- stringstatus- string (NEW | CONTACTED | QUALIFIED | CONVERTED | DEAD)notes- string
UpdateLead
businessName- stringdbaName- stringcontactName- stringemail- stringphone- stringrequestedAmount- decimal stringsource- stringstatus- string (NEW | CONTACTED | QUALIFIED | CONVERTED | DEAD)notes- string
Merchant
id- integer (required)legalName- string (required)dbaName- stringreferenceId- stringfederalId- stringindustry- stringemail- stringphone- stringaddressLine1- stringaddressLine2- stringcity- stringstate- stringpostalCode- stringbusinessType- stringstartedOn- stringwebsite- stringstateOfIncorporation- stringnaicsCode- stringsicCode- stringhomeBased- boolean (required)eCommerce- boolean (required)annualRevenue- decimal stringmerchantStatusId- integerexternalSource- stringexternalRef- stringcreatedAt- string (required)updatedAt- string (required)
NewMerchant
legalName- string (required)dbaName- stringemail- stringphone- stringwebsite- stringfederalId- stringindustry- stringnaicsCode- stringsicCode- stringbusinessType- stringstartedOn- stringstateOfIncorporation- stringannualRevenue- decimal stringaddressLine1- stringaddressLine2- stringcity- stringstate- stringpostalCode- stringhomeBased- booleaneCommerce- booleanreferenceId- string
UpdateMerchant
legalName- stringdbaName- stringemail- stringphone- stringwebsite- stringfederalId- stringindustry- stringnaicsCode- stringsicCode- stringbusinessType- stringstartedOn- stringstateOfIncorporation- stringannualRevenue- decimal stringaddressLine1- stringaddressLine2- stringcity- stringstate- stringpostalCode- stringhomeBased- booleaneCommerce- booleanreferenceId- string
Deal
id- integer (required)dealNumber- stringreferenceId- stringproductType- string (required) (MCA | FACTORING | TERM_LOAN | LOC | SBA | EQUIPMENT)state- string (required) (INCEPTION | SUBMITTED | PREFUNDED | FUNDED | DEFAULTED | CLOSED | RENEWED | WITHDRAWN)merchantId- integer (required)isoId- integerfundedLenderId- integerinceptionLenderId- integerfactorRate- decimal stringbuyRate- decimal stringspecifiedPercentage- decimal stringfundedAmount- decimal stringpaybackAmount- decimal stringtermDays- integerposition- integerbankFeeBasis- string (PERCENT_OF_FUNDED | PERCENT_OF_PAYBACK | POINTS | FLAT)bankFeeValue- decimal stringapplicationFee- decimal stringwireFee- decimal stringdefaultSurcharge- decimal stringepoWindowDays- integerepoFactorRate- decimal stringepoCommissionBasis- stringepoCommissionValue- decimal stringcollectionFrequency- string (DAILY | WEEKLY | MONTHLY)collectionSchedule- string (BANKING_DAYS | WEEKDAYS | EVERY_DAY | CUSTOM_DAYS)collectionDay- integerpaymentAmount- decimal stringnumberOfPayments- integerfirstPaymentDate- stringpayoffDate- stringunderwriterId- integeruwScore- integeruwScoreCategory- string (A | B | C)commissionBasis- string (PERCENT_OF_FUNDED | PERCENT_OF_PAYBACK | POINTS | FLAT)commissionValue- decimal stringcommissionOfferId- integerfundedAt- stringdefaultedAt- stringisRenewal- boolean (required)externalSource- stringexternalRef- stringrenewedFromDealId- integerrenewalPayoffAmount- decimal stringcreatedAt- string (required)updatedAt- string (required)
NewDeal
merchantId- integer (required)isoId- integerproductType- string (MCA | FACTORING | TERM_LOAN | LOC | SBA | EQUIPMENT)fundedAmount- decimal stringpaybackAmount- decimal stringfactorRate- decimal stringbuyRate- decimal stringtermDays- integernumberOfPayments- integerpaymentAmount- decimal stringcollectionFrequency- string (DAILY | WEEKLY | MONTHLY)collectionSchedule- string (BANKING_DAYS | WEEKDAYS | EVERY_DAY | CUSTOM_DAYS)collectionDay- integerfirstPaymentDate- stringposition- integerspecifiedPercentage- decimal stringcommissionBasis- string (PERCENT_OF_FUNDED | PERCENT_OF_PAYBACK | POINTS | FLAT)commissionValue- decimal stringbankFeeBasis- string (PERCENT_OF_FUNDED | PERCENT_OF_PAYBACK | POINTS | FLAT)bankFeeValue- decimal stringapplicationFee- decimal stringwireFee- decimal stringdefaultSurcharge- decimal stringepoFactorRate- decimal stringepoWindowDays- integerepoCommissionBasis- stringepoCommissionValue- decimal stringfundedAt- stringpayoffDate- stringfundedLenderId- integerinceptionLenderId- integerunderwriterId- integeruwScore- integeruwScoreCategory- string (A | B | C)referenceId- string
UpdateDeal
isoId- integerproductType- string (MCA | FACTORING | TERM_LOAN | LOC | SBA | EQUIPMENT)fundedAmount- decimal stringpaybackAmount- decimal stringfactorRate- decimal stringbuyRate- decimal stringtermDays- integernumberOfPayments- integerpaymentAmount- decimal stringcollectionFrequency- string (DAILY | WEEKLY | MONTHLY)collectionSchedule- string (BANKING_DAYS | WEEKDAYS | EVERY_DAY | CUSTOM_DAYS)collectionDay- integerfirstPaymentDate- stringposition- integerspecifiedPercentage- decimal stringcommissionBasis- string (PERCENT_OF_FUNDED | PERCENT_OF_PAYBACK | POINTS | FLAT)commissionValue- decimal stringbankFeeBasis- string (PERCENT_OF_FUNDED | PERCENT_OF_PAYBACK | POINTS | FLAT)bankFeeValue- decimal stringapplicationFee- decimal stringwireFee- decimal stringdefaultSurcharge- decimal stringepoFactorRate- decimal stringepoWindowDays- integerepoCommissionBasis- stringepoCommissionValue- decimal stringfundedAt- stringpayoffDate- stringfundedLenderId- integerinceptionLenderId- integerunderwriterId- integeruwScore- integeruwScoreCategory- string (A | B | C)referenceId- stringstate- string (INCEPTION | SUBMITTED | PREFUNDED | FUNDED | DEFAULTED | CLOSED | RENEWED | WITHDRAWN)
Payment
id- integer (required)dealId- integer (required)type- string (required) (ORIGINAL_ADVANCE_PAYBACK | ADVANCE_PAYBACK | ADVANCE_PAYBACK_ADJUSTMENT | PARTICIPATION_PAYOUT | PARTICIPATION_PAYOUT_ADJUSTMENT | BOUNCE_FEE | WIRE_FEE | UCC_FEE | APPLICATION_FEE | OTHER_FEE | EPO_DISCOUNT | RENEWAL_PAYOFF)status- string (required) (PENDING | SUBMITTED | PAID | BOUNCED | CANCELLED)amount- decimal string (required)scheduledDate- stringclearedDate- stringaccountId- integersyndicatorId- integerbounceCodeId- integerdirection- stringexternalTransferId- stringreferenceId- stringnote- stringsource- stringmethod- string (ACH | WIRE | CHECK | CASH | OTHER | OFFSET)bankAccountTokenId- integerinitiatedAt- stringreturnedAt- stringlocDrawId- integermadeUpById- integercreatedAt- string (required)updatedAt- string (required)
NewPayment
dealId- integer (required)type- string (required) (ORIGINAL_ADVANCE_PAYBACK | ADVANCE_PAYBACK | ADVANCE_PAYBACK_ADJUSTMENT | PARTICIPATION_PAYOUT | PARTICIPATION_PAYOUT_ADJUSTMENT | BOUNCE_FEE | WIRE_FEE | UCC_FEE | APPLICATION_FEE | OTHER_FEE | EPO_DISCOUNT | RENEWAL_PAYOFF)amount- decimal string (required)status- string (PENDING | SUBMITTED | PAID | BOUNCED | CANCELLED)method- string (ACH | WIRE | CHECK | CASH | OTHER | OFFSET)accountId- integersyndicatorId- integerbounceCodeId- integerreferenceId- stringnote- string
UpdatePayment
type- string (ORIGINAL_ADVANCE_PAYBACK | ADVANCE_PAYBACK | ADVANCE_PAYBACK_ADJUSTMENT | PARTICIPATION_PAYOUT | PARTICIPATION_PAYOUT_ADJUSTMENT | BOUNCE_FEE | WIRE_FEE | UCC_FEE | APPLICATION_FEE | OTHER_FEE | EPO_DISCOUNT | RENEWAL_PAYOFF)amount- decimal stringstatus- string (PENDING | SUBMITTED | PAID | BOUNCED | CANCELLED)method- string (ACH | WIRE | CHECK | CASH | OTHER | OFFSET)accountId- integersyndicatorId- integerbounceCodeId- integerreferenceId- stringnote- stringclearedDate- stringmadeUpById- integer
Submission
id- integer (required)dealId- integer (required)funderId- integer (required)statusId- integer (required)underwriterId- integerassignedToId- integerdelegatedToId- integersubmittedAt- stringstatusChangedAt- string (required)declineReasonId- integerdeclinedAt- stringcreatedAt- string (required)updatedAt- string (required)
DecisionResult
id- integer (required)dealId- integer (required)policyId- integerrecommendation- string (required)score- integer (required)category- string (required)flags- object (required)maxOffer- objectmetrics- object (required)createdAt- string (required)
RenewalOpportunity
id- integer (required)priorDealId- integer (required)merchantId- integer (required)status- string (required)paidDownPct- decimal string (required)outstanding- decimal string (required)renewalDealId- integercreatedAt- string (required)updatedAt- string (required)
CreditFacility
id- integer (required)dealId- integer (required)creditLimit- decimal string (required)availableRoom- decimal string (required)factorRate- decimal stringstatus- string (required)createdAt- string (required)updatedAt- string (required)
Iso
id- integer (required)name- string (required)email- stringphone- stringcontactName- stringwebsite- stringnotes- stringaddressLine1- stringaddressLine2- stringcity- stringstate- stringpostalCode- stringein- stringentityType- stringsignerName- stringsignerTitle- stringisoType- stringtype- string (required) (BROKER | SUPER_BROKER | REFERRAL)requires1099- boolean (required)isActive- boolean (required)domains- string[] (required)emailAddresses- string[] (required)commissionRule- objectagreementSignedAt- stringidOnFileAt- stringvoidedCheckAt- stringw9OnFileAt- stringcreatedAt- string (required)updatedAt- string (required)
NewIso
name- string (required)type- string (BROKER | SUPER_BROKER | REFERRAL)isoType- stringcontactName- stringemail- stringphone- stringwebsite- stringdomains- string[]emailAddresses- string[]commissionRule- objectrequires1099- booleanisActive- booleannotes- string
UpdateIso
name- stringtype- string (BROKER | SUPER_BROKER | REFERRAL)isoType- stringcontactName- stringemail- stringphone- stringwebsite- stringdomains- string[]emailAddresses- string[]commissionRule- objectrequires1099- booleanisActive- booleannotes- string
Funder
id- integer (required)name- string (required)email- stringphone- stringcontactName- stringwebsite- stringnotes- stringisActive- boolean (required)isHouse- boolean (required)externalSource- stringexternalRef- stringcreatedAt- string (required)updatedAt- string (required)
NewFunder
name- string (required)contactName- stringemail- stringphone- stringwebsite- stringisHouse- booleanisActive- booleannotes- string
UpdateFunder
name- stringcontactName- stringemail- stringphone- stringwebsite- stringisHouse- booleanisActive- booleannotes- string
Syndicator
id- integer (required)name- string (required)referenceId- stringemail- stringphone- stringcontactName- stringwebsite- stringnotes- stringrequires1099- boolean (required)isActive- boolean (required)isHouse- boolean (required)externalSource- stringexternalRef- stringportfolioId- integermaxPerDeal- decimal stringmanagementFeePercent- decimal stringmanagementFeeBasis- string (PERCENT_OF_PARTICIPATION | PERCENT_OF_COLLECTIONS)profitSplitPercent- decimal stringlossProtected- boolean (required)participatesInBankFee- booleanfrontsCommission- boolean (required)cafRecognition- string (required) (UPFRONT | AS_COLLECTED)profitAccrual- string (required) (PRO_RATA | COST_FIRST)distributionFrequency- stringcreatedAt- string (required)updatedAt- string (required)
NewSyndicator
name- string (required)contactName- stringemail- stringphone- stringwebsite- stringportfolioId- integerisHouse- booleanisActive- booleanmanagementFeeBasis- string (PERCENT_OF_PARTICIPATION | PERCENT_OF_COLLECTIONS)managementFeePercent- decimal stringprofitAccrual- string (PRO_RATA | COST_FIRST)profitSplitPercent- decimal stringcafRecognition- string (UPFRONT | AS_COLLECTED)participatesInBankFee- booleanfrontsCommission- booleanlossProtected- booleanmaxPerDeal- decimal stringdistributionFrequency- stringrequires1099- booleanreferenceId- stringnotes- string
UpdateSyndicator
name- stringcontactName- stringemail- stringphone- stringwebsite- stringportfolioId- integerisHouse- booleanisActive- booleanmanagementFeeBasis- string (PERCENT_OF_PARTICIPATION | PERCENT_OF_COLLECTIONS)managementFeePercent- decimal stringprofitAccrual- string (PRO_RATA | COST_FIRST)profitSplitPercent- decimal stringcafRecognition- string (UPFRONT | AS_COLLECTED)participatesInBankFee- booleanfrontsCommission- booleanlossProtected- booleanmaxPerDeal- decimal stringdistributionFrequency- stringrequires1099- booleanreferenceId- stringnotes- string
Disclosure
id- integer (required)dealId- integer (required)state- string (required)computed- object (required)status- string (required)signatureRequestId- integerdeliveredAt- stringsignedAt- stringcreatedAt- string (required)updatedAt- string (required)
UccFiling
id- integer (required)dealId- integer (required)provider- string (required)externalId- stringfileNumber- stringjurisdiction- string (required)type- string (required)status- string (required)collateral- stringfiledAt- stringlapsesAt- stringcreatedAt- string (required)updatedAt- string (required)
PayoutBatch
id- integer (required)kind- string (required)periodFrom- string (required)periodTo- string (required)status- string (required)createdByUserId- integercreatedAt- string (required)updatedAt- string (required)
ApplicationSubmission
id- integer (required)formId- integer (required)payload- object (required)leadId- integerstatus- string (required)ip- stringcreatedAt- string (required)
Communication
id- integer (required)channel- string (required)direction- string (required) (INBOUND | OUTBOUND)merchantId- integerdealId- integerfromAddr- stringtoAddr- stringbody- stringrecordingUrl- stringdurationSec- integerdispositionReasonId- integeruserId- integeroccurredAt- string (required)
MerchantContact
id- integer (required)merchantId- integer (required)firstName- string (required)lastName- string (required)email- stringphone- stringssnLast4- stringtitle- stringownershipPct- decimal stringisGuarantor- boolean (required)isPrimary- boolean (required)createdAt- string (required)updatedAt- string (required)
WebhookEndpoint
id- integer (required)url- string (required)events- string[] (required)isActive- boolean (required)failureStreak- integer (required)disabledAt- stringdisabledReason- stringlastDeliveredAt- stringcreatedAt- string (required)
WebhookDelivery
id- integer (required)endpointId- integer (required)event- string (required)payload- object (required)status- string (required) (PENDING | DELIVERED | FAILED)attempts- integer (required)responseStatus- integererror- stringdurationMs- integerresponseSnippet- stringdeliveredAt- stringcreatedAt- string (required)updatedAt- string (required)
StatementAnalysis
id- integer (required)dealId- integer (required)merchantId- integer (required)source- string (required)version- stringperiodStart- stringperiodEnd- stringmonthsCovered- integergrossDeposits- decimal stringmcaDeposits- decimal stringinternalTransfers- decimal stringtrueRevenue3m- decimal stringavgMonthlyTrueRevenue- decimal stringestimatedMcaMonthly- decimal stringpositionCount- integeraltered- boolean (required)nsfCount- integernegativeDays- integeravgDailyBalance- decimal stringdepositTypes- objectpositions- objectalteredFlags- objectsummary- objectkeyId- integeractorId- integerreceivedAt- string (required)
LocDraw
id- integer (required)facilityId- integer (required)amount- decimal string (required)feeAmount- decimal stringpaybackAmount- decimal stringstatus- string (required)requestedBy- stringfundedAt- stringcreatedAt- string (required)updatedAt- string (required)
Approval
id- integer (required)submissionId- integer (required)factorRate- decimal stringfundedAmount- decimal stringpaybackAmount- decimal stringtermDays- integerepoDiscount- decimal stringnotes- stringofferSentAt- stringacceptedAt- stringexpiresAt- stringshareToken- stringcounterAmount- decimal stringcounterFactor- decimal stringcounterTermDays- integercounterBankFeePercent- decimal stringcounterNote- stringcounterAt- stringcounterResolvedAt- stringcounterAccepted- booleancreatedAt- string (required)updatedAt- string (required)
PayoutItem
id- integer (required)batchId- integer (required)isoId- integerreferrerId- integersyndicatorId- integerdealId- integeramount- decimal string (required)paymentId- integerstatus- string (required)clawbackRiskAt- stringclawedBackAt- stringclawbackNote- stringclawbackAmount- decimal stringcreatedAt- string (required)
Can’t find what you need? Return to the app or contact your administrator.