---
title: "Simulate a compliance review state transition for a child organization"
method: POST
path: "/api/sandbox/simulate/complianceReview/{organizationId}/{complianceReviewId}/transition"
tags: ["Sandbox"]
---

# Simulate a compliance review state transition for a child organization

`POST /api/sandbox/simulate/complianceReview/{organizationId}/{complianceReviewId}/transition`

Drives a child organization's compliance review to a chosen lifecycle state, producing the same DB writes and `compliance_review.status_changed` webhook the real transition would. Sandbox only.

## Path parameters

- `organizationId` string, uuid, required
- `complianceReviewId` string, uuid, required

## Request body

- SimulateComplianceReviewTransitionRequest
  - `transition` union, required — The target state to drive the compliance review to.
    - SimulateTransitionToInReview — Moves a submitted review under compliance review.
      - `type` 'inReview', required
    - SimulateTransitionToApproved — Approves an in-review compliance review.
      - `type` 'approved', required
    - SimulateTransitionToRejected — Rejects an in-review compliance review with a reason.
      - `rejectionDescription` string, required — Reason surfaced on the rejected review.
      - `type` 'rejected', required
    - SimulateTransitionToError — Marks an in-review compliance review as errored.
      - `errorDescription` string, required — Diagnostic detail recorded on the errored review.
      - `type` 'error', required

## Response `200`

The updated compliance review.

- union
  - IndividualComplianceReviewResponse
    - `id` string, uuid, required — Unique review ID
    - `tier` 'LIGHT' | 'STANDARD', required — The tier this review is for.
    - `type` 'individual', required
    - `status` union, required — Current status of the compliance review.
      - object — The review has been created and is awaiting attestation uploads.
        - `type` 'draft', required
      - object — The review has been submitted and attestations have been validated. Verification processing will begin shortly.
        - `submittedAt` string, required — ISO 8601 timestamp when the review was submitted.
        - `type` 'submitted', required
      - object — Submission validations are currently running against the submitted review.
        - `type` 'validatingSubmission', required
      - object — One or more submission validations failed for the submitted review.
        - `failures` ComplianceReviewSubmissionValidationFailure[], required — The set of failures recorded by the most recent submit attempt. Always non-empty when the review is in this status.
          - `failureDescription` string, required — Human-readable description of the failure.
          - `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', required — The kind of failure.
        - `type` 'submissionValidationsFailed', required
      - object — The review is currently being evaluated.
        - `submittedAt` string, required — ISO 8601 timestamp when the review was submitted.
        - `type` 'inReview', required
      - object — Additional information is required before the review can proceed.
        - `type` 'additionalInformationRequested', required
      - object — The compliance review has been approved. The organization has been granted the requested KYC tier.
        - `approvedAt` string, required — ISO 8601 timestamp when the review was approved.
        - `submittedAt` string, required — ISO 8601 timestamp when the review was submitted.
        - `type` 'approved', required
      - object — The compliance review was rejected. See rejectionDescription for the reason.
        - `rejectedAt` string, required — ISO 8601 timestamp when the review was rejected.
        - `rejectionDescription` string, required — Description of why the compliance review was rejected.
        - `submittedAt` string, required — ISO 8601 timestamp when the review was submitted.
        - `type` 'rejected', required
      - object — An error occurred while processing the review. The organization may need to create a new review.
        - `errorDescription` string, required — Description of the error that occurred during processing.
        - `submittedAt` string, required — ISO 8601 timestamp when the review was submitted.
        - `type` 'error', required
    - `createdAt` string, required — ISO 8601 timestamp when the review was created.
    - `requiredAttestations` AttestationRequirement[], required — Attestation types required to submit this review.
      - `attestationType` 'individualPersonalInfoLight' | 'individualPersonalInfo' | 'individualContactInfo' | 'individualResidentialAddress' | 'individualIdentityDocument' | 'individualFinancialInfo' | 'individualTaxInfo' | 'individualEeaInfo' | 'individualProofOfAddress' | 'individualSourceOfFunds' | 'individualSelfiePhoto' | 'businessIdentification' | 'businessTaxInfo' | 'businessAddress' | 'businessContactInfo' | 'businessDetails' | 'businessOperations' | 'businessFinancialInfo' | 'businessFormationDocuments' | 'businessUboOwnershipDocuments' | 'businessProofOfAddressDocuments' | 'businessFlowOfFundsDocument' | 'businessAssociatedPersons', required — Attestation type required to submit the compliance review.
    - `uploadedAttestations` AttestationSummary[], required — Attestations already uploaded for this review.
      - `attestationType` 'individualPersonalInfoLight' | 'individualPersonalInfo' | 'individualContactInfo' | 'individualResidentialAddress' | 'individualIdentityDocument' | 'individualFinancialInfo' | 'individualTaxInfo' | 'individualEeaInfo' | 'individualProofOfAddress' | 'individualSourceOfFunds' | 'individualSelfiePhoto' | 'businessIdentification' | 'businessTaxInfo' | 'businessAddress' | 'businessContactInfo' | 'businessDetails' | 'businessOperations' | 'businessFinancialInfo' | 'businessFormationDocuments' | 'businessUboOwnershipDocuments' | 'businessProofOfAddressDocuments' | 'businessFlowOfFundsDocument' | 'businessAssociatedPersons', required — Which attestation this summary refers to.
      - `id` string, uuid, required — Unique attestation ID
      - `validationStatus` union, required — Validations lifecycle state for this attestation.
        - AttestationValidationStatusPending — Validations in progress.
          - `type` 'pending', required
        - AttestationValidationStatusApproved — Attestation passed validations.
          - `type` 'approved', required
        - AttestationValidationStatusFailed — Attestation failed validations.
          - `failures` AttestationValidationFailure[], required — Information about the failed validations for this attestation.
            - `failureCode` 'INCORRECT_DOCUMENT' | 'POOR_QUALITY' | 'MISSING_INFORMATION' | 'INCONSISTENT_DATA' | 'EXPIRED_DOCUMENT' | 'OTHER', required — A reason the validation failed.
            - `severity` 'BLOCKING' | 'WARNING', required — `BLOCKING` must be addressed before submit can succeed; `WARNING` can be resolved by acknowledging warnings at submit-time.
          - `type` 'failed', required
  - BusinessComplianceReviewResponse
    - `id` string, uuid, required — Unique review ID
    - `tier` 'US_STANDARD' | 'FULL', required — The tier this review is for.
    - `type` 'business', required
    - `status` union, required — Current status of the compliance review.
      - object — The review has been created and is awaiting attestation uploads.
        - `type` 'draft', required
      - object — The review has been submitted and attestations have been validated. Verification processing will begin shortly.
        - `submittedAt` string, required — ISO 8601 timestamp when the review was submitted.
        - `type` 'submitted', required
      - object — Submission validations are currently running against the submitted review.
        - `type` 'validatingSubmission', required
      - object — One or more submission validations failed for the submitted review.
        - `failures` ComplianceReviewSubmissionValidationFailure[], required — The set of failures recorded by the most recent submit attempt. Always non-empty when the review is in this status.
          - `failureDescription` string, required — Human-readable description of the failure.
          - `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', required — The kind of failure.
        - `type` 'submissionValidationsFailed', required
      - object — The review is currently being evaluated.
        - `submittedAt` string, required — ISO 8601 timestamp when the review was submitted.
        - `type` 'inReview', required
      - object — Additional information is required before the review can proceed.
        - `type` 'additionalInformationRequested', required
      - object — The compliance review has been approved. The organization has been granted the requested KYC tier.
        - `approvedAt` string, required — ISO 8601 timestamp when the review was approved.
        - `submittedAt` string, required — ISO 8601 timestamp when the review was submitted.
        - `type` 'approved', required
      - object — The compliance review was rejected. See rejectionDescription for the reason.
        - `rejectedAt` string, required — ISO 8601 timestamp when the review was rejected.
        - `rejectionDescription` string, required — Description of why the compliance review was rejected.
        - `submittedAt` string, required — ISO 8601 timestamp when the review was submitted.
        - `type` 'rejected', required
      - object — An error occurred while processing the review. The organization may need to create a new review.
        - `errorDescription` string, required — Description of the error that occurred during processing.
        - `submittedAt` string, required — ISO 8601 timestamp when the review was submitted.
        - `type` 'error', required
    - `createdAt` string, required — ISO 8601 timestamp when the review was created.
    - `requiredAttestations` AttestationRequirement[], required — Attestation types required to submit this review.
      - `attestationType` 'individualPersonalInfoLight' | 'individualPersonalInfo' | 'individualContactInfo' | 'individualResidentialAddress' | 'individualIdentityDocument' | 'individualFinancialInfo' | 'individualTaxInfo' | 'individualEeaInfo' | 'individualProofOfAddress' | 'individualSourceOfFunds' | 'individualSelfiePhoto' | 'businessIdentification' | 'businessTaxInfo' | 'businessAddress' | 'businessContactInfo' | 'businessDetails' | 'businessOperations' | 'businessFinancialInfo' | 'businessFormationDocuments' | 'businessUboOwnershipDocuments' | 'businessProofOfAddressDocuments' | 'businessFlowOfFundsDocument' | 'businessAssociatedPersons', required — Attestation type required to submit the compliance review.
    - `uploadedAttestations` AttestationSummary[], required — Attestations already uploaded for this review.
      - `attestationType` 'individualPersonalInfoLight' | 'individualPersonalInfo' | 'individualContactInfo' | 'individualResidentialAddress' | 'individualIdentityDocument' | 'individualFinancialInfo' | 'individualTaxInfo' | 'individualEeaInfo' | 'individualProofOfAddress' | 'individualSourceOfFunds' | 'individualSelfiePhoto' | 'businessIdentification' | 'businessTaxInfo' | 'businessAddress' | 'businessContactInfo' | 'businessDetails' | 'businessOperations' | 'businessFinancialInfo' | 'businessFormationDocuments' | 'businessUboOwnershipDocuments' | 'businessProofOfAddressDocuments' | 'businessFlowOfFundsDocument' | 'businessAssociatedPersons', required — Which attestation this summary refers to.
      - `id` string, uuid, required — Unique attestation ID
      - `validationStatus` union, required — Validations lifecycle state for this attestation.
        - AttestationValidationStatusPending — Validations in progress.
          - `type` 'pending', required
        - AttestationValidationStatusApproved — Attestation passed validations.
          - `type` 'approved', required
        - AttestationValidationStatusFailed — Attestation failed validations.
          - `failures` AttestationValidationFailure[], required — Information about the failed validations for this attestation.
            - `failureCode` 'INCORRECT_DOCUMENT' | 'POOR_QUALITY' | 'MISSING_INFORMATION' | 'INCONSISTENT_DATA' | 'EXPIRED_DOCUMENT' | 'OTHER', required — A reason the validation failed.
            - `severity` 'BLOCKING' | 'WARNING', required — `BLOCKING` must be addressed before submit can succeed; `WARNING` can be resolved by acknowledging warnings at submit-time.
          - `type` 'failed', required
    - `associatedPersons` AssociatedPersonResource[], required — Associated persons (beneficial owners and the control person) for this business review. Up to four beneficial owners plus one control person, who may be the same individual as one of the beneficial owners.
      - `associatedPersonId` string, uuid, required — Associated person UUID.
      - `relationships` string[], required — The relationship(s) of this associated person to the business. A person can be both a beneficial owner and a control person.
      - `createdAt` string, required — ISO 8601 timestamp when the associated person was created.
      - `updatedAt` string, required — ISO 8601 timestamp when the associated person was last updated.
      - `requiredAttestations` AssociatedPersonAttestationRequirement[] — Attestation types this associated person still needs before the review can be submitted.
        - `attestationType` 'associatedPersonPersonalInfo' | 'associatedPersonContactInfo' | 'associatedPersonResidentialAddress' | 'associatedPersonTaxInfo' | 'associatedPersonIdentityDocument' | 'associatedPersonProofOfAddress' | 'associatedPersonEeaInfo' | 'associatedPersonProofOfSignatoryAuthority', required — Associated person attestation type required before submitting the compliance review.
      - `uploadedAttestations` AssociatedPersonAttestationSummary[], required — Attestations uploaded for this associated person.
        - `attestationType` 'associatedPersonPersonalInfo' | 'associatedPersonContactInfo' | 'associatedPersonResidentialAddress' | 'associatedPersonTaxInfo' | 'associatedPersonIdentityDocument' | 'associatedPersonProofOfAddress' | 'associatedPersonEeaInfo' | 'associatedPersonProofOfSignatoryAuthority', required — Which associated person attestation this summary refers to.
        - `id` string, uuid, required — Unique attestation ID
        - `validationStatus` union, required — Validations lifecycle state for this attestation.
          - AttestationValidationStatusPending — Validations in progress.
            - `type` 'pending', required
          - AttestationValidationStatusApproved — Attestation passed validations.
            - `type` 'approved', required
          - AttestationValidationStatusFailed — Attestation failed validations.
            - `failures` AttestationValidationFailure[], required — Information about the failed validations for this attestation.
              - …
            - `type` 'failed', required

## Other responses

- `400` — The request body is malformed for the requested target state.
- `401` — `organizationId` is not a child of the parent that owns the API key.
- `403` — Not available in production.
- `404` — No compliance review with that id exists for the organization.
- `409` — The transition is invalid from the review's current state.

---

[API](https://skmtc.net/muralpay/apis/mural-api.md) · [All operations](https://skmtc.net/muralpay/apis/mural-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/muralpay/mural-api/versions/437d277f5948/schema)
