MCA Manager Public API
v1.5.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_…) or an OAuth 2.0 access token from /oauth/token (mca_at_…; see /help/connected-apps), 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
Leads
Merchants
People
Deals
Statement analysis
Payments
Submissions
Decisions
Renewals
Credit facilities
ISOs
Funders
Syndicators
Disclosures
UCC filings
Payouts
Applications
Communications
Document templates
E-sign requests
Documents
Webhook endpoints
Webhook events
deal.created— A deal was created (staff, API, portal or email intake).deal.updated— A deal's fields were edited (staff or API).changednames the fields; values are not repeated — fetch the deal.deal.deleted— A deal was deleted (only possible while nothing references it). A tombstone forupdatedSincesync.deal.state_changed— A deal moved to a new state (funded, collections, 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.created— A payment row was created: a pull scheduled, a fee charged, a payment recorded or imported (rows from history loads only when recent). A schedule rebuild sends one per new pull.payment.cancelled— A payment was cancelled (by staff, a payoff close-out, a schedule repair or rebuild). Kept on record; never collected.payment.deleted— A mistaken manual payment was deleted (its journal reversed). A tombstone forupdatedSincesync.payment.refunded— Money went back to the merchant (a refund was paid out); also sent aspayment.paidwith a negative credit amount.payment.paid— A payment was marked paid (staff, processor, import or API).typeanddirectiontell a collection from a fee or a refund (a refund is a negative credit).payment.bounced— A payment was returned; carries the NACHA return code when known.merchant.bank_account_changed— A merchant's bank account was added, edited, re-ordered or removed. Never carries account or routing numbers.person.merged— Two person records were merged; contacts on the dropped one now point at the kept one.contract.generated— A contract requested through the API (POST /deals/{id}/contracts) was generated: a draft signature request is ready to review and send.contract.failed— A contract requested through the API could not be generated; carries the reason (no signers chosen, template archived, conversion failed…).esign.sent— A signature request went out to its signers (staff or API).esign.voided— A signature request was withdrawn; its signer links stop working.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 | COLLECTIONS | 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 stringfundedBy- string (ACH | WIRE | CHECK | CASH | OTHER | OFFSET)fundingSendCost- decimal stringbankFeeReferralBasis- stringbankFeeReferralValue- decimal stringbankFeeReferralTo- stringepoWindowDays- integerepoFactorRate- decimal stringepoCommissionBasis- stringepoCommissionValue- decimal stringthirdPartyPayoffAmount- decimal stringpayoffsNone- boolean (required)brokerFeeMerchant- decimal stringbrokerFeeFunder- decimal stringdisclosureRevenueMonths- objectsignerOverrideNote- 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)countsAsRenewal- 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- stringfundedBy- string (ACH | WIRE | CHECK | CASH | OTHER | OFFSET)fundingSendCost- decimal stringbankFeeReferralBasis- stringbankFeeReferralValue- decimal stringbankFeeReferralTo- stringthirdPartyPayoffAmount- decimal stringcountsAsRenewal- boolean
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- stringfundedBy- string (ACH | WIRE | CHECK | CASH | OTHER | OFFSET)fundingSendCost- decimal stringbankFeeReferralBasis- stringbankFeeReferralValue- decimal stringbankFeeReferralTo- stringthirdPartyPayoffAmount- decimal stringcountsAsRenewal- booleanstate- string (INCEPTION | SUBMITTED | PREFUNDED | FUNDED | COLLECTIONS | 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 | REFUND | OVERPAYMENT_TRANSFER)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- integermakeupForId- integercoveredById- integercoveredAmount- decimal stringfeeTiming- string (AT_FUNDING | ADD_ON)overpaymentDecisionId- 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 | REFUND | OVERPAYMENT_TRANSFER)amount- decimal string (required)status- string (PENDING | SUBMITTED | PAID | BOUNCED | CANCELLED)method- string (ACH | WIRE | CHECK | CASH | OTHER | OFFSET)accountId- integersyndicatorId- integerbounceCodeId- integerreferenceId- stringnote- stringfeeTiming- string (AT_FUNDING | ADD_ON)scheduledDate- stringclearedDate- stringwireCost- decimal stringwireCostBearer- string (MERCHANT | HOUSE)
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 | REFUND | OVERPAYMENT_TRANSFER)amount- decimal stringstatus- string (PENDING | SUBMITTED | PAID | BOUNCED | CANCELLED)method- string (ACH | WIRE | CHECK | CASH | OTHER | OFFSET)accountId- integersyndicatorId- integerbounceCodeId- integerreferenceId- stringnote- stringfeeTiming- string (AT_FUNDING | ADD_ON)clearedDate- 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)settlementBasis- string (required) (PER_DEAL | PORTFOLIO_PNL)settlementSplitPercent- decimal stringsettlementStartsOn- stringparticipatesInBankFee- 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- booleansettlementBasis- string (PER_DEAL | PORTFOLIO_PNL)settlementSplitPercent- decimal stringsettlementStartsOn- stringmaxPerDeal- 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- booleansettlementBasis- string (PER_DEAL | PORTFOLIO_PNL)settlementSplitPercent- decimal stringsettlementStartsOn- stringmaxPerDeal- 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- stringhomeAddressLine1- stringhomeAddressLine2- stringhomeCity- stringhomeState- stringhomePostalCode- stringownershipPct- decimal stringisGuarantor- boolean (required)isPrimary- boolean (required)personId- integercreatedAt- 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)eventId- stringpayload- 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- booleanpricingLabelId- integercreatedAt- 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.