---
title: "List RFIs"
method: GET
path: "/v2/rfis"
tags: ["RFI"]
---

# List RFIs

`GET /v2/rfis`

## Request

- Base URL: `https://production.hifibridge.com`
- URL: `https://production.hifibridge.com/v2/rfis`
- Auth: HTTP bearer

List the requests for information (RFIs) compliance has raised against your users. An RFI is raised either during onboarding, against the user's KYC/KYB, or against a single transfer, which stays held until the request is resolved.

If you would rather collect the reply programmatically, submit it through the [Submit an RFI response](https://docs.hifi.com/api-reference/rfi/submit-an-rfi-response) endpoint instead.

Pass `transferId` to find the request holding a specific onramp or offramp, for example after an `ONRAMP.RFI.OPEN` or `OFFRAMP.RFI.OPEN` webhook.

The open onboarding RFI for a single user is also returned on the [Retrieve KYC status](https://docs.hifi.com/api-reference/kyc/retrieve-kyc-status) endpoint.

## Query parameters

- `status` 'issued' | 'submitted' | 'resolved' | 'expired'
- `kind` 'onboarding' | 'transaction'
- `userId` string, uuid
- `transferId` string, uuid
- `limit` integer
- `offset` integer

## Response `200`

Success

- RfiListObject: Paginated list of requests for information, newest first.
  - `data` RfiObject[]
    - `id` string, uuid: Request ID.
    - `kind` 'onboarding' | 'transaction': What the request is attached to. `onboarding` asks about the user's own KYC/KYB; `transaction` asks about a single transfer, which stays held until the request is resolved.
    - `status` 'issued' | 'submitted' | 'resolved' | 'expired': Where the request is in its lifecycle. `issued` is waiting on a reply, `submitted` has been answered and is under review, `resolved` has been decided, and `expired` passed its deadline unanswered.
    - `subjectType` 'individual' | 'business': Whether the user the request concerns is an individual or a business.
    - `userId` string, uuid, nullable: ID of the user the request concerns.
    - `transferId` string, uuid, nullable: ID of the held transfer, on a `transaction` request. Null on an `onboarding` request.
    - `flowType` 'onramp' | 'offramp', nullable: Which transfer `transferId` refers to. Null on an `onboarding` request.
    - `createdAt` string, date-time: When the request was raised.
    - `currentRound` integer, nullable: Attempt number of the round in `round`.
    - `round` RfiRoundObject: The current attempt at the request. Each time compliance asks again a new round is opened with its own items and deadline, and earlier rounds are retained but not returned here.
      - `id` string, uuid: Round ID.
      - `round` integer: Attempt number, starting at 1.
      - `issuedAt` string, date-time: When this round was issued and emailed to your compliance contact.
      - `expiresAt` string, date-time, nullable: Deadline for replying. A submission after this time is rejected.
      - `submittedAt` string, date-time, nullable: When this round was answered. Null while it is still awaiting a reply.
      - `items` RfiRequestItemObject[]: What this round asks for, in the order it should be presented.
        - `id` string, uuid: Request item ID. Quote it as `requestItemId` when submitting a reply.
        - `kind` 'document' | 'question': `document` expects a file, or written text explaining why the file cannot be provided. `question` expects written text only.
        - `label` string: What is being asked for, in the reviewer's own words.
        - `docType` string, nullable: Hint for the kind of document expected. Null when the request does not correspond to a standard document type. Not a closed set, so treat an unrecognised value as an untyped document request. Values currently in use are `proof_of_address`, `source_of_funds`, `bank_statement`, `government_id`, `selfie`, `incorporation_docs`, `ownership_structure`, `invoice` and `contract`.
        - `detail` string, nullable: Additional guidance for this item.
        - `required` boolean: Whether this item must be answered for the submission to be accepted.
      - `link` string, nullable: Hosted page where you can answer the request without calling this API. The same link is emailed to your compliance contact when the request is issued. Null once the link can no longer be used, which is after a submission, after compliance asks again, or once the request is closed.
  - `pagination` RfiPagination: Offset-based pagination.
    - `limit` integer, required: Page size used for this response.
    - `offset` integer, required: Number of records skipped.
    - `total` integer, required: Total number of records matching the filters.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `500`: Internal Server Error

## Changes

- **2026-11-03** `319fa6bd5bc6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hifi/apis/hifi-api/changes/v2/rfis/get.md)

---

[API](https://skmtc.dev/hifi/apis/hifi-api.md) - [All operations](https://skmtc.dev/hifi/apis/hifi-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hifi/apis/hifi-api/revisions/319fa6bd5bc6?raw)
