---
title: "Answer an RFI"
method: POST
path: "/v1/rfis/{rfiId}/evidence"
tags: ["Onboarding"]
---

# Answer an RFI

`POST /v1/rfis/{rfiId}/evidence`

## Request

- Base URL: `https://api.sandbox.alfredpay.io`
- URL: `https://api.sandbox.alfredpay.io/v1/rfis/{rfiId}/evidence`
- Auth: one of:
  - HTTP bearer
  - API key in header `api-key` and API key in header `api-secret`

Send `fields` keyed by the names in that RFI's own `requirements[]`, plus any `documentIds` from an earlier upload. The RFI moves to `RECEIVED`.

Works the same way for onboarding RFIs and transaction RFIs.

**Wait on** `rfi.updated`. See [Webhooks and events](/docs/webhooks-and-events).

## Headers

- `Idempotency-Key` string, uuid, required

## Request body

- RfiEvidence
  - `fields` object
  - `documentIds` string[]

## Response `200`

OK

- Rfi
  - `id` string
  - `scope` object
    - `type` 'customer' | 'deposit' | 'payout' | 'conversion'
    - `id` string
  - `status` 'OPEN' | 'WAITING_ON_CUSTOMER' | 'WAITING_ON_PARTNER' | 'RECEIVED' | 'RESOLVED' | 'OVERDUE' | 'REJECTED'
  - `requirements` string[]
  - `rfi_owner` 'CUSTOMER' | 'PARTNER'
  - `rfi_sla` string, date-time: When this becomes OVERDUE. A missed SLA is a blocking condition.
  - `openedAt` string, date-time

## Other responses

- `404`: The resource does not exist, or belongs to another partner.
- `409`: The RFI is not open (already `RESOLVED`, `REJECTED` or `OVERDUE` past cut-off).

## Changes

- **2026-11-03** `20fef4fd2ab3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation/changes/v1/rfis/:rfiId/evidence/post.md)

---

[API](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation.md) - [All operations](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/alfredpay/apis/alfred-penny-api-client-documentation/revisions/20fef4fd2ab3?raw)
