---
title: "Submit a request for information (RFI)"
method: POST
path: "/api/compliance/{organizationId}/rfis/{rfiId}/submit"
tags: ["Compliance"]
---

# Submit a request for information (RFI)

`POST /api/compliance/{organizationId}/rfis/{rfiId}/submit`

## Request

- Base URL: `https://api.muralpay.com`
- URL: `https://api.muralpay.com/api/compliance/{organizationId}/rfis/{rfiId}/submit`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/muralpay/apis/mural-api/docs/api/compliance/:organizationId/rfis/:rfiId/submit/post.ts> (a function with typed inputs; its response is checked against the schema)

Submits the response. Mural runs the same validations as a review submission.

## Path parameters

- `organizationId` string, uuid, required
- `rfiId` string, uuid, required

## Request body

- SubmitRfiRequest
  - `acknowledgeWarnings` boolean: Set to `true` to acknowledge any attestation or compliance review warnings and proceed with submission.

## Response `200`

The request for information. Read `status` for the result.

- union
  - IndividualComplianceReviewRfiResponse: A reviewer's request for additional information.
    - `id` string, uuid, required
    - `type` 'individualComplianceReview', required
    - `complianceReviewId` string, uuid, required: The compliance review for this request.
    - `status` union, required: The status of the request.
      - object: The reviewer waits for a response.
        - `type` 'outstanding', required
      - object: Validations are running.
        - `type` 'validatingSubmission', required
      - object: One or more validations failed.
        - `type` 'submissionValidationsFailed', required
        - `failures` ComplianceReviewSubmissionValidationFailure[], required: The failures from the most recent submit.
          - `failureDescription` string, required: Human-readable description of the failure.
          - `failureInfo` union, required: Detail specific to this failure's `validationCode`.
            - TaxIdCountryPairFailureInfo: The review's tax ID type is not valid for the individual's government ID issuing country, or the business's registered address country.
              - …
            - AssociatedPersonTaxIdCountryPairFailureInfo: An associated person's tax ID type is not valid for their government ID issuing country.
              - …
            - SubmissionDocumentDataMismatchFailureInfo: A value read from an uploaded document does not match what the review attests.
              - …
          - `severity` 'BLOCKING' | 'WARNING', required: `BLOCKING` failures must be resolved by re-uploading attestations; `WARNING` failures can be bypassed by re-submitting with `acknowledgeWarnings: true`.
          - `validationCode` 'TAX_ID_COUNTRY_PAIR' | 'ASSOCIATED_PERSON_TAX_ID_COUNTRY_PAIR' | 'DOCUMENT_DATA_MISMATCH', required: DEPRECATED: use `failureInfo.validationCode` instead. The kind of failure.
      - object: The response is submitted.
        - `type` 'submitted', required
        - `submittedAt` string, required: When you submitted the response. ISO 8601.
      - object: The reviewer cancelled the request.
        - `type` 'cancelled', required
        - `reason` 'WITHDRAWN_BY_REVIEWER' | 'SUBJECT_RESET' | 'SUPERSEDED', required
        - `cancelledAt` string, required: When the reviewer cancelled the request. ISO 8601.
    - `createdAt` string, required: When the reviewer made this request. ISO 8601.
    - `updatedAt` string, required: When this request last changed. ISO 8601.
    - `attestations` RfiIndividualAttestationItem[], required: The requested attestations.
      - `attestationType` 'individualPersonalInfoLight' | 'individualPersonalInfo' | 'individualContactInfo' | 'individualResidentialAddress' | 'individualIdentityDocument' | 'individualFinancialInfo' | 'individualTaxInfo' | 'individualEeaInfo' | 'individualProofOfAddress' | 'individualSourceOfFunds' | 'individualSelfiePhoto' | 'supplementalDocument' | 'supplementalInfo', required
      - `requestedScope` union, required: How much of this attestation to send again.
        - object: A request to send the full attestation again.
          - `type` 'wholeAttestation', required
          - `details` RfiDetail[], required: The reasons for the full attestation.
            - `id` string, uuid, required: Identifies this detail. A supplemental answer cites it as `detailId`.
            - `code` 'INCORRECT_DOCUMENT' | 'POOR_QUALITY' | 'MISSING_INFORMATION' | 'INCONSISTENT_DATA' | 'EXPIRED_DOCUMENT' | 'ADDRESS_NOT_FOUND' | 'ADDRESS_SUGGESTED_CORRECTION' | 'OTHER', required
            - `title` string, required: Short name of what the reviewer is asking for. Defaults to a generic label for `code` when the reviewer gave none.
            - `description` string, required: Text from the reviewer.
        - object: A request to send only the named fields again.
          - `type` 'fields', required
          - `details` RfiDetail[], required: The reasons for the full attestation.
            - `id` string, uuid, required: Identifies this detail. A supplemental answer cites it as `detailId`.
            - `code` 'INCORRECT_DOCUMENT' | 'POOR_QUALITY' | 'MISSING_INFORMATION' | 'INCONSISTENT_DATA' | 'EXPIRED_DOCUMENT' | 'ADDRESS_NOT_FOUND' | 'ADDRESS_SUGGESTED_CORRECTION' | 'OTHER', required
            - `title` string, required: Short name of what the reviewer is asking for. Defaults to a generic label for `code` when the reviewer gave none.
            - `description` string, required: Text from the reviewer.
          - `fields` RfiRequestedField[], required: The fields to send again.
            - `field` string, required: A top-level property.
            - `details` RfiDetail[], required: The reasons for this field.
              - …
  - BusinessComplianceReviewRfiResponse: A reviewer's request for additional information.
    - `id` string, uuid, required
    - `type` 'businessComplianceReview', required
    - `complianceReviewId` string, uuid, required: The compliance review for this request.
    - `status` union, required: The status of the request.
      - object: The reviewer waits for a response.
        - `type` 'outstanding', required
      - object: Validations are running.
        - `type` 'validatingSubmission', required
      - object: One or more validations failed.
        - `type` 'submissionValidationsFailed', required
        - `failures` ComplianceReviewSubmissionValidationFailure[], required: The failures from the most recent submit.
          - `failureDescription` string, required: Human-readable description of the failure.
          - `failureInfo` union, required: Detail specific to this failure's `validationCode`.
            - TaxIdCountryPairFailureInfo: The review's tax ID type is not valid for the individual's government ID issuing country, or the business's registered address country.
              - …
            - AssociatedPersonTaxIdCountryPairFailureInfo: An associated person's tax ID type is not valid for their government ID issuing country.
              - …
            - SubmissionDocumentDataMismatchFailureInfo: A value read from an uploaded document does not match what the review attests.
              - …
          - `severity` 'BLOCKING' | 'WARNING', required: `BLOCKING` failures must be resolved by re-uploading attestations; `WARNING` failures can be bypassed by re-submitting with `acknowledgeWarnings: true`.
          - `validationCode` 'TAX_ID_COUNTRY_PAIR' | 'ASSOCIATED_PERSON_TAX_ID_COUNTRY_PAIR' | 'DOCUMENT_DATA_MISMATCH', required: DEPRECATED: use `failureInfo.validationCode` instead. The kind of failure.
      - object: The response is submitted.
        - `type` 'submitted', required
        - `submittedAt` string, required: When you submitted the response. ISO 8601.
      - object: The reviewer cancelled the request.
        - `type` 'cancelled', required
        - `reason` 'WITHDRAWN_BY_REVIEWER' | 'SUBJECT_RESET' | 'SUPERSEDED', required
        - `cancelledAt` string, required: When the reviewer cancelled the request. ISO 8601.
    - `createdAt` string, required: When the reviewer made this request. ISO 8601.
    - `updatedAt` string, required: When this request last changed. ISO 8601.
    - `attestations` RfiBusinessAttestationItem[], required: The requested business-level attestations.
      - `attestationType` 'businessIdentification' | 'businessTaxInfo' | 'businessAddress' | 'businessContactInfo' | 'businessDetails' | 'businessOperations' | 'businessFinancialInfo' | 'businessFormationDocuments' | 'businessUboOwnershipDocuments' | 'businessProofOfAddressDocuments' | 'businessFlowOfFundsDocument' | 'businessSourceOfFundsDocuments' | 'businessAssociatedPerson' | 'supplementalDocument' | 'supplementalInfo', required
      - `requestedScope` union, required: How much of this attestation to send again.
        - object: A request to send the full attestation again.
          - `type` 'wholeAttestation', required
          - `details` RfiDetail[], required: The reasons for the full attestation.
            - `id` string, uuid, required: Identifies this detail. A supplemental answer cites it as `detailId`.
            - `code` 'INCORRECT_DOCUMENT' | 'POOR_QUALITY' | 'MISSING_INFORMATION' | 'INCONSISTENT_DATA' | 'EXPIRED_DOCUMENT' | 'ADDRESS_NOT_FOUND' | 'ADDRESS_SUGGESTED_CORRECTION' | 'OTHER', required
            - `title` string, required: Short name of what the reviewer is asking for. Defaults to a generic label for `code` when the reviewer gave none.
            - `description` string, required: Text from the reviewer.
        - object: A request to send only the named fields again.
          - `type` 'fields', required
          - `details` RfiDetail[], required: The reasons for the full attestation.
            - `id` string, uuid, required: Identifies this detail. A supplemental answer cites it as `detailId`.
            - `code` 'INCORRECT_DOCUMENT' | 'POOR_QUALITY' | 'MISSING_INFORMATION' | 'INCONSISTENT_DATA' | 'EXPIRED_DOCUMENT' | 'ADDRESS_NOT_FOUND' | 'ADDRESS_SUGGESTED_CORRECTION' | 'OTHER', required
            - `title` string, required: Short name of what the reviewer is asking for. Defaults to a generic label for `code` when the reviewer gave none.
            - `description` string, required: Text from the reviewer.
          - `fields` RfiRequestedField[], required: The fields to send again.
            - `field` string, required: A top-level property.
            - `details` RfiDetail[], required: The reasons for this field.
              - …
    - `associatedPersons` RfiAssociatedPerson[], required: The associated persons with requested attestations.
      - `associatedPersonId` string, uuid, required
      - `attestations` RfiAssociatedPersonAttestationItem[], required: The requested attestations.
        - `attestationType` 'associatedPersonPersonalInfo' | 'associatedPersonContactInfo' | 'associatedPersonResidentialAddress' | 'associatedPersonTaxInfo' | 'associatedPersonIdentityDocument' | 'associatedPersonProofOfAddress' | 'associatedPersonEeaInfo' | 'associatedPersonProofOfSignatoryAuthority' | 'associatedPersonSupplementalDocument' | 'associatedPersonSupplementalInfo', required
        - `requestedScope` union, required: How much of this attestation to send again.
          - object: A request to send the full attestation again.
            - `type` 'wholeAttestation', required
            - `details` RfiDetail[], required: The reasons for the full attestation.
              - …
          - object: A request to send only the named fields again.
            - `type` 'fields', required
            - `details` RfiDetail[], required: The reasons for the full attestation.
              - …
            - `fields` RfiRequestedField[], required: The fields to send again.
              - …

## Other responses

- `400`: One or more of the requested attestations are not yet uploaded.
- `401`: Unauthorized
- `403`: SignedAgreementRequiredException
- `404`: This organization has no request with this id.
- `409`: The request is submitted or cancelled. It does not accept submissions.
- `412`: Attestation Validations Rejected Exception | Associated Person Attestation Validations Rejected Exception
- `429`: RateLimitExceededError

## Changes

- **2026-11-03** `65aadbefe527`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/muralpay/apis/mural-api/changes/api/compliance/:organizationId/rfis/:rfiId/submit/post.md)

---

[API](https://skmtc.dev/muralpay/apis/mural-api.md) - [All operations](https://skmtc.dev/muralpay/apis/mural-api/llms.txt) - [OpenAPI document](https://skmtc.dev/muralpay/apis/mural-api/revisions/65aadbefe527?raw)
