MCA Manager Public API
v1.0.0 · openapi.json
REST API for MCA Manager. Requests are authenticated with a per-tenant API key (Authorization: Bearer mca_live_…) and scoped by the key's permission flags. The base URL is your company host, e.g. https://acme.mcamgr.com. Outbound webhooks (configured under Settings → Webhooks) POST signed JSON (HMAC-SHA256, headers X-Timestamp / X-Signature) for entity created/updated/deleted/status events; verify the signature over `timestamp + "." + body`.
Paste an API key (Settings → API keys) and run live GET requests against your instance. Requests run from this page, so open it on your company subdomain (e.g. https://your-co.mcamgr.com/help/api-reference). Write operations are documented below but can’t be sent from here.
Authentication
Send your key as a bearer token: Authorization: Bearer mca_live_…. Each key is scoped by permission flags.
Leads
/api/v1/leadsList leads
Requires a key with `adminApiAbleToAccessLeadApi`.
Query parameters
status- string
Responses
200- List of leads401- Missing/invalid API key
GET /api/v1/leads/api/v1/leadsnot runnable hereCreate a lead
Top-of-funnel intake. Requires a key with `adminApiAbleToAccessLeadApi`.
Request body: NewLead
Responses
201- Created400- Validation error401- Missing/invalid API key403- Key lacks permission
/api/v1/leads/{id}Get a lead
Requires `adminApiAbleToAccessLeadApi`.
Responses
200- Lead404- Not found
GET /api/v1/leads//api/v1/leads/{id}not runnable hereUpdate a lead
Requires `adminApiAbleToAccessLeadApi`.
Responses
200- Updated404- Not found
/api/v1/leads/{id}not runnable hereDelete a lead
Requires `adminApiAbleToAccessLeadApi`.
Responses
200- Deleted404- Not found
Merchants
/api/v1/merchantsList merchants
Requires `adminApiAbleToAccessApp`. Optional `?q=` filters legal/DBA name.
Responses
200- Merchants
GET /api/v1/merchants/api/v1/merchantsnot runnable hereCreate a merchant
Requires `adminApiAbleToAccessApp`. Body: { legalName, dbaName?, federalId?, email?, phone?, … }.
Responses
201- Created400- Validation error
/api/v1/merchants/{id}Get a merchant
Requires `adminApiAbleToAccessApp`. Includes contacts.
Responses
200- Merchant404- Not found
GET /api/v1/merchants//api/v1/merchants/{id}not runnable hereUpdate a merchant
Requires `adminApiAbleToAccessApp`.
Responses
200- Updated404- Not found
/api/v1/merchants/{id}not runnable hereDelete a merchant
Requires `adminApiAbleToAccessApp`. Blocked if the merchant has deals.
Responses
200- Deleted409- Has dependent records
Deals
/api/v1/dealsList deals
Requires `adminApiAbleToAccessApp`. Optional `?state=`.
Responses
200- Deals
GET /api/v1/deals/api/v1/dealsnot runnable hereCreate a deal
Requires `adminApiAbleToAccessApp`. Body: { merchantId, productType?, fundedAmount?, factorRate?, paybackAmount?, termDays?, … }.
Responses
201- Created400- Validation error
/api/v1/deals/{id}Get a deal
Requires `adminApiAbleToAccessApp`.
Responses
200- Deal404- Not found
GET /api/v1/deals//api/v1/deals/{id}not runnable hereUpdate a deal
Requires `adminApiAbleToAccessApp`.
Responses
200- Updated404- Not found
/api/v1/deals/{id}not runnable hereDelete a deal
Requires `adminApiAbleToAccessApp`. Blocked if referenced by submissions/payments.
Responses
200- Deleted409- Has dependent records
Funders
/api/v1/fundersList funders
Requires `adminApiAbleToAccessApp`.
Responses
200- Funders
GET /api/v1/funders/api/v1/fundersnot runnable hereCreate a funder
Requires `adminApiAbleToAccessApp`.
Responses
201- Created400- Validation error
/api/v1/funders/{id}Get a funder
Requires `adminApiAbleToAccessApp`.
Responses
200- Funder404- Not found
GET /api/v1/funders//api/v1/funders/{id}not runnable hereUpdate a funder
Requires `adminApiAbleToAccessApp`.
Responses
200- Updated404- Not found
/api/v1/funders/{id}not runnable hereDelete a funder
Requires `adminApiAbleToAccessApp`. Blocked if referenced by submissions.
Responses
200- Deleted409- Has dependent records
Isos
/api/v1/isosList ISOs
Requires `adminApiAbleToAccessApp`.
Responses
200- ISOs
GET /api/v1/isos/api/v1/isos/{id}Get an ISO
Requires `adminApiAbleToAccessApp`.
Responses
200- ISO404- Not found
GET /api/v1/isos/Syndicators
/api/v1/syndicatorsList syndicators
Requires `adminApiAbleToAccessApp`.
Responses
200- Syndicators
GET /api/v1/syndicators/api/v1/syndicatorsnot runnable hereCreate a syndicator
Requires `adminApiAbleToAccessApp`. Body: { name, email?, phone?, contactName?, portfolioId?, … }.
Responses
201- Created400- Validation error
/api/v1/syndicators/{id}Get a syndicator
Requires `adminApiAbleToAccessApp`.
Responses
200- Syndicator404- Not found
GET /api/v1/syndicators//api/v1/syndicators/{id}not runnable hereUpdate a syndicator
Requires `adminApiAbleToAccessApp`.
Responses
200- Updated404- Not found
/api/v1/syndicators/{id}not runnable hereDelete a syndicator
Requires `adminApiAbleToAccessApp`. Blocked if referenced by other records.
Responses
200- Deleted409- Has dependent records
Payments
/api/v1/paymentsList payments
Requires `adminApiAbleToAccessApp`. Optional `?dealId=` and `?status=`.
Responses
200- Payments
GET /api/v1/payments/api/v1/paymentsnot runnable hereRecord a payment
Requires `adminApiAbleToAccessApp`. Body: { dealId, amount, type?, status?, … }.
Responses
201- Created400- Validation error
/api/v1/payments/{id}Get a payment
Requires `adminApiAbleToAccessApp`.
Responses
200- Payment404- Not found
GET /api/v1/payments//api/v1/payments/{id}not runnable hereUpdate a payment
Requires `adminApiAbleToAccessApp`.
Responses
200- Updated404- Not found
Submissions
/api/v1/submissionsList submissions
Funder submissions for deals. Requires `adminApiAbleToAccessApp`. Optional `?dealId=` and `?funderId=`. Includes funder, status, and deal.
Responses
200- Submissions
GET /api/v1/submissionsDecisions
/api/v1/decisionsList underwriting decisions
Decision-engine results (approve / decline / refer with score and category). Requires `adminApiAbleToAccessApp`. Optional `?dealId=`.
Responses
200- Decision results
GET /api/v1/decisionsRenewals
/api/v1/renewalsList renewal opportunities
Paid-down deals eligible to renew. Requires `adminApiAbleToAccessApp`. Optional `?status=` (ELIGIBLE | CONTACTED | RENEWED | DISMISSED). Includes the prior deal.
Responses
200- Renewal opportunities
GET /api/v1/renewalsCredit Facilities
/api/v1/credit-facilitiesList lines of credit
Revolving credit facilities with their draws. Requires `adminApiAbleToAccessApp`. Optional `?status=` (ACTIVE | SUSPENDED | CLOSED).
Responses
200- Credit facilities
GET /api/v1/credit-facilitiesDisclosures
/api/v1/disclosuresList disclosures
Commercial-financing disclosures. Requires `adminApiAbleToAccessApp`. Optional `?dealId=`, `?state=`, `?status=` (DRAFT | DELIVERED | SIGNED | SUPERSEDED).
Responses
200- Disclosures
GET /api/v1/disclosuresUcc Filings
/api/v1/ucc-filingsList UCC filings
UCC-1 lien filings. Requires `adminApiAbleToAccessApp`. Optional `?dealId=`, `?status=` (DRAFT | SUBMITTED | ACCEPTED | REJECTED | LAPSED | TERMINATED).
Responses
200- UCC filings
GET /api/v1/ucc-filingsPayouts
/api/v1/payoutsList payout batches
Commission and participation payout batches with line items. Requires `adminApiAbleToAccessApp`. Optional `?kind=` (COMMISSION | PARTICIPATION), `?status=` (DRAFT | APPROVED | PAID | PARTIAL).
Responses
200- Payout batches
GET /api/v1/payoutsApplications
/api/v1/applicationsList application submissions
Online application-form submissions. Requires `adminApiAbleToAccessApp`. Optional `?status=` (RECEIVED | REVIEWED | CONVERTED | SPAM), `?formId=`. Includes the form.
Responses
200- Application submissions
GET /api/v1/applicationsCommunications
/api/v1/communicationsList communications
Unified call/SMS contact-center log. Requires `adminApiAbleToAccessApp`. Optional `?merchantId=`, `?dealId=`, `?channel=` (CALL | SMS).
Responses
200- Communications
GET /api/v1/communicationsSchemas
id- integerbusinessName- stringcontactName- stringemail- stringphone- stringstatus- string (NEW | CONTACTED | QUALIFIED | CONVERTED | DEAD)source- stringcreatedAt- string
businessName- stringcontactName- stringemail- stringphone- stringsource- string
error- string
Can’t find what you need? Return to the app or contact your administrator.