> For the complete documentation index, see [llms.txt](https://developer.flash-payments.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.flash-payments.com/compliance/request-for-information.md).

# Request for Information

A Request for Information (RFI) is a compliance request raised by Flash Payments against deposits, withdrawals, or payments that require additional information before they can be released. RFIs are created on our side when a compliance review flags certain transactions — you cannot create RFIs via the API.

Each RFI carries a list of questions and a response deadline. There are two ways to respond:

* **Via the API** (this section) — receive a webhook, [query the RFI](/compliance/request-for-information/query-rfis.md), [answer each questio](/compliance/request-for-information/answer-rfi-questions.md)n with text or documents, or [decline](/compliance/request-for-information/decline-an-rfi.md) if you cannot comply.
* **Via the secure form** — the end user fills in the secure form sent by email ([the existing flow](https://developer.flash-payments.com/compliance/pages/wEAxvJ5gyBFgRFOvH9iv#id-4.-request-for-information-rfi-is-initiated-by-the-flash-compliance-team)). No integration required.

Both paths emit the same [lifecycle webhooks](/basics/webhooks.md#rfi_created), so you can mix them — for example, automate document collection but let the email form remain as a fallback.

{% hint style="info" %}
The RFI API is available to every client. There is no separate enablement step. Authentication uses your existing [API token](/basics/authentication.md) — no new credentials.
{% endhint %}

### What's in this section

* [RFI statuses ](/compliance/request-for-information/rfi-statuses.md)— the `PENDING` → `ASSESSING` → `CLOSED`  lifecycle and a `CANCELLED` case.
* [Query RFIs](/compliance/request-for-information/query-rfis.md) — the `rfi` and `rfis` queries.
* [Answer RFI questions](/compliance/request-for-information/answer-rfi-questions.md) — the `answerRfiQuestion` mutation, including file uploads.
* [Decline an RFI](/compliance/request-for-information/decline-an-rfi.md) — the `declineRfi` mutation.
* [RFI response codes](/compliance/request-for-information/rfi-response-codes.md) — all reply codes and GraphQL errors.

### Recommended integration flow

1. Subscribe to the `rfi_created`, `rfi_assessing`, `rfi_closed` and `rfi_canceled` [webhook events](/basics/webhooks.md#rfi_created) in your Flash Connect webhook settings.
2. On `rfi_created`, call the [`rfi`](/compliance/request-for-information/query-rfis.md#retrieving-a-single-rfi) query to load the questions and the linked deposits, withdrawals, or payments.
3. For each question with `answered: false`, call [`answerRfiQuestion`](/compliance/request-for-information/answer-rfi-questions.md) with text or files, according to the question's `fileUploadOption`.
4. When the last question is answered, the RFI moves to `ASSESSING` — you will receive `rfi_assessing`. No further action is required.
5. When the review is completed, the RFI moves to `CLOSED` and you will receive `rfi_closed`. The linked transactions are then released, or rejected with an explanatory `rejectCode`.
6. If you cannot supply the requested information, call [`declineRfi`](/compliance/request-for-information/decline-an-rfi.md) while the RFI is still `PENDING`. This will cancel the linked transactions being still under review.
7. Separately from your responses, we may withdraw an RFI if it is no longer needed. If that happens the RFI moves to `CANCELLED` and you receive the `rfi_cancelled` webhook — no response is required, and any linked deposits, withdrawals, or payments are left unaffected.

{% hint style="info" %}
`CANCELLED` is initiated by us, not by you — it means we withdrew the request. It is different from declining (which you initiate, and which closes the RFI as `CLOSED` and cancels the linked transactions).&#x20;
{% endhint %}

{% hint style="warning" %}
Respond before the RFI's `deadline`. If the deadline passes without a complete response, the RFI is closed and the linked transactions may be rejected.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.flash-payments.com/compliance/request-for-information.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
