Skip to main content

Overview

The submitRfi mutation saves a customer’s answers to an open RFI.
  • With finalize: true (the default), the RFI is sent for review and moves to IN_REVIEW. Every required question must be answered, in this call or by an earlier saved answer.
  • With finalize: false, only the answers you send are saved and the RFI stays PENDING_DOCUMENTS, so the rest can follow in later calls.
Answers are validated against the RFI’s questions either way.

Required scopes

Use the same customer’s token you read the RFI with. See Who can answer an RFI.

Basic mutation structure

Parameters

SubmitRfiInput

RfiAnswerInput

Send one answer per question. Leave out:
  • questions with isSubmitted: true (already saved),
  • SECTION_BREAK questions,
  • bank-link and address questions you answered with completeRfiPlaidLink, unless you are uploading documents for them instead.

Example variables

cURL Example

Response details

SubmitRfiResponse

Success

Validation failure

When validation fails, nothing from the call is saved. Fix the listed answers and send the call again.

Saving in parts

Use finalize: false to let a customer leave and come back, or to save each page of a long form as they go.
Saved answers are final. Once a question has a saved answer, it is marked isSubmitted: true and cannot be changed — sending it again returns ALREADY_SUBMITTED. Save an answer only when the customer has confirmed it. The one exception is a Plaid bank link, which completeRfiPlaidLink can replace.
  • A partial save does not change the RFI’s status and does not send it for review.
  • Required questions are checked only when you finalize. A finalize call can be just { "rfiId": "...", "answers": [] } if everything required is already saved.
  • After finalizing, the RFI is IN_REVIEW and further calls return RFI_NOT_OPEN. If Fluz needs more, the RFI comes back to PENDING_DOCUMENTS with new questions.

Conditional questions

Questions whose visibilityCondition does not hold are skipped:
  • they are not required, and
  • any answer you send for them is ignored — no error, and nothing is saved.
Visibility is worked out from earlier answers in ordinal order, using saved answers and the answers in the same call. See Conditional questions.

Error Codes

Payload errors

submitRfi returns RFI errors in the payload with success: false, not in the top-level errors array.

validationErrors codes

Top-level errors

These come back in the errors array, before the mutation runs.

Best practices

  • Validate in your UI first. Check formats, options and required fields before calling, so a validation failure is rare.
  • Finalize once. Save pages with finalize: false if you need to, and finalize when the customer presses submit.
  • Show the result. After IN_REVIEW, show an “under review” state and stop prompting for this RFI.

Read RFIs

The questions, saved answers and status.

Upload RFI documents

Get the fileId values for file questions.

Answer with a bank link

Answer bank-statement and proof-of-address questions with Plaid.

RFI overview

Statuses, question types and the full flow.