Creating a Funding
POST /v0/fundings with a required Idempotency-Key header (5–255 characters). Prerequisites, enforced at creation:
- The referenced Balance must be
active, and if it has anexpected_maturity_date, that date must not be in the past. currency_codemust match the Balance’s currency.- For
non_revolvingBalances: the sum of allprincipal.*fields on this request plus theprincipal.*sums of every prior Funding inpostedorprocessingstatus against the same Balance must not exceed the Balance’smax_funding_amount— in-flight draws count against the ceiling.
principal (object)
The total of these fields is the loan principal. Upon funding, this amount is considered disbursed, and Lead begins applying imputed interest (Sales Settlement Amount).
other_fees (object)
Worked example: a $1,000 BNPL purchase
A customer finances a 100 origination fee, half the purchase disburses to the merchant now and half is withheld pending delivery, and the borrower pays a separate $2 processing fee:other_fees.
Lifecycle
The
rejection object is always present on the Funding (empty strings when not rejected), with reason (currently the single enum internal_error — the spec notes Lead may add values as non-breaking changes, so handle unknown reasons gracefully) and details (reserved for future use). Status changes are delivered by webhook (funding.posted [VERIFY event name against the webhooks reference]); a Balance cannot be reported into a terminal status while a Funding against it is still processing.
Sandbox
In sandbox, Fundings stayprocessing until you advance them: call Simulate Advance Funding to transition to posted and exercise your downstream flows end to end (Originate Your First Loan).

