Start here
- Obtain an API key for each company you will send records to, and confirm which outreach modes are enabled. The key determines the company; a request cannot select another company by changing a body field.
- Choose the appropriate task type.
New leads use
PendingLoanNewLead. Returning borrowers usePendingLoanReturning; addoneOff: truefor a single call. - For lists, use Enroll a List (Batch) and
follow the returned job ID. For individual records, enroll the application
with
scheduleMode: "enroll", the customer and application references, and a stableIdempotency-Key. No separate customer-create or scheduled-calls request is required. - For individual enrollment, save the returned receipt. Follow its
scheduledCallIdusing Retrieve a Scheduled Call for the current status, and retrieve call history for completed calls. HTTP200means the schedule is saved, not that a call has connected.
Which endpoint should I use?
The three enrollment rows are options on one endpoint, not three separate
endpoints. Sync Customer Schedules
is the shared API reference and playground. Its replacement mode is for existing
integrations that intentionally rebuild pending schedules; it is not the
origination enrollment workflow. Always send
scheduleMode: "enroll" here.
taskType is not the scheduleType used by the separate legacy
Create Scheduled Calls operation.
Sending an existing list
- Keep customer and application references consistent with prior uploads so the API can recognize an existing enrollment.
- Send the list in one batch enrollment request using the key for its company. Finosu divides and processes it internally.
- Keep a stable key for the list and a stable key per enrollment row. Retry an uncertain submission with the same list and header key.
- Save the job ID, monitor progress, and reconcile every row result. A rejected row does not prevent valid rows from enrolling.
- Batch submission permits 10 requests/minute/company; individual enrollment
permits 60. Honor
Retry-Afterand the documented list-size limits.
Funded applications and stopping outreach
Enrollment is an intake operation. It does not mark an application as funded, cancel a cadence, restart a finished cadence, or write call notes and flags back to your LMS. Use Close Origination,POST /originations/{id}/close, with the application’s external loanId and a
required reason: FUNDED, WITHDRAWN, or REJECTED. It records the final
outcome and cancels the application’s active/paused cadences and pending work.
Retrieve the accepted catalog with
List Origination Close Reasons.
Retry an uncertain close with the same reference and reason. Do not send a new
enrollment as a cancellation signal, and validate this workflow before replacing
an existing funded/stop upload.
Already-funded loans that are active in collections are not eligible for this
endpoint and return 409. Use the
collections lifecycle API
for those loans. A FUNDED close reports the outcome of an enrolled origination
application; it does not close an active collections loan.