---
title: Asset Onboarding
description: Onboard third-party loans to Provenance with origination data, then keep them current with servicing tapes.
---

Figure provides the Asset Onboarding Gateway so partners can onboard third-party assets to [Provenance](https://provenance.io/) and transact across [Figure Connect](https://www.figure.com/partner/figure-connect/), [Democratized Prime](https://www.figuremarkets.com/markets/democratized-prime/earn/), and [DART](https://www.figure.com/dart/).

Partners can use the following endpoints to onboard their assets and provide servicing updates:

1. **Origination** {% endpoint method="POST" path="/api/onboard" /%} Loan tape, one file containing the underwriting guidelines for the request, and the loan documents (closing package and supporting files) for each loan.
2. **Servicing** {% endpoint method="POST" path="/api/servicing-tape" /%} A CSV of servicing updates for loans that are already onboarded.

[System Setup](/asset-onboarding/setup) is the checklist for Figure and partner requirements: platform access, Origination Data Requirements, and Servicing Data Requirements. [Origination Data](/asset-onboarding/origination) and [Servicing Data](/asset-onboarding/servicing) describe the API payloads and files for each integration.

Contact Figure at [capitalmarkets@figure.com](mailto:capitalmarkets@figure.com?subject=Asset%20Onboarding) to get started.

## Origination

Partners can send an onboard request to `POST /api/onboard` to onboard one or more loans using source loan origination data. Each loan is tokenized as an NFT on Provenance and available in the partner's account in Portfolio Manager.

{% sequence title="Onboard loans" %}
{% actor id="partner" label="Your system" kind="partner" /%}
{% actor id="gateway" label="Onboarding Gateway" kind="figure" /%}
{% actor id="storage" label="File storage" kind="figure" /%}
{% actor id="provenance" label="Provenance" kind="external" /%}
{% message from="partner" to="gateway" label="Create an onboard request" endpoint="POST /api/onboard" /%}
{% message from="gateway" to="partner" reply=true label="Request ID and signed upload URLs" /%}
{% message from="partner" to="storage" label="Upload the loan tape, underwriting guidelines, and loan documents" /%}
{% message from="partner" to="gateway" label="Submit the request" endpoint="POST /api/onboard/{id}" /%}
{% message from="gateway" to="gateway" label="Verify, validate, and transform" /%}
{% message from="gateway" to="provenance" label="Create an NFT for each loan" /%}
{% group label="Until the request is COMPLETED or FAILED" kind="loop" %}
{% message from="partner" to="gateway" label="Check status" endpoint="GET /api/onboard/{id}/status" /%}
{% /group %}
{% /sequence %}

After you submit, the gateway does three things in step 5:

1. **Verifies files.** Every file named in the manifest was uploaded.
2. **Validates.** The AI Validator compares each loan's source origination data with the underwriting guidelines for that request and returns a validation result per loan.
3. **Transforms and creates NFTs.** Figure applies the human-approved mapping from the AI Adaptor for your originator and `loanType`, then creates an NFT for each loan on Provenance.

## Servicing

Partners can send servicing updates for each onboarded loan by calling `POST /api/servicing-tape`.

{% sequence title="Send servicing updates" %}
{% actor id="partner" label="Your system" kind="partner" /%}
{% actor id="gateway" label="Onboarding Gateway" kind="figure" /%}
{% actor id="provenance" label="Provenance" kind="external" /%}
{% message from="partner" to="gateway" label="Upload a servicing tape CSV" endpoint="POST /api/servicing-tape" /%}
{% message from="gateway" to="partner" reply=true label="Request ID" /%}
{% message from="gateway" to="gateway" label="Transform your source data" /%}
{% message from="gateway" to="provenance" label="Save servicing updates" /%}
{% group label="Until the request is COMPLETED or FAILED" kind="loop" %}
{% message from="partner" to="gateway" label="Check status" endpoint="GET /api/servicing-tape/{id}" /%}
{% /group %}
{% /sequence %}

Partners send a CSV that matches the agreed servicing schema from [Servicing Data Requirements](/asset-onboarding/setup#servicing-data-requirements). Figure applies that layout, then publishes updates so they are available on Provenance for loans that were already onboarded. Poll until the request status is `COMPLETED` or `FAILED`.
