The User Credit Balances API is currently in preview with a planned beta release in December 2026. Preview APIs are not yet available in sandbox or production and can change before beta. Use these pages to plan an integration, not to build one. Once released in beta, it will be available to all partners in sandbox, and in production for select programs. Beta APIs may change without a version increment, and changes will be announced in advance. See Versioning and backwards compatibility.
Where it fits in onboarding
Create a user credit balance after its user account exists and before any money moves.1
Entity API
Create an entity for each account holder, authorized signer, and authorized user.
2
Applications API
For underwritten credit products only. Report the final underwriting decision.
3
User Accounts API
Create the user account with the
credit_with_underwriting or credit_without_underwriting feature.4
User Credit Balances API
Create the user credit balance under the user account.
5
Funding API
Request a funding against the user credit balance to disburse to your customer (if your program supports lending; credit cards do not require use of this API).
6
User Credit Transactions API
Report every disbursement (if not through Funding API), accrual, fee, payment, and adjustment on the user credit balance.
- Does not exist.
- Is not
active. - Has neither the
credit_with_underwritingnor thecredit_without_underwritingfeature.
Two structures
Every user credit balance has adetails.structure that you set on create and cannot change:
non_revolving. A term loan or buy now, pay later loan. The principal is fixed, and repayments do not restore available credit. Open one user credit balance per loan.revolving. A line of credit or credit card. The user credit balance stays open across many draws and repayments, and repayments restore available credit.
How the position updates
You never set amounts on a user credit balance directly. You post user credit transactions, and Lead applies each one to the user credit balance’samount, amount_breakdown, the rewards subobject, the dispute subobject, and the charge_off subobject.
Lead applies user credit transactions asynchronously. A GET request right after you post a user credit transaction can return the position from before that user credit transaction.
The past_due subobject is the exception. No user credit transaction moves it, so you report it with PATCH.
How user credit balances relate to the rest of the model
- User accounts. Every user credit balance references a
user_account_id. Create the user account first. - User credit transactions. Every user credit transaction references the
user_credit_balance_idit affects. - Fundings. A funding draws against a user credit balance. On a
non_revolvinguser credit balance, the total principal across fundings cannot exceeddetails.max_funding_amount. - Receivables. Lead tracks the credit it holds on a user credit balance as a receivable. Receivable sales move that receivable to a buyer.
- User deposit balances (coming soon). A user account can also hold user deposit balances. They are separate objects with their own lifecycle.
What you can do
POST /v2/user_accounts/{user_account_id}/user_credit_balances: Create a user credit balance.GET /v2/user_credit_balances/{id}: Retrieve a user credit balance.GET /v2/user_credit_balances: List your user credit balances. See Listing user credit balances.PATCH /v2/user_credit_balances/{id}: Update the terms and the past-due position you are allowed to change.POST /v2/user_credit_balances/{id}/activate: Move aninactiveuser credit balance toactive.POST /v2/user_credit_balances/{id}/deactivate: Move anactiveuser credit balance toinactive.POST /v2/user_credit_balances/{id}/close: Close the user credit balance.POST /v2/user_credit_balances/{id}/stop_reporting: Stop reporting on the user credit balance.
Listing user credit balances
GET /v2/user_credit_balances returns your user credit balances with cursor pagination. Filter with these query parameters:
Authentication
user_credit_balance/read_writefor create, update, and the status endpoints. Also grants read access.user_credit_balance/readfor theGETendpoints only. Use it when your integration only needs to read user credit balances.
What you cannot do
- Change amounts with
PATCH. Post a user credit transaction instead.past_dueis the only position you set withPATCH. - Change the structure or the core terms.
name,currency_code,details.structure,details.max_funding_amount,details.expected_finance_charge_amount, andinterest.effective_aprare set at creation. - Change status with
PATCH. Use the activate, deactivate, close, and stop_reporting endpoints. See User Credit Balance Statuses. - Mix old and new objects. User credit balances are designed to be adopted together with user accounts and user credit transactions. Your Lead team will coordinate your move.
- Subscribe to webhooks. All status changes are yours, so Lead emits no events for them.

