# Respond to an RFI

Submits the documents requested by a Request for Information (RFI). An RFI is raised when Glomo's compliance checks need additional information — for example, a sanctions-screening hold — before a transaction can be completed. Respond to it using the RFI `id` exposed on the underlying resource (for example, the `rfi.id` field on a Payment), or from the `rfi` webhook sent when the RFI is raised. Payout RFIs can be answered here too; the payout object and payout webhooks don't include the RFI `id`, so take it from the `rfi` webhook. See [Handle RFI for a Payout](/request-for-information/handle-rfi-for-a-payout).
Upload each document first using the [Create a Document](/api-reference/openapi/document/createdocument) endpoint, then submit the resulting `doc_id` (or `doc_ids`) against the matching `rfi_doc_id` from the RFI's `documents_required` list. Once the documents are submitted successfully, the RFI status transitions to `submitted` and the final decision is communicated via the [`rfi` webhook](/platform/webhooks/rfi).
For RFIs that also ask for structured values, read them from the RFI's `fields_required` list and send them as a `fields` object.

Endpoint: PATCH /rfis/{id}/respond
Version: 1.0.0
Security: JWT

## Security:

  - `JWT` (unknown)
    http bearer JWT

## Path parameters:

  - `id` (string, required)
    The unique identifier of the RFI to respond to. Starts with `rfi_`.

## Request fields (application/json):

  - `documents` (array)
    The documents being submitted in response to the RFI. At least one document is required.

  - `documents.rfi_doc_id` (string, required)
    The identifier of the RFI document requirement this document satisfies, taken from the `documents_required` list on the underlying resource's `rfi` object. Starts with `rfidoc_`.
    Example: rfidoc_6a7c5018sI3ht

  - `documents.doc_id` (string)
    The identifier of a single uploaded document, returned by the Create a Document endpoint. Provide either `doc_id` or `doc_ids`. Starts with `doc_`.
    Example: doc_6a79c6c4SbTxf

  - `documents.doc_ids` (array)
    The identifiers of multiple uploaded documents satisfying this requirement. Provide either `doc_id` or `doc_ids`.
    Example: ["doc_6a79c6c4SbTxf"]

  - `fields` (object)
    The structured values requested by the RFI, keyed by the `name` of each entry in its `fields_required` list.
    Example: {"invoice_number":"INV-2091","invoice_date":"2026-08-20","invoice_amount":1250000,"invoice_currency":"INR","customer_name":"Rohan Textiles Pvt Ltd","customer_address":{"address_line1":"14 Mint Street"…

  - `uploader_comments` (string)
    An optional note recorded against the RFI alongside the submitted documents.
    Example: Passport attached for review

## Response 200:

  - `200` (unknown)
    The RFI response was submitted successfully; the RFI transitions to `submitted`.

## Response 200 fields (application/json):

  - `id` (string)
    The unique identifier for the RFI.
    Example: rfi_6a72a39b38jDD

  - `status` (string)
    The current status of the RFI. A successful response transitions the RFI from
`information_required` to `submitted`. The final decision (`approved` or `rejected`) is
communicated via the [`rfi` webhook](/platform/webhooks/rfi).
This response uses different names for two statuses than the RFI list and detail endpoints:
`information_required` here is `action_required` there, and `submitted` here is `under_review`
there.
- `information_required` — documents are still owed.
- `submitted` — documents have been submitted and are awaiting a decision. Glomo can ask for more,
which moves the RFI back to `information_required`.
- `approved` — the RFI was accepted. Terminal.
- `rejected` — the RFI was declined. Terminal.
- `superseded` — the RFI was closed without a decision and needs no further response. Terminal.
- `expired` — the response deadline passed before documents were submitted. Terminal.
- `cancelled` — Glomo withdrew the request while documents were still owed; no response is needed.
Terminal.
    Enum: "information_required", "submitted", "approved", "rejected", "superseded", "expired", "cancelled"

## Response 400:

  - `400` (unknown)
    Bad request.

## Response 400 fields (application/json):

  - `error` (string)
    Enum: "Bad Request"

  - `message` (string)
    Error message.
    Example: must provide doc_id or doc_ids

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 403:

  - `403` (unknown)
    Forbidden. The RFI belongs to a different business.

## Response 404:

  - `404` (unknown)
    The RFI, or a referenced document, could not be found.

## Response 404 fields (application/json):

  - `error` (string)
    Enum: "Not found"

  - `message` (string)
    Entity not found
    Enum: "Entity not found"

## Response 422:

  - `422` (unknown)
    The RFI is not awaiting information — for example, it has already been submitted, or is approved, rejected, superseded, expired, or cancelled — and cannot be responded to.

## Response 422 fields (application/json):

  - `error` (string)
    Enum: "Unprocessable Entity"

  - `message` (string)
    Error message.
    Example: RFI information has already been submitted

