Webhooks
Partner Endpoint Requirements
Webhooks are delivered via HTTP POST
to the URL you provide during onboarding.
Your endpoint should return a 200 OK
status to acknowledge receipt of the message. If a non-2xx response is returned or the endpoint is
unreachable, Figure will retry delivery several times with exponential backoff.
Encryption
The webhooks can be delivered encrypted or unencrypted depending on partner preference. Encryption is strictly optional, however, partner endpoints are required to be HTTPS.
RSA encryption is solely support at this time. If encryption is desired, you will need to provide a public key to encrypt the message with. The payload will be a string payload that is able to be decrypted using your matching private key. More information on decryption can be seen here.
eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.qNAYpqG_t9ujLWt3_Jv7P82WZ7_hU0UvTHyzSMah7v68k_CfKydgC-w8dDQcYpAqjOtYpAmgQrAJT4-ipdCDkMqwgX7rSbgbBqEYBNLkvkiNfHrhKE4HCDywaTdiZmCnsjVGfEkNAkf1KvLNNWGcc_arvQdGqzoMI61cgZXJfuOfWnsDUWdXtckQaiBP3JL9yQv_p16jhVamgQYXTtXz5IlLDL4TS6gSGnZ7hRRZI3JGC0eQHCzDXuY_mF0Tfd89Z5QgMjiHrUaMEw60sTkKSW_NyNG62D5T6STNgKk6w6GsB3bpn4m1kiyQ7cxkraHCJyOOWQ80NK9EGu0A3g0ATg.aCUl2PDUPTvFBSHF.Gd3VxWjTGGK6tCqSnXhMDZ90BvM9Qv9vJOAqGiajjwTV_HSN7LVVxJ1R5NSloO8slgHNiZRy-dbL8wfY3BdfsixemFd1BeM9Pov_QJMb7GYRayza1WF96eHGtWE-pgILzR3SGMfxgFFGVCbiKTCU8KEymL5xH5eN6YLaKbCKxq2LHRaa3dU590ChaG1kIBf7x8-iGWH89vAB45YtutQRR340lm2jpCj3_6gX-tP40pkFUDE6yBtEDQeTgvC0W7xf6sLo3WTJeg.q_wQXu0TaxbjfGdbxtJlhQ
Default Inquiry Webhooks
Inquiries progress through several processing events.
During onboarding, Figure can configure a webhook to receive notifications at key phases of the inquiry lifecycle.
When the processing has completed and the next nextInquiryStepType
is ready, Figure will send a webhook to the configured URL with the following payload.
Figure will notify the partner via a POST
webhook when ready to proceed. Webhook responses will specify the next action to take or when the inquiry has been transferred to the borrower.
{
"applicationUuid": string, // uuid
"loanOriginatorNmls": string,
"productType": string,
"eventTimestamp": string,
"nextInquiryStepType": string
}
After you have received a webhook event, you are able to use Fetch App/Inquiry Details to get the updated inquiry information and trigger necessary workflows in your system to move the user forward in the inquiry process.
Examples
{
"applicationUuid":"82f5176b-7dbf-4f37-b40d-6e9580f3d4f1",
"loanOriginatorNmls":"NMLS_1234",
"productType":"HELOC",
"eventTimestamp":"2025-06-26T12:54:16.726009161Z",
"nextInquiryStepType":"OFFERS_AVAILABLE",
}
Default Application Webhooks
As the application progresses, your configured webhook endpoint will receive these status updates. The endpoint can be different or the same depending on partner requirements.
Once an inquiry transitions to an application, the webhook payload will have this schema.
Instead of nextInquiryStepType
, the payload will include a status
field reflecting the application's current status.
{
"applicationUuid": string, // uuid
"loanOriginatorNmls": string,
"productType": string,
"eventTimestamp": string,
"status": string
}
Custom Webhooks
We understand partner intergrations can be complex. If your systems require a different webhook payload, we do support dynamic payloads. Anything within the Fetch App/Inquiry Details response can be configured for the payload.