Simulate the compliance verdict on a sandbox application
Drives an in-flight sandbox application to a deterministic compliance verdict. outcome: "approved" flips the application to APPROVED, activates the resource it produces (customer, organization, virtual account, wallet), and fires the matching *.approved event. outcome: "rejected" flips the application to REJECTED and fires the matching *.rejected event. The application response then carries failureMessage, failureCode (“compliance_denied” when the application carries a failed compliance verdict, otherwise “rejected_by_ops”), and resubmittable (false only on a compliance denial) — the same fields production emits, so either rejection branch can be exercised end to end here. On rejected, the optional body shapes the rejection: free-text { reason } surfaces verbatim as the application’s failureMessage, unless the application carries a failed compliance verdict, in which case the reason is suppressed and replaced with a generic contact-support message; structured { category, field? } selects a canonical user-facing summary that appears on failureMessage. Categories: DOCUMENT_MISMATCH (optional field: TAX_ID, DATE_OF_INCORPORATION, BUSINESS_NAME, BUSINESS_ENTITY_ID); DATA_SOURCING_MISMATCH (optional field: BUSINESS_ENTITY_ID, UBO_FIRST_NAME, UBO_LAST_NAME, UBO_PHONE, UBO_EMAIL, OWNERSHIP_LIST); COMPLIANCE; GENERIC (accepts an optional free-text reason). category is only applicable to KYB-pipeline applications; other application types yield 422 REJECTION_CATEGORY_NOT_APPLICABLE. A CANCELLED application can still be decided through this call — that recovers a prior simulate call that cancelled the workflow but failed to write its own terminal status. An APPROVED or REJECTED application cannot be re-decided (409 APPLICATION_ALREADY_DECIDED). The response is the application resource at its new state. Caller’s API key must own the application.
Authorizations
Path Parameters
"app_1A2b3C4d5E6f7G8h9I0jKl"
Body
Decision to force onto the application. approved activates the resource it produces; rejected records a rejection.
approved, rejected Free-text rejection reason. Valid on the free-text branch ({ outcome: "rejected", reason }) and on category: GENERIC. Persisted verbatim to rejectionReason.
500Structured rejection category. Selects a specific user-facing summary. Mutually exclusive with a bare reason on non-GENERIC branches.
document_mismatch, data_sourcing_mismatch, compliance, generic Optional field hint. Requires category; sending field without category yields 400 VALIDATION_ERROR. Accepted by DOCUMENT_MISMATCH (TAX_ID / DATE_OF_INCORPORATION / BUSINESS_NAME / BUSINESS_ENTITY_ID) and DATA_SOURCING_MISMATCH (BUSINESS_ENTITY_ID / UBO_FIRST_NAME / UBO_LAST_NAME / UBO_PHONE / UBO_EMAIL / OWNERSHIP_LIST). Ignored on other categories and on the free-text branch.
Response
The application at its new terminal state
- Option 1
- Option 2
- Option 3
- Option 4
Unique application identifier
^app_[0-9A-Za-z]{22}$Current lifecycle status of the application
pending, processing, approved, rejected, cancelled "pending"
Timestamp when the application was created
"2026-01-15T09:30:00.000Z"
Timestamp when the application was last modified
"2026-01-15T09:30:00.000Z"
customer_onboarding Client-provided identifier for cross-referencing. Omitted when the client did not supply one. 1-255 characters from A-Za-z, 0-9, underscore, hyphen, colon, and period — no spaces.
^[A-Za-z0-9_\-:.]{1,255}$"ext-12345"
Timestamp when the application was submitted for review. Omitted while still in progress.
"2026-01-15T09:30:00.000Z"
Machine-readable failure code on rejected applications. Omitted on non-rejected applications.
rejected_by_ops, compliance_denied Customer-facing failure message accompanying failureCode. Omitted on non-rejected applications.
Whether a corrected application will be considered. true: correct the data and submit a fresh application. false: the decision is final, do not resubmit. Omitted on non-rejected applications.
Customer this onboarding application produced. Omitted while the application is still being reviewed; present after approval persists the customer row.
^cus_[0-9A-Za-z]{22}$People declared on the submission (beneficial owners and controlling persons), in submit order. Omitted before the application carries a submission.