---
title: "Create a test clock"
method: POST
path: "/sandbox/transfer/test_clock/create"
tags: ["plaid"]
---

# Create a test clock

`POST /sandbox/transfer/test_clock/create`

Use the `/sandbox/transfer/test_clock/create` endpoint to create a `test_clock` in the Sandbox environment.

A test clock object represents an independent timeline and has a `virtual_time` field indicating the current timestamp of the timeline. Test clocks are used for testing recurring transfers in Sandbox.

A test clock can be associated with up to 5 recurring transfers.

## Request body

- SandboxTransferTestClockCreateRequest — Defines the request schema for `/sandbox/transfer/test_clock/create`
  - `client_id` string — Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
  - `secret` string — Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
  - `virtual_time` string, date-time, nullable — The virtual timestamp on the test clock. If not provided, the current timestamp will be used. This will be of the form `2006-01-02T15:04:05Z`.

## Response `200`

OK

- SandboxTransferTestClockCreateResponse — Defines the response schema for `/sandbox/transfer/test_clock/create`
  - `test_clock` TransferTestClock, required — Defines the test clock for a transfer.
    - `test_clock_id` string, required — Plaid's unique identifier for a test clock. This field is only populated in the Sandbox environment, and only if a `test_clock_id` was included in the `/transfer/recurring/create` request. For more details, see [Simulating recurring transfers](https://plaid.com/docs/transfer/sandbox/#simulating-recurring-transfers).
    - `virtual_time` string, date-time, required — The virtual timestamp on the test clock. This will be of the form `2006-01-02T15:04:05Z`.
  - `request_id` string, required — A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.

## Other responses

- `default` — Error response

## Changes

> 52 revisions in range; 1 could not be searched.

- **2026-07-22** `a1bbca018160` — 13 warning
  - added the new `ASSETS_ERROR` enum value to the `error_type` response property for the response status `default`
  - added the new `CRA_MONITORING_ERROR` enum value to the `error_type` response property for the response status `default`
  - added the new `CREDIT_PROFILE_REPORT_ERROR` enum value to the `error_type` response property for the response status `default`
  - added the new `ENCOMPASS_ERROR` enum value to the `error_type` response property for the response status `default`
  - …9 more
- **2026-06-25** `80d23bfdc2e5` — 1 warning
  - added the new `IDEMPOTENCY_ERROR` enum value to the `error_type` response property for the response status `default`
- **2026-06-10** `fb8c3f188d8b` — 1 warning
  - added the new `BASE_REPORT_ERROR` enum value to the `error_type` response property for the response status `default`
- **2025-12-11** `465584b48c99` — 2 info
  - added the optional property `provided_account_subtypes` to the response with the `default` status
  - added the optional property `required_account_subtypes` to the response with the `default` status
- **2025-11-19** `4abee1c56929` — 1 info
  - removed the `IDENTITY_ERROR` enum value from the `error_type` response property for the response status `default`

[Full history](https://skmtc.dev/plaid/apis/the-plaid-api/changes/sandbox/transfer/test_clock/create/post.md)

---

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