Pave Bank

Request for Information (RFI)

Pave Bank may request additional information about an account or transaction by raising a Request for Information (RFI).

The Request for Information (RFI) process is used by Pave Bank to request additional information about an account or transaction. This guide walks through the complete workflow from receiving an RFI to submitting structured responses.

Overview

The RFI process consists of the following steps:

  1. Receive RFI Notification - An RFI is received with one or more questions requiring responses
  2. Fetch RFI Details - Retrieve the full RFI information including all questions
  3. Generate Upload URLs - For document-type questions, create signed upload URLs
  4. Upload Documents - Upload required documents to the generated URLs
  5. Submit Responses - Submit structured responses with text and/or document references

Note: The full RFI lifecycle can be simulated in the sandbox environment.


Step 1: Receive RFI Notification

When Pave Bank raises an RFI, a webhook notification is sent containing the RFI details. Each RFI contains one or more questions that require responses. See the RFI Webhook section for event types and payload format.

All RFIs can also be retrieved via polling with:

GET /v1/rfis

Step 2: Fetch RFI Details

Retrieve the full RFI information using the RFI ID:

GET /v1/rfis/{rfiID}

The endpoint will return:

  • RFI metadata (ID, type, status, created and updated date, etc)
  • List of questions with their unique IDs and types
  • Existing responses, if any

Step 3: Generate Upload URLs

For questions requiring document uploads, first generate signed upload URLs before uploading the documents.

POST /v1/documents/upload-url

Request:

{
    "related_id": "{rfiID}",
    "content_type": "application/pdf",
    "document_type": "passport"
}

Parameters:

  • related_id: The ID of the related entity (the RFI ID)
  • content_type: MIME type of the document (e.g., application/pdf, image/png)
  • document_type: The type of document being uploaded (see Document Types)

Response:

{
    "id": "document_uuid",
    "url": "https://signed-upload-url...",
    "expires_at": "2024-01-22T12:00:00Z"
}

Step 4: Upload Documents

Upload the documents to the signed URL provided in the previous step:

PUT {signed_url}
Content-Type: application/pdf

[Binary document content]

Important:

  • Use the exact Content-Type specified when generating the upload URL
  • The upload URL expires after a short period (see expires_at)
  • Keep the document ID (id from the upload URL response) for later reference

Step 5: Submit Responses

Submit a response to each RFI question using the question ID. The request body is a structured response where question_type must be set, along with the matching question-type field containing the response data.

POST /v1/rfis/{rfiID}/questions/{questionID}/responses

Request:

The request must include question_type and a field keyed by that question type. For example, a text-based question:

{
    "question_type": "transaction.purpose",
    "transaction.purpose": {
        "response_text": "Payment for consulting services rendered in Q4.",
        "document_ids": []
    }
}

For a document-upload question:

{
    "question_type": "identification.individual.passport",
    "identification.individual.passport": {
        "response_text": "",
        "document_ids": ["<DOCUMENT_ID_1>", "<DOCUMENT_ID_2>"]
    }
}

Response:

{
    "id": "<RFI_RESPONSE_ID>",
    "question_id": "<RFI_QUESTION_ID>",
    "responder_type": "customer",
    "response": {
        "transaction.purpose": {
            "response_text": "Payment for consulting services rendered in Q4.",
            "document_ids": []
        }
    },
    "created_at": "2026-01-28T07:08:42.658422Z",
    "updated_at": "2026-01-28T07:08:42.658422Z"
}

RFI Types

Each RFI is associated with a type that indicates what entity it relates to:

TypeDescription
transactionRelated to a specific transaction
accountRelated to an account
nominal_sub_accountRelated to a nominal sub-account
nominal_sub_account_openingRelated to a nominal sub-account opening

Question Types

An RFI may contain one or more questions, each with a specific question type. Below are all the potential question types organized by category:


RFI Webhook

Events

When an RFI is created and/or status changes, a webhook event is sent to the configured webhook URL. The following events are delivered:

RFIQuestion
rfi.action_requiredrfi.question.action_required
rfi.pending_reviewrfi.question.pending_review
rfi.closedrfi.question.closed
rfi.approvedrfi.question.approved
rfi.rejectedrfi.question.rejected
rfi.timeoutrfi.question.timeout

Payload Example

Webhooks are signed using ECDSA. Verify the signature using the Pave-Signature header included with each request. See Signed Webhooks for details on signature verification.

On this page