Kayanda Capital API · v3.2.0

Developer documentation

One API for the Kayanda Liquidity Optimization Engine™ and the Payment Certainty Score™. Base URL https://www.kayandallc.com. Machine-readable spec: /api/v1/openapi.json. Live uptime: /status.html.

1. Get a key

Claim a free developer key (100 queries per month) from the API section, or programmatically:

curl -X POST https://www.kayandallc.com/api/v1/keys/developer \
  -H "Content-Type: application/json" \
  -d '{"email":"you@company.com"}'

The key is emailed to you and stored only as a SHA-256 hash. Growth and Scale keys are issued automatically after checkout; see /api/v1/plans. Send the key on every call as X-Api-Key (or Authorization: Bearer).

2. Route a receivable

POST /api/v1/route runs all five Engine layers and returns ranked routes, a recommendation, a backup, reason codes, and a decision_id.

curl -X POST https://www.kayandallc.com/api/v1/route \
  -H "X-Api-Key: kc_live_…" -H "Content-Type: application/json" \
  -d '{
    "receivable": { "amount": 500000, "payer": "fed", "mechanism": "assign", "documentation": 90 },
    "need": { "amount": 200000, "deadline_days": 4, "min_approval": 0.6 },
    "routes": [
      { "id": "A", "time_to_cash_days": 1, "total_fee_usd": 9000, "max_advance_pct": 80, "approval_prior_pct": 80, "recourse": false },
      { "id": "B", "time_to_cash_days": 3, "total_fee_usd": 5000, "max_advance_pct": 85, "approval_prior_pct": 75, "recourse": false },
      { "id": "C", "time_to_cash_days": 8, "total_fee_usd": 3000, "max_advance_pct": 90, "approval_prior_pct": 85, "recourse": false }
    ]
  }'

Response (abridged):

{
  "decision_id": "LD-…",
  "engine": { "name": "Kayanda Liquidity Optimization Engine", "version": "1.0-calibration" },
  "recommendation": { "route_id": "B", "name": "B" },
  "backup": { "route_id": "A", "name": "A" },
  "reason_codes": [
    { "code": "R1", "text": "B is the lowest estimated total cost ($5,000) among 2 route(s) that meet the 4-day deadline…" },
    { "code": "R2", "text": "Estimated saving versus the costliest eligible route: $4,000." },
    { "code": "R4", "text": "C is cheaper but ineligible: misses_deadline." }
  ],
  "routes": [ { "rank": 1, "route_id": "B", "eligible": true,
      "time_to_cash": { "p50_days": 3, "p80_days": 4.85, "score": 73 },
      "true_cost": { "total_usd": 5000, "effective_apr_pct": 49.32, "score": 31 },
      "approval_probability": 0.95 }, … ]
}

Omit routes and the Engine uses Kayanda's five generic route classes (fast online factor, government contract financing specialist, invoice financing platform, bank asset-based line, platform working-capital advance). Route classes are illustrative priors, not any funder's terms.

Request fields

FieldMeaning
receivable.amountInvoice face value, USD. Required.
receivable.payerfed, prime, state, ent, smb.
receivable.mechanismassign (Assignment of Claims), net, pwp (pay-when-paid), miles (milestone or disputed).
receivable.documentation0–100 completeness.
receivable.expected_pay_daysOptional override of days until the payer pays; otherwise the midpoint of the Payment Certainty payment window.
need.amount / need.deadline_daysCash required and the day it is needed by. Required.
need.min_approvalApproval floor, 0–1. Default 0.6.
routes[]Optional offers: time_to_cash_days, total_fee_usd or fee_pct_per_30_days + flat_fee_pct, reserve_pct, recourse, max_advance_pct, approval_prior_pct, accepts.

3. Report the outcome

Close the loop so the Outcome Graph™ can compare what was estimated with what happened.

curl -X POST https://www.kayandallc.com/api/v1/route/outcome \
  -H "X-Api-Key: kc_live_…" -H "Content-Type: application/json" \
  -d '{ "decision_id": "LD-…", "route_id": "B", "status": "funded",
        "actual_days_to_cash": 3, "actual_total_cost_usd": 5100 }'

The response returns the days and cost error against the original estimate. Aggregate, anonymised calibration counts are public at /api/v1/outcome-graph.

4. All endpoints

EndpointAuthPurpose
POST /api/v1/routeKeyLiquidity Optimization Engine™ ranking and recommendation
POST /api/v1/route/outcomeKeyRealised result for a decision
POST /api/v1/scoreKeyPayment Certainty Score™ (0–1000)
POST /api/v1/moneyfileKeyProgrammatic Money File™ intake
GET /api/v1/moneyfile/{id}KeyFile status (owner only)
POST /api/v1/outcomeKeyFunded, declined, or paid outcome for a Money File
GET /api/v1/usageKeyQuota used this month
GET /api/v1/outcome-graphPublicAggregate calibration counts
GET /api/v1/payer-graphPublicAggregate Payer Graph™ counts
GET /api/v1/plansPublicPlans and checkout links
GET /api/healthPublicSelf-test; every call is logged
GET /api/statusPublic90-day uptime log

5. Limits and errors

Developer keys: 100 queries per month, 30 requests per minute. Paid plans: plan quota, 600 requests per minute. Each response carries x-quota-used and x-quota-limit.

StatusMeaning
400Invalid JSON or missing required fields (not metered)
401Missing, invalid, or inactive key
404Unknown decision or resource
429Monthly quota or rate limit reached
5xxServer error; counted in the public uptime log

6. Versioning

Paths are versioned under /api/v1. Every Engine response states engine.version; model changes increment it and are announced by email to key holders before release.

All outputs are estimates from models in calibration and have not been validated against a funded outcome set. Route classes are generic and illustrative, not quotes or terms of any named funder. Effective APR is a simplified comparison figure, not a regulatory disclosure. Kayanda LLC is not a bank, lender, or credit bureau; funding partners independently verify, underwrite, price, disclose, and decide every transaction. The Payment Certainty Score evaluates commercial receivables and institutional payers only and is not a consumer report under the FCRA. Kayanda may receive compensation from funding partners; compensation is not a routing input. Use of the API is subject to the Terms of Service.