---
title: "Submit RFI Response"
method: POST
path: "/v1/instances/{instance_id}/customers/{customer_id}/rfi"
tags: ["Customers"]
---

# Submit RFI Response

`POST /v1/instances/{instance_id}/customers/{customer_id}/rfi`

Submit a flat response object for the open RFI. On success flips kyc_status back to verifying. Returns `{ success: false, reason }` when no pending RFI exists, callers should refetch the RFI state instead of retrying.

## Path parameters

- `instance_id` string, required
- `customer_id` string, required — Customer ID

## Headers

- `Idempotency-Key` string — Optional key to safely retry this request without performing the action twice. Retrying with the same key and an identical body replays the original response; reusing a key with a different body returns an error. Keys are kept for 24 hours.

## Request body

- object

## Response `200`

RFI submitted (success: true) or rejected because no pending RFI exists (success: false)

- union
  - object
    - `success` true, required
  - object
    - `success` false, required
    - `reason` 'no_pending_rfi' | 'already_resolved', required

## Other responses

- `400` — Possible error codes: `VALIDATION_FAILED`. See the Error responses section for retry semantics.
- `401` — Possible error codes: `AUTH_UNAUTHORIZED`. See the Error responses section for retry semantics.
- `403` — Possible error codes: `AUTH_FORBIDDEN`. See the Error responses section for retry semantics.
- `429` — Possible error codes: `AUTH_RATE_LIMITED`. See the Error responses section for retry semantics.
- `500` — Possible error codes: `COMPLIANCE_RFI_INVALID`, `INTERNAL_ERROR`. See the Error responses section for retry semantics.

---

[API](https://skmtc.dev/blindpay/apis/blindpay-api.md) · [All operations](https://skmtc.dev/blindpay/apis/blindpay-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/blindpay/blindpay-api/revisions/6820195d6f53/schema)
