Skip to main content

Servicing Data

POST /api/servicing-tape sends servicing updates for loans that are already onboarded.

Use the agreed servicing schema from Servicing Data Requirements—the column names, layout, and schedule you and Figure define during System Setup.

Sample CSV​

The CSV follows that schema: a header row and one row per loan. This sample shows two loans and a subset of columns; a production file includes every field from the agreed layout.

as_of_date,loan_id,scheduled_payment_amount,next_payment_due_date,last_payment_date,last_payment_amount,principal_collected,interest_collected,fees_collected,total_collections,cumulative_collections,missed_payment_count
2026-10-01,loan-1001,2450.00,2026-11-01,2026-10-01,2450.00,1800.00,600.00,50.00,2450.00,14700.00,0
2026-10-01,loan-1002,1875.50,2026-11-01,2026-09-15,1875.50,1200.00,625.50,50.00,1875.50,9377.50,1

Upload​

  • Multipart form field named file. The file name must end in .csv. Uploads are limited to 100 MB.
  • Query parameters servicerId (the servicer's Figure Participant ID) and loanType (same enum as onboard).
  • Header apikey.
  • The call returns 202 with an id. GET /api/servicing-tape/{id} reports ACCEPTED, PROCESSING, COMPLETED, or FAILED.

loanType is one of AUTO_LOAN, CONSUMER_UNSECURED, DSCR, SMB, or RTL.

POST /api/servicing-tape?servicerId={figure-participant-id}&loanType=RTL
apikey: {api-key}
Content-Type: multipart/form-data

file: servicing-tape.csv

A successful upload returns 202 Accepted with a request id and status of ACCEPTED:

{
"id": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"requestorId": "22222222-2222-2222-2222-222222222222",
"servicerId": "11111111-1111-1111-1111-111111111111",
"loanType": "RTL",
"fileName": "servicing-tape.csv",
"uploadedAt": "2026-10-01T12:00:00Z",
"documentId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
"contentType": "text/csv",
"status": "ACCEPTED"
}

Poll with the returned id until status is COMPLETED or FAILED:

GET /api/servicing-tape/cccccccc-cccc-cccc-cccc-cccccccccccc

When processing finishes successfully:

{
"id": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"requestorId": "22222222-2222-2222-2222-222222222222",
"servicerId": "11111111-1111-1111-1111-111111111111",
"loanType": "RTL",
"fileName": "servicing-tape.csv",
"uploadedAt": "2026-10-01T12:00:00Z",
"documentId": "ffffffff-ffff-ffff-ffff-ffffffffffff",
"contentType": "text/csv",
"status": "COMPLETED"
}