TrueSight Matching Guide

Run MCA funder matching from parsed data or CRM-supplied financials.

TrueSight matches an MCA application against funder criteria.

You can run TrueSight in two ways:

  • From a completed InFlow parsing_id.
  • Directly from application and financial data already stored in your CRM.

Match From Parsing

Use this when InFlow already parsed the PDFs.

curl https://api.b2systems.io/v1/truesight/matching \
  -H "Authorization: Bearer $B2_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: crm-deal-10042-match-v1" \
  -d '{
    "external_id": "crm-deal-10042",
    "parsing_id": "parsing_01JZ8QH4VK9GR3QKZ6M1N4P7M2",
    "create_deal": false
  }'

The parsing_id must be completed before it can be used for matching.

Match From CRM Data

Use this when your system already has the merchant application and financial metrics.

curl https://api.b2systems.io/v1/truesight/matching \
  -H "Authorization: Bearer $B2_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: crm-deal-10043-match-v1" \
  -d '{
    "external_id": "crm-deal-10043",
    "create_deal": true,
    "application": {
      "trade_name": "Riverside Auto Repair",
      "legal_name": "Riverside Auto Repair Inc",
      "type_of_entity": "corporation",
      "industry": "Auto Repair",
      "state_region": "FL",
      "country": "United States",
      "requested_amount": 75000,
      "applicants": [
        {
          "first_name": "Jordan",
          "last_name": "Miller",
          "role": "Owner",
          "ownership": 100,
          "credit_score": 690
        }
      ]
    },
    "financials": {
      "avg_monthly_revenue": 118000,
      "avg_monthly_true_revenue": 109000,
      "avg_negative_days_count": 1,
      "avg_nsf_count": 0,
      "total_positions_count": 1,
      "remit_percentage": 12.5,
      "months": [
        {
          "date": "2026-03",
          "total_credits": 121000,
          "total_true_credits": 112500,
          "negative_days_count": 1,
          "nsf_count": 0
        }
      ],
      "positions": [
        {
          "name": "Example Advance",
          "active": true,
          "payment_frequency": "daily",
          "remit_percentage": 12.5
        }
      ]
    }
  }'

Requested terms such as requested_amount, requested_payment, number_of_payments, and payment_frequency are stored on a created deal when present. TrueSight matching does not require them.

Safe Retries

For write requests, you can send Idempotency-Key to safely retry the same request if your system times out or loses the response.

Use one unique key per logical matching run. Retrying the same request with the same key returns the original queued matching job. Reusing the same key with different matching data returns a conflict.

Selected Funders

By default, TrueSight matches against the funders available to your organization.

For broker organizations, that means the organization's selected funders.

For funder organizations, matching is scoped to the funder profile tied to the organization.

If funder_ids is provided, it narrows the matching run to those funders when they are available to the organization.

Check Status

curl https://api.b2systems.io/v1/truesight/matching/matching_01JZ8QNGEXWZB8S4KD9QDRPG9Y \
  -H "Authorization: Bearer $B2_API_KEY"

Match Results

matched_funders contains the public TrueSight result for each returned funder.

Important fields include:

  • match_score: overall score.
  • matched: whether the application matched.
  • hard_decline: whether a hard-decline rule prevented a match.
  • matching_breakdown: criteria-level values and requirements.
  • contact: public funder contact information, when available.

Internal funder criteria and private operational details are not included.

When create_deal is true, B2 Systems also stores the completed match results on the created deal. Use GET /v1/deals/{deal_id} when your integration needs the latest active matching results tied to the dashboard deal after later rematches or reprocessing.


Did this page help you?