Skip to main content

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.

Encrypted Webhook Payload Body Example
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.

Payload
{
"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

Unencrypted Webook Payload
{
"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.

Note

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.

Payload
{
"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.