Agents can’t lend.
They can call it.

One key to the finance layer of the agent stack: Mandates, x402 settlement and per-call data at posted prices.

POST/v1/amortizationkeyless
Requestapplication/json
{ "principal": , "annual_rate_pct": , "term_months": ,}
Examples
curl
curl -X POST https://apis.finance/v1/amortization \
  -H "content-type: application/json" \
  -d '{"principal":250000,"annual_rate_pct":6.5,"term_months":12}'
Response200 · example response
{  "object": "amortization.schedule",  "sku": "Amortization math",  "resource": "https://apis.finance/v1/amortization",  "input": {    "principal": "250000.00",    "annual_rate_pct": 6.5,    "term_months": 12,    "compounding": "monthly",    "day_count": "level periodic, 1/12 of the nominal annual rate per period"  },  "payment": "21574.10",  "periods": 12,  "total_interest": "8889.26",  "total_paid": "258889.26",  "schedule": [    {      "period": 1,      "payment": "21574.10",      "interest": "1354.17",      "principal": "20219.93",      "balance": "229780.07"    },    {      "period": 2,      "payment": "21574.10",      "interest": "1244.64",      "principal": "20329.46",      "balance": "209450.61"    },    {      "period": 3,      "payment": "21574.10",      "interest": "1134.52",      "principal": "20439.58",      "balance": "189011.03"    },    {      "period": 4,      "payment": "21574.10",      "interest": "1023.81",      "principal": "20550.29",      "balance": "168460.74"    },    {      "period": 5,      "payment": "21574.10",      "interest": "912.50",      "principal": "20661.60",      "balance": "147799.14"    },    {      "period": 6,      "payment": "21574.10",      "interest": "800.58",      "principal": "20773.52",      "balance": "127025.62"    },    {      "period": 7,      "payment": "21574.10",      "interest": "688.06",      "principal": "20886.04",      "balance": "106139.58"    },    {      "period": 8,      "payment": "21574.10",      "interest": "574.92",      "principal": "20999.18",      "balance": "85140.40"    },    {      "period": 9,      "payment": "21574.10",      "interest": "461.18",      "principal": "21112.92",      "balance": "64027.48"    },    {      "period": 10,      "payment": "21574.10",      "interest": "346.82",      "principal": "21227.28",      "balance": "42800.20"    },    {      "period": 11,      "payment": "21574.10",      "interest": "231.83",      "principal": "21342.27",      "balance": "21457.93"    },    {      "period": 12,      "payment": "21574.16",      "interest": "116.23",      "principal": "21457.93",      "balance": "0.00"    }  ],  "fee": {    "line": "Telemetry Fee",    "amount": "0.00",    "currency": "USD"  },  "charge": null,  "meter": "No record, no charge. This schedule is the record and its posted price is $0 · keyless.",  "deterministic": true,  "not_advice": "Arithmetic on numbers you supplied. This is not a credit decision, not an offer of credit, and not a term quoted to a Borrower. apis.finance is not a lender and does not decide; the Lender decides.",  "rate_card": "https://apis.finance/rate-card.json"}

One route answers today

Pure math from the numbers you send, with nothing retained.

Fig 0.1

A level schedule

Payments stay level while the balance steps down to zero.

Fig 0.2

A typed schema

GET the path for every field, typed, with its range.

Fig 0.3

Every field named

A bad body gets a 422 naming each field to fix.

Priced per call

Flat prices, fixed when posted, on one card for every door.

SKUPrice
Business credit / KYBEntity verification, registrations, lien and judgment flags, cash-flow signals on a Borrower$3.00 per file pull
UCC lien searchDebtor search across state filing offices: lien positions, secured parties, filing images. State office fees pass through at cost$4.00 per search
Payoff quotesAttested Payoff figure with per-diem and good-through date$1.50 per quote
Amortization mathSchedules, Curtailment recalculation, per-diem interest, Payoff projection$0 keyless
License-permission lookupWhich acts which party may lawfully perform, per state, typed$0.10 per lookup
Floorplan collateral telemetryThe attested Collateral file per floored VIN: title-lien state, odometer, location attestation, sale signals, Curtailment schedule, Payoff figure$45 per floored VIN per audit period

No record, no charge. Never a percentage of the credit.

More in the catalog

  • Prequal simulation
  • KYA agent scores
  • Consumer credit signals
  • Cash-flow attributes
  • The lien stack
  • Verification attributes
  • KYC and AML screening
  • Bank account and routing validation
  • Financial statement normalization
  • Adverse-action notice assembly
  • Compliance preflight
  • Payout disbursement rail
  • Transaction escrow
  • x402 agent payment clearing
  • Ledger core
  • Lending core
  • Agent billing core
  • eNote and eVault control

Agents can’t hold money.
They can hold a Mandate.

What the agent can draw is never stored; it is derived on read.

Mandate · floorplan lineUSD
available
500,000

= ceiling 500,000 − encumbered 0 − settled 0

  1. Advance drawn120,000encumbered
  2. Advance settled120,000stl_8f2a
  3. Curtailment30,000stl_8f31
  4. Payoff90,000stl_8f40
parties
Lender, Borrower and Obligor‑Guarantor, on every artifact.
ceiling
Set by the Lender, never by the agent.
encumbered
Held against the ceiling, not yet settled.
settled
Settled and not yet repaid.
settlement_ref
On every settlement, so an auditor can walk from ledger to rail.

The law reserves four acts

A call that reaches one gets a typed BLOCKED: the statute, the party and the route that clears it.

Reserved to the Lender4 acts
  1. Extending creditEXTEND_CREDIT
  2. Taking the ApplicationTAKE_APPLICATION
  3. Negotiating termsNEGOTIATE_TERMS
  4. DecidingDECIDE
What comes back
act
The reserved act the call reached.
reason
Why the act is reserved, for the record.
statutes
The law that reserves it.
reserved_to_party
Who may lawfully act.
cure.route
The route that clears the call.

A silent 200 would make you the lender; you get the refusal instead.

Answering today on every reserved route at apis.loans, with nothing metered.

POSTapis.loans/v1/facilitiestrimmed422 · BLOCKED
{  "object": "facility",  "status": "BLOCKED",  "route": "POST /v1/facilities",  "blocked": {    "act": "EXTEND_CREDIT",    "reason": "RESERVED_ACT",    "tier": "LENDER_RESERVED",    "permanent": true,    "statutes": [      "15 U.S.C. 1691 et seq. (ECOA / Regulation B)",      "12 CFR 1002.2(f) (the Application is Regulation B's own trigger)",      "applicable state lending license law"    ],    "reserved_to_party": "Lender",    "cure": {      "route": "LENDER_MARKETPLACE",      "endpoint": "POST /v1/intents/{id}/route",      "needs_human": true,      "human_route": "marketplace"    }  },  "charge": null,  "note": "Nothing was performed. Nothing was metered."}

What it never does

Written to be forwarded to counsel.

Never holds paper.No loan on this balance sheet.
Never holds funds in the credit sense.The partner Lender is merchant of record for every finance charge.
Never decides.The Lender decides; no response here states an approval.
Never lets a fee depend on a Decision.No platform fee varies with its direction.
Never lets a statutory clock expire in silence.Reg B and TRID clocks run as a timer ladder with a named party on every rung.
Never blurs the parties.Lender, Borrower, Obligor-Guarantor, named on every artifact.
Never enters renounced territory.No merchant cash advance with confession of judgment, no title or payday lending, no debt settlement, no debt buying.

From KYB to the application

One business on one key; each door’s record carries into the next.

credit.business_fileapis.credit
Requestone key, every call
Response

Request a key

Tell us what you’re building and which rows you need first.