---
title: "Sandbox simulations (bank transfers, VAN transfers, or customer verification directives)"
method: POST
path: "/sandbox-simulations"
tags: ["sandbox simulations"]
---

# Sandbox simulations (bank transfers, VAN transfers, or customer verification directives)

`POST /sandbox-simulations`

Sandbox-only endpoint with three modes:

**Simulate bank transfer processing** — Omit the body or send an empty JSON object. Processes or fails
the last 500 bank transfers on the authorized application or Sandbox account (and initiated micro-deposits).
If webhooks are configured, events are delivered. If a bank-to-bank transaction involves two users,
call this twice to process debit and credit sides. Returns **200** with a HAL document including `total`.

**Simulate VAN (virtual) transfers** — Send a JSON body with `type` set to `virtual` and a `transfers`
array (up to 10 items). External transfers are created and processed immediately. Returns **202 Accepted**.

**Simulate verification directives** — For a business Verified Customer in **`retry`** or **`document`**
status, send `type`: `customer-verification`, `_links.customer.href` pointing at that customer, and
`errorCode` set to one of: `PersonalIDRequired`, `POBoxNotAllowed`, `AddressNotAssociatedWithBusiness`,
`EINDocumentRequired`. Returns **200** with HAL `_links.self` and `errorCode`. Then **GET** the Customer;
the same code appears in `_embedded.errors` for end-to-end testing.

## Headers

- `Accept` 'application/vnd.dwolla.v1.hal+json', required

## Response `200`

Success. **Bank transfer processing** returns HAL with `total`. **Customer verification directives**
return HAL `_links.self` and `errorCode` (retrieve the Customer for `_embedded.errors`).

## Other responses

- `202` — Accepted. Virtual (VAN) transfer simulation: requested transfers were accepted for immediate processing in Sandbox.
- `400` — Bad Request.
- `401` — unauthorized
- `403` — forbidden

## Changes

- **2026-03-26** `0e13062ae3be` — 3 breaking, 3 info
  - the request's body type/format changed from `object`/`` to ``/``
  - added `#/components/schemas/SandboxSimulationBankProcessingResponse, #/components/schemas/SandboxSimulationCustomerVerificationResponse` to the response body `oneOf` list for the response status `200`
  - the response's body type/format changed from `object`/`` to ``/`` for status `200`
  - added `#/components/schemas/SandboxSimulationVirtualAccountTransfersRequest, #/components/schemas/SandboxSimulationCustomerVerificationRequest, #/components/schemas/SandboxSimulationBankProcessingRequest` to the request body `oneOf` list
  - …2 more
- **2025-10-30** `a62579d8e801` — 1 breaking
  - added the new required `header` request parameter `Accept`
- **2025-10-30** `a3965fc5587c` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/dwolla/apis/dwolla-api/changes/sandbox-simulations/post.md)

---

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