Plaid logo
Docs
ALL DOCS

API

  • Overview
  • Libraries
  • API versioning
  • Postman Collection
  • Webhooks
Product API reference
  • Transactions
  • Auth
  • Balance
  • Identity
  • Assets
  • Investments
  • Liabilities
  • Payment Initiation
  • Virtual Accounts
  • Transfer
  • Income
  • Identity Verification
  • Monitor
  • Beacon
  • Signal
  • Enrich
  • Statements (beta)
Other API reference
  • Item endpoints and webhooks
  • Account endpoints and schemas
  • Institution endpoints
  • Token flow and endpoints
  • Processor token endpoints
  • Sandbox endpoints
  • Processor partner endpoints
  • Reseller partner endpoints
Plaid logo
Docs
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about the Plaid API. Try asking questions like:
    Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.
    Plaid.com
    Log in
    Get API Keys
    Open nav

    Sandbox endpoints

    API reference for Sandbox endpoints

    Introduction

    Plaid's Sandbox environment provides a number of endpoints that can be used to configure testing scenarios. These endpoints are unique to the Sandbox environment and cannot be used in Development or Production. For more information on these endpoints, see Sandbox.

    In this section
    /sandbox/public_token/createBypass the Link flow for creating an Item
    /sandbox/processor_token/createBypass the Link flow for creating an Item for a processor partner
    /sandbox/item/reset_loginTrigger the ITEM_LOGIN_REQUIRED state for an Item
    /sandbox/item/fire_webhookFire a specific webhook
    /sandbox/item/set_verification_status(Auth) Set a verification status for testing micro-deposits
    /sandbox/transfer/fire_webhook(Transfer) Fire a specific webhook
    /sandbox/transfer/ledger/deposit/simulate(Transfer) Simulate a deposit sweep event
    /sandbox/transfer/ledger/simulate_available(Transfer) Simulate converting pending balance into available balance
    /sandbox/transfer/ledger/withdraw/simulate(Transfer) Simulate a withdraw sweep event
    /sandbox/transfer/simulate(Transfer) Simulate a transfer event
    /sandbox/transfer/refund/simulate(Transfer) Simulate a refund event
    /sandbox/transfer/sweep/simulate(Transfer) Simulate a transfer sweep event
    /sandbox/transfer/test_clock/create(Transfer) Create a test clock for testing recurring transfers
    /sandbox/transfer/test_clock/advance(Transfer) Advance the time on a test clock
    /sandbox/transfer/test_clock/get(Transfer) Get details about a test clock
    /sandbox/transfer/test_clock/list(Transfer) Get details about all test clocks
    /sandbox/income/fire_webhook(Income) Fire a specific webhook

    /sandbox/public_token/create

    Create a test Item

    Use the /sandbox/public_token/create endpoint to create a valid public_token for an arbitrary institution ID, initial products, and test credentials. The created public_token maps to a new Sandbox Item. You can then call /item/public_token/exchange to exchange the public_token for an access_token and perform all API actions. /sandbox/public_token/create can also be used with the user_custom test username to generate a test account with custom data. /sandbox/public_token/create cannot be used with OAuth institutions.

    sandbox/public_token/create

    Request fields and example

    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.
    institution_id
    requiredstring
    The ID of the institution the Item will be associated with
    initial_products
    required[string]
    The products to initially pull for the Item. May be any products that the specified institution_id supports. This array may not be empty.

    Min items: 1
    Possible values: assets, auth, balance, employment, identity, income_verification, identity_verification, investments, liabilities, payment_initiation, standing_orders, statements, transactions, transfer
    options
    object
    An optional set of options to be used when configuring the Item. If specified, must not be null.
    webhook
    string
    Specify a webhook to associate with the new Item.
    override_username
    string
    Test username to use for the creation of the Sandbox Item. Default value is user_good.

    Default: user_good
    override_password
    string
    Test password to use for the creation of the Sandbox Item. Default value is pass_good.

    Default: pass_good
    transactions
    object
    An optional set of parameters corresponding to transactions options.
    start_date
    string
    The earliest date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.

    Format: date
    end_date
    string
    The most recent date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.

    Format: date
    income_verification
    object
    A set of parameters for income verification options. This field is required if income_verification is included in the initial_products array.
    income_source_types
    [string]
    The types of source income data that users will be permitted to share. Options include bank and payroll. Currently you can only specify one of these options.

    Possible values: bank, payroll
    bank_income
    object
    Specifies options for Bank Income. This field is required if income_verification is included in the initial_products array and bank is specified in income_source_types.
    days_requested
    integer
    The number of days of data to request for the Bank Income product
    user_token
    string
    The user token associated with the User data is being requested for.
    Select group for content switcher
    Select Language
    1const publicTokenRequest: SandboxPublicTokenCreateRequest = {
    2 institution_id: institutionID,
    3 initial_products: initialProducts,
    4};
    5try {
    6 const publicTokenResponse = await client.sandboxPublicTokenCreate(
    7 publicTokenRequest,
    8 );
    9 const publicToken = publicTokenResponse.data.public_token;
    10 // The generated public_token can now be exchanged
    11 // for an access_token
    12 const exchangeRequest: ItemPublicTokenExchangeRequest = {
    13 public_token: publicToken,
    14 };
    15 const exchangeTokenResponse = await client.itemPublicTokenExchange(
    16 exchangeRequest,
    17 );
    18 const accessToken = exchangeTokenResponse.data.access_token;
    19} catch (error) {
    20 // handle error
    21}
    sandbox/public_token/create

    Response fields and example

    public_token
    string
    A public token that can be exchanged for an access token using /item/public_token/exchange
    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "public_token": "public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d",
    3 "request_id": "Aim3b"
    4}
    Was this helpful?

    /sandbox/processor_token/create

    Create a test Item and processor token

    Use the /sandbox/processor_token/create endpoint to create a valid processor_token for an arbitrary institution ID and test credentials. The created processor_token corresponds to a new Sandbox Item. You can then use this processor_token with the /processor/ API endpoints in Sandbox. You can also use /sandbox/processor_token/create with the user_custom test username to generate a test account with custom data.

    sandbox/processor_token/create

    Request fields and example

    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.
    institution_id
    requiredstring
    The ID of the institution the Item will be associated with
    options
    object
    An optional set of options to be used when configuring the Item. If specified, must not be null.
    override_username
    string
    Test username to use for the creation of the Sandbox Item. Default value is user_good.

    Default: user_good
    override_password
    string
    Test password to use for the creation of the Sandbox Item. Default value is pass_good.

    Default: pass_good
    Select group for content switcher
    Select Language
    1const request: SandboxProcessorTokenCreateRequest = {
    2 institution_id: institutionID,
    3};
    4try {
    5 const response = await plaidClient.sandboxProcessorTokenCreate(request);
    6 const processorToken = response.data.processor_token;
    7} catch (error) {
    8 // handle error
    9}
    sandbox/processor_token/create

    Response fields and example

    processor_token
    string
    A processor token that can be used to call the /processor/ endpoints.
    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "processor_token": "processor-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d",
    3 "request_id": "Aim3b"
    4}
    Was this helpful?

    /sandbox/item/reset_login

    Force a Sandbox Item into an error state

    /sandbox/item/reset_login/ forces an Item into an ITEM_LOGIN_REQUIRED state in order to simulate an Item whose login is no longer valid. This makes it easy to test Link's update mode flow in the Sandbox environment. After calling /sandbox/item/reset_login, You can then use Plaid Link update mode to restore the Item to a good state. An ITEM_LOGIN_REQUIRED webhook will also be fired after a call to this endpoint, if one is associated with the Item.
    In the Sandbox, Items will transition to an ITEM_LOGIN_REQUIRED error state automatically after 30 days, even if this endpoint is not called.

    sandbox/item/reset_login

    Request fields and example

    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.
    access_token
    requiredstring
    The access token associated with the Item data is being requested for.
    Select group for content switcher
    Select Language
    1const request: SandboxItemResetLoginRequest = {
    2 access_token: accessToken,
    3};
    4try {
    5 const response = await plaidClient.sandboxItemResetLogin(request);
    6 // create a public_token for the Item and use it to
    7 // initialize Link in update mode.
    8 const pt_request: itemPublicTokenCreateRequest = {
    9 access_token: accessToken,
    10 };
    11 const pt_response = await plaidClient.itemCreatePublicToken(pt_request);
    12 const publicToken = pt_response.public_token;
    13} catch (error) {
    14 // handle error
    15}
    sandbox/item/reset_login

    Response fields and example

    reset_login
    boolean
    true if the call succeeded
    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "reset_login": true,
    3 "request_id": "m8MDnv9okwxFNBV"
    4}
    Was this helpful?

    /sandbox/item/fire_webhook

    Fire a test webhook

    The /sandbox/item/fire_webhook endpoint is used to test that code correctly handles webhooks. This endpoint can trigger the following webhooks:
    DEFAULT_UPDATE: Transactions update webhook to be fired for a given Sandbox Item. If the Item does not support Transactions, a SANDBOX_PRODUCT_NOT_ENABLED error will result.
    NEW_ACCOUNTS_AVAILABLE: Webhook to be fired for a given Sandbox Item created with Account Select v2.
    AUTH_DATA_UPDATE: Webhook to be fired for a given Sandbox Item created with Auth as an enabled product.
    LOGIN_REPAIRED: Fired when an Item recovers from the ITEM_LOGIN_REQUIRED without the user going through update mode in your app.
    RECURRING_TRANSACTIONS_UPDATE: Recurring Transactions webhook to be fired for a given Sandbox Item. If the Item does not support Recurring Transactions, a SANDBOX_PRODUCT_NOT_ENABLED error will result.
    SYNC_UPDATES_AVAILABLE: Transactions webhook to be fired for a given Sandbox Item. If the Item does not support Transactions, a SANDBOX_PRODUCT_NOT_ENABLED error will result.
    PRODUCT_READY: Assets webhook to be fired when a given asset report has been successfully generated. If the Item does not support Assets, a SANDBOX_PRODUCT_NOT_ENABLED error will result.
    ERROR: Assets webhook to be fired when asset report generation has failed. If the Item does not support Assets, a SANDBOX_PRODUCT_NOT_ENABLED error will result.
    Note that this endpoint is provided for developer ease-of-use and is not required for testing webhooks; webhooks will also fire in Sandbox under the same conditions that they would in Production or Development (except for webhooks of type TRANSFER).

    sandbox/item/fire_webhook

    Request fields and example

    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.
    access_token
    requiredstring
    The access token associated with the Item data is being requested for.
    webhook_type
    string
    The webhook types that can be fired by this test endpoint.

    Possible values: AUTH, HOLDINGS, INVESTMENTS_TRANSACTIONS, ITEM, LIABILITIES, TRANSACTIONS, ASSETS
    webhook_code
    requiredstring
    The webhook codes that can be fired by this test endpoint.

    Possible values: DEFAULT_UPDATE, NEW_ACCOUNTS_AVAILABLE, AUTH_DATA_UPDATE, AUTHORIZATION_GRANTED, RECURRING_TRANSACTIONS_UPDATE, SYNC_UPDATES_AVAILABLE, PRODUCT_READY, ERROR
    Select group for content switcher
    Select Language
    1// Fire a DEFAULT_UPDATE webhook for an Item
    2const request: SandboxItemFireWebhookRequest = {
    3 access_token: accessToken
    4 webhook_code: 'DEFAULT_UPDATE'
    5};
    6try {
    7 const response = await plaidClient.sandboxItemFireWebhook(request);
    8} catch (error) {
    9 // handle error
    10}
    sandbox/item/fire_webhook

    Response fields and example

    webhook_fired
    boolean
    Value is true if the test webhook_code was successfully fired.
    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "webhook_fired": true,
    3 "request_id": "1vwmF5TBQwiqfwP"
    4}
    Was this helpful?

    /sandbox/item/set_verification_status

    Set verification status for Sandbox account

    The /sandbox/item/set_verification_status endpoint can be used to change the verification status of an Item in in the Sandbox in order to simulate the Automated Micro-deposit flow.
    For more information on testing Automated Micro-deposits in Sandbox, see Auth full coverage testing.

    sandbox/item/set_verification_status

    Request fields and example

    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.
    access_token
    requiredstring
    The access token associated with the Item data is being requested for.
    account_id
    requiredstring
    The account_id of the account whose verification status is to be modified
    verification_status
    requiredstring
    The verification status to set the account to.

    Possible values: automatically_verified, verification_expired
    Select group for content switcher
    Select Language
    1const request: SandboxItemSetVerificationStatusRequest = {
    2 access_token: accessToken,
    3 account_id: accountID,
    4 verification_status: 'automatically_verified',
    5};
    6try {
    7 const response = await plaidClient.sandboxItemSetVerificationStatus(request);
    8} catch (error) {
    9 // handle error
    10}
    sandbox/item/set_verification_status

    Response fields and example

    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "1vwmF5TBQwiqfwP"
    3}
    Was this helpful?

    /sandbox/transfer/fire_webhook

    Manually fire a Transfer webhook

    Use the /sandbox/transfer/fire_webhook endpoint to manually trigger a TRANSFER_EVENTS_UPDATE webhook in the Sandbox environment.

    sandbox/transfer/fire_webhook

    Request fields and example

    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.
    webhook
    requiredstring
    The URL to which the webhook should be sent.
    Select Language
    1const request: SandboxTransferFireWebhookRequest = {
    2 webhook: 'https://www.example.com',
    3};
    4try {
    5 const response = await plaidClient.sandboxTransferFireWebhook(request);
    6 // empty response upon success
    7} catch (error) {
    8 // handle error
    9}
    sandbox/transfer/fire_webhook

    Response fields and example

    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "mdqfuVxeoza6mhu"
    3}
    Was this helpful?

    /sandbox/transfer/simulate

    Simulate a transfer event in Sandbox

    Use the /sandbox/transfer/simulate endpoint to simulate a transfer event in the Sandbox environment. Note that while an event will be simulated and will appear when using endpoints such as /transfer/event/sync or /transfer/event/list, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.

    sandbox/transfer/simulate

    Request fields and example

    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.
    transfer_id
    requiredstring
    Plaid’s unique identifier for a transfer.
    test_clock_id
    string
    Plaid’s unique identifier for a test clock. If provided, the event to be simulated is created at the virtual_time on the provided test_clock.
    event_type
    requiredstring
    The asynchronous event to be simulated. May be: posted, settled, failed, or returned.
    An error will be returned if the event type is incompatible with the current transfer status. Compatible status --> event type transitions include:
    pending --> failed
    pending --> posted
    posted --> returned
    posted --> settled
    failure_reason
    object
    The failure reason if the event type for a transfer is "failed" or "returned". Null value otherwise.
    ach_return_code
    string
    The ACH return code, e.g. R01. A return code will be provided if and only if the transfer status is returned. For a full listing of ACH return codes, see Transfer errors.
    description
    string
    A human-readable description of the reason for the failure or reversal.
    Select Language
    1const request: SandboxTransferSimulateRequest = {
    2 transfer_id,
    3 event_type: 'posted',
    4 failure_reason: failureReason,
    5};
    6try {
    7 const response = await plaidClient.sandboxTransferSimulate(request);
    8 // empty response upon success
    9} catch (error) {
    10 // handle error
    11}
    sandbox/transfer/simulate

    Response fields and example

    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "mdqfuVxeoza6mhu"
    3}
    Was this helpful?

    /sandbox/transfer/refund/simulate

    Simulate a refund event in Sandbox

    Use the /sandbox/transfer/refund/simulate endpoint to simulate a refund event in the Sandbox environment. Note that while an event will be simulated and will appear when using endpoints such as /transfer/event/sync or /transfer/event/list, no transactions will actually take place and funds will not move between accounts, even within the Sandbox.

    sandbox/transfer/refund/simulate

    Request fields and example

    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.
    refund_id
    requiredstring
    Plaid’s unique identifier for a refund.
    test_clock_id
    string
    Plaid’s unique identifier for a test clock. If provided, the event to be simulated is created at the virtual_time on the provided test_clock.
    event_type
    requiredstring
    The asynchronous event to be simulated. May be: refund.posted, refund.settled, refund.failed, or refund.returned.
    An error will be returned if the event type is incompatible with the current refund status. Compatible status --> event type transitions include:
    refund.pending --> refund.failed
    refund.pending --> refund.posted
    refund.posted --> refund.returned
    refund.posted --> refund.settled
    refund.posted events can only be simulated if the refunded transfer has been transitioned to settled. This mimics the ordering of events in Production.
    failure_reason
    object
    The failure reason if the event type for a transfer is "failed" or "returned". Null value otherwise.
    ach_return_code
    string
    The ACH return code, e.g. R01. A return code will be provided if and only if the transfer status is returned. For a full listing of ACH return codes, see Transfer errors.
    description
    string
    A human-readable description of the reason for the failure or reversal.
    Select Language
    1const request: SandboxTransferRefundSimulateRequest = {
    2 refund_id: refundId,
    3 event_type: 'refund.posted',
    4};
    5try {
    6 const response = await plaidClient.sandboxTransferRefundSimulate(request);
    7 // empty response upon success
    8} catch (error) {
    9 // handle error
    10}
    sandbox/transfer/refund/simulate

    Response fields and example

    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "mdqfuVxeoza6mhu"
    3}
    Was this helpful?

    /sandbox/transfer/sweep/simulate

    Simulate creating a sweep

    Use the /sandbox/transfer/sweep/simulate endpoint to create a sweep and associated events in the Sandbox environment. Upon calling this endpoint, all transfers with a sweep status of swept will become swept_settled, all posted or pending transfers with a sweep status of unswept will become swept, and all returned transfers with a sweep status of swept will become return_swept.

    sandbox/transfer/sweep/simulate

    Request fields and example

    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.
    test_clock_id
    string
    Plaid’s unique identifier for a test clock. If provided, the sweep to be simulated is created on the day of the virtual_time on the test_clock. If the date of virtual_time is on weekend or a federal holiday, the next available banking day is used.
    Select Language
    1try {
    2 const response = await plaidClient.sandboxTransferSweepSimulate({});
    3 const sweep = response.data.sweep;
    4} catch (error) {
    5 // handle error
    6}
    sandbox/transfer/sweep/simulate

    Response fields and example

    sweep
    nullableobject
    Describes a sweep of funds to / from the sweep account.
    A sweep is associated with many sweep events (events of type swept or return_swept) which can be retrieved by invoking the /transfer/event/list endpoint with the corresponding sweep_id.
    swept events occur when the transfer amount is credited or debited from your sweep account, depending on the type of the transfer. return_swept events occur when a transfer is returned and Plaid undoes the credit or debit.
    The total sum of the swept and return_swept events is equal to the amount of the sweep Plaid creates and matches the amount of the entry on your sweep account ledger.
    id
    string
    Identifier of the sweep.
    funding_account_id
    string
    The id of the funding account to use, available in the Plaid Dashboard. This determines which of your business checking accounts will be credited or debited.
    created
    string
    The datetime when the sweep occurred, in RFC 3339 format.

    Format: date-time
    amount
    string
    Signed decimal amount of the sweep as it appears on your sweep account ledger (e.g. "-10.00")
    If amount is not present, the sweep was net-settled to zero and outstanding debits and credits between the sweep account and Plaid are balanced.
    iso_currency_code
    string
    The currency of the sweep, e.g. "USD".
    settled
    nullablestring
    The date when the sweep settled, in the YYYY-MM-DD format.

    Format: date
    status
    nullablestring
    The status of a sweep transfer
    "pending" - The sweep is currently pending "posted" - The sweep has been posted "settled" - The sweep has settled "returned" - The sweep has been returned "failed" - The sweep has failed


    Possible values: pending, posted, settled, returned, failed, null
    trigger
    nullablestring
    The trigger of the sweep
    "manual" - The sweep is created manually by the customer "incoming" - The sweep is created by incoming funds flow (e.g. Incoming Wire) "balance_threshold" - The sweep is created by balance threshold setting "automatic_aggregate" - The sweep is created by the Plaid automatic aggregation process. These funds did not pass through the Plaid Ledger balance.


    Possible values: manual, incoming, balance_threshold, automatic_aggregate
    description
    string
    The description of the deposit that will be passed to the receiving bank (up to 10 characters). Note that banks utilize this field differently, and may or may not show it on the bank statement.
    network_trace_id
    nullablestring
    The trace identifier for the transfer based on its network. This will only be set after the transfer has posted.
    For ach or same-day-ach transfers, this is the ACH trace number. For wire transfers, this is the IMAD (Input Message Accountability Data) number. The field will remain null for transfers on other rails.
    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "sweep": {
    3 "id": "d5394a4d-0b04-4a02-9f4a-7ca5c0f52f9d",
    4 "funding_account_id": "8945fedc-e703-463d-86b1-dc0607b55460",
    5 "created": "2020-08-06T17:27:15Z",
    6 "amount": "12.34",
    7 "iso_currency_code": "USD",
    8 "settled": "2020-08-07",
    9 "network_trace_id": null
    10 },
    11 "request_id": "mdqfuVxeoza6mhu"
    12}
    Was this helpful?

    /sandbox/transfer/ledger/deposit/simulate

    Simulate a ledger deposit event in Sandbox

    Use the /sandbox/transfer/ledger/deposit/simulate endpoint to simulate a ledger deposit event in the Sandbox environment.

    sandbox/transfer/ledger/deposit/simulate

    Request fields and example

    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.
    sweep_id
    requiredstring
    Plaid’s unique identifier for a sweep.
    event_type
    requiredstring
    The asynchronous event to be simulated. May be: posted, settled, failed, or returned.
    An error will be returned if the event type is incompatible with the current ledger sweep status. Compatible status --> event type transitions include:
    sweep.pending --> sweep.posted
    sweep.pending --> sweep.failed
    sweep.posted --> sweep.settled
    sweep.posted --> sweep.returned
    sweep.settled --> sweep.returned


    Possible values: sweep.posted, sweep.settled, sweep.returned, sweep.failed
    failure_reason
    object
    The failure reason if the event type for a transfer is "failed" or "returned". Null value otherwise.
    ach_return_code
    string
    The ACH return code, e.g. R01. A return code will be provided if and only if the transfer status is returned. For a full listing of ACH return codes, see Transfer errors.
    description
    string
    A human-readable description of the reason for the failure or reversal.
    Select Language
    1const request: SandboxTransferLedgerDepositSimulateRequest = {
    2 sweep_id: 'f4ba7a287eae4d228d12331b68a9f35a',
    3 event_type: 'sweep.posted',
    4};
    5try {
    6 const response = await plaidClient.sandboxTransferLedgerDepositSimulate(
    7 request,
    8 );
    9 // empty response upon success
    10} catch (error) {
    11 // handle error
    12}
    sandbox/transfer/ledger/deposit/simulate

    Response fields and example

    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "mdqfuVxeoza6mhu"
    3}
    Was this helpful?

    /sandbox/transfer/ledger/simulate_available

    Simulate converting pending balance to available balance

    Use the /sandbox/transfer/ledger/simulate_available endpoint to simulate converting pending balance to available balance for all originators in the Sandbox environment.

    sandbox/transfer/ledger/simulate_available

    Request fields and example

    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.
    test_clock_id
    string
    Plaid’s unique identifier for a test clock. If provided, only the pending balance that is due before the virtual_timestamp on the test clock will be converted.
    Select Language
    1try {
    2 const response = await plaidClient.sandboxTransferLedgerSimulateAvailable({});
    3 const available = response.data.balance.available;
    4} catch (error) {
    5 // handle error
    6}
    sandbox/transfer/ledger/simulate_available

    Response fields and example

    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "mdqfuVxeoza6mhu"
    3}
    Was this helpful?

    /sandbox/transfer/ledger/withdraw/simulate

    Simulate a ledger withdraw event in Sandbox

    Use the /sandbox/transfer/ledger/withdraw/simulate endpoint to simulate a ledger withdraw event in the Sandbox environment.

    sandbox/transfer/ledger/withdraw/simulate

    Request fields and example

    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.
    sweep_id
    requiredstring
    Plaid’s unique identifier for a sweep.
    event_type
    requiredstring
    The asynchronous event to be simulated. May be: posted, settled, failed, or returned.
    An error will be returned if the event type is incompatible with the current ledger sweep status. Compatible status --> event type transitions include:
    sweep.pending --> sweep.posted
    sweep.pending --> sweep.failed
    sweep.posted --> sweep.settled
    sweep.posted --> sweep.returned
    sweep.settled --> sweep.returned


    Possible values: sweep.posted, sweep.settled, sweep.returned, sweep.failed
    failure_reason
    object
    The failure reason if the event type for a transfer is "failed" or "returned". Null value otherwise.
    ach_return_code
    string
    The ACH return code, e.g. R01. A return code will be provided if and only if the transfer status is returned. For a full listing of ACH return codes, see Transfer errors.
    description
    string
    A human-readable description of the reason for the failure or reversal.
    Select Language
    1const request: SandboxTransferLedgerWithdrawSimulateRequest = {
    2 sweep_id: 'f4ba7a287eae4d228d12331b68a9f35a',
    3 event_type: 'sweep.posted',
    4};
    5try {
    6 const response = await plaidClient.sandboxTransferLedgerWithdrawSimulate(
    7 request,
    8 );
    9 // empty response upon success
    10} catch (error) {
    11 // handle error
    12}
    sandbox/transfer/ledger/withdraw/simulate

    Response fields and example

    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "mdqfuVxeoza6mhu"
    3}
    Was this helpful?

    /sandbox/transfer/test_clock/create

    Create a test clock

    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.

    sandbox/transfer/test_clock/create

    Request fields and example

    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
    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.

    Format: date-time
    Select Language
    1const request: SandboxTransferTestClockCreateRequest = {
    2 virtual_time: '2006-01-02T15:04:05Z',
    3};
    4try {
    5 const response = await plaidClient.sandboxTransferTestClockCreate(request);
    6 const test_clock = response.data.test_clock;
    7} catch (error) {
    8 // handle error
    9}
    sandbox/transfer/test_clock/create

    Response fields and example

    test_clock
    object
    Defines the test clock for a transfer.
    test_clock_id
    string
    Plaid’s unique identifier for a test clock.
    virtual_time
    string
    The virtual timestamp on the test clock. This will be of the form 2006-01-02T15:04:05Z.

    Format: date-time
    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "test_clock": {
    3 "test_clock_id": "b33a6eda-5e97-5d64-244a-a9274110151c",
    4 "virtual_time": "2006-01-02T15:04:05Z"
    5 },
    6 "request_id": "mdqfuVxeoza6mhu"
    7}
    Was this helpful?

    /sandbox/transfer/test_clock/advance

    Advance a test clock

    Use the /sandbox/transfer/test_clock/advance endpoint to advance 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. A test clock can be advanced by incrementing virtual_time, but may never go back to a lower virtual_time.
    If a test clock is advanced, we will simulate the changes that ought to occur during the time that elapsed.
    For example, a client creates a weekly recurring transfer with a test clock set at t. When the client advances the test clock by setting virtual_time = t + 15 days, 2 new originations should be created, along with the webhook events.
    The advancement of the test clock from its current virtual_time should be limited such that there are no more than 20 originations resulting from the advance operation on each recurring_transfer associated with the test_clock.
    For example, if the recurring transfer associated with this test clock originates once every 4 weeks, you can advance the virtual_time up to 80 weeks on each API call.

    sandbox/transfer/test_clock/advance

    Request fields and example

    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.
    test_clock_id
    requiredstring
    Plaid’s unique identifier for a test clock.
    new_virtual_time
    requiredstring
    The virtual timestamp on the test clock. This will be of the form 2006-01-02T15:04:05Z.

    Format: date-time
    Select Language
    1const request: SandboxTransferTestClockAdvanceRequest = {
    2 test_clock_id: 'b33a6eda-5e97-5d64-244a-a9274110151c',
    3 new_virtual_time: '2006-01-02T15:04:05Z',
    4};
    5try {
    6 const response = await plaidClient.sandboxTransferTestClockAdvance(request);
    7} catch (error) {
    8 // handle error
    9}
    sandbox/transfer/test_clock/advance

    Response fields and example

    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "mdqfuVxeoza6mhu"
    3}
    Was this helpful?

    /sandbox/transfer/test_clock/get

    Get a test clock

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

    sandbox/transfer/test_clock/get

    Request fields and example

    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.
    test_clock_id
    requiredstring
    Plaid’s unique identifier for a test clock.
    Select Language
    1const request: SandboxTransferTestClockGetRequest = {
    2 test_clock_id: 'b33a6eda-5e97-5d64-244a-a9274110151c',
    3};
    4try {
    5 const response = await plaidClient.sandboxTransferTestClockGet(request);
    6 const test_clock = response.data.test_clock;
    7} catch (error) {
    8 // handle error
    9}
    sandbox/transfer/test_clock/get

    Response fields and example

    test_clock
    object
    Defines the test clock for a transfer.
    test_clock_id
    string
    Plaid’s unique identifier for a test clock.
    virtual_time
    string
    The virtual timestamp on the test clock. This will be of the form 2006-01-02T15:04:05Z.

    Format: date-time
    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "test_clock": {
    3 "test_clock_id": "b33a6eda-5e97-5d64-244a-a9274110151c",
    4 "virtual_time": "2006-01-02T15:04:05Z"
    5 },
    6 "request_id": "mdqfuVxeoza6mhu"
    7}
    Was this helpful?

    /sandbox/transfer/test_clock/list

    List test clocks

    Use the /sandbox/transfer/test_clock/list endpoint to see a list of all your test clocks in the Sandbox environment, by ascending virtual_time. Results are paginated; use the count and offset query parameters to retrieve the desired test clocks.

    sandbox/transfer/test_clock/list

    Request fields and example

    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.
    start_virtual_time
    string
    The start virtual timestamp of test clocks to return. This should be in RFC 3339 format (i.e. 2019-12-06T22:35:49Z)

    Format: date-time
    end_virtual_time
    string
    The end virtual timestamp of test clocks to return. This should be in RFC 3339 format (i.e. 2019-12-06T22:35:49Z)

    Format: date-time
    count
    integer
    The maximum number of test clocks to return.

    Minimum: 1
    Maximum: 25
    Default: 25
    offset
    integer
    The number of test clocks to skip before returning results.

    Default: 0
    Minimum: 0
    Select Language
    1const request: SandboxTransferTestClockListRequest = {
    2 count: 2,
    3};
    4try {
    5 const response = await plaidClient.sandboxTransferTestClockList(request);
    6 const test_clocks = response.data.test_clocks;
    7} catch (error) {
    8 // handle error
    9}
    sandbox/transfer/test_clock/list

    Response fields and example

    test_clocks
    [object]
    test_clock_id
    string
    Plaid’s unique identifier for a test clock.
    virtual_time
    string
    The virtual timestamp on the test clock. This will be of the form 2006-01-02T15:04:05Z.

    Format: date-time
    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "test_clocks": [
    3 {
    4 "test_clock_id": "b33a6eda-5e97-5d64-244a-a9274110151c",
    5 "virtual_time": "2006-01-02T15:04:05Z"
    6 },
    7 {
    8 "test_clock_id": "a33a6eda-5e97-5d64-244a-a9274110152d",
    9 "virtual_time": "2006-02-02T15:04:05Z"
    10 }
    11 ],
    12 "request_id": "mdqfuVxeoza6mhu"
    13}
    Was this helpful?

    /sandbox/income/fire_webhook

    Manually fire an Income webhook

    Use the /sandbox/income/fire_webhook endpoint to manually trigger a Payroll or Document Income webhook in the Sandbox environment.

    sandbox/income/fire_webhook

    Request fields and example

    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.
    item_id
    requiredstring
    The Item ID associated with the verification.
    user_id
    string
    The Plaid user_id of the User associated with this webhook, warning, or error.
    webhook
    requiredstring
    The URL to which the webhook should be sent.
    verification_status
    string
    VERIFICATION_STATUS_PROCESSING_COMPLETE: The income verification status processing has completed. If the user uploaded multiple documents, this webhook will fire when all documents have finished processing. Call the /income/verification/paystubs/get endpoint and check the document metadata to see which documents were successfully parsed.
    VERIFICATION_STATUS_PROCESSING_FAILED: A failure occurred when attempting to process the verification documentation.
    VERIFICATION_STATUS_PENDING_APPROVAL: (deprecated) The income verification has been sent to the user for review.


    Possible values: VERIFICATION_STATUS_PROCESSING_COMPLETE, VERIFICATION_STATUS_PROCESSING_FAILED, VERIFICATION_STATUS_PENDING_APPROVAL
    webhook_code
    requiredstring
    The webhook codes that can be fired by this test endpoint.

    Possible values: INCOME_VERIFICATION, INCOME_VERIFICATION_RISK_SIGNALS
    Select group for content switcher
    Select Language
    1const request: SandboxIncomeFireWebhookRequest = {
    2 item_id: 'Rn3637v1adCNj5Dl1LG6idQBzqBLwRcRZLbgM',
    3 webhook: 'https://webhook.com/',
    4 verification_status: 'VERIFICATION_STATUS_PROCESSING_COMPLETE',
    5};
    6try {
    7 const response = await plaidClient.sandboxIncomeFireWebhook(request);
    8 // empty response upon success
    9} catch (error) {
    10 // handle error
    11}
    sandbox/income/fire_webhook

    Response fields and example

    request_id
    string
    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
    1{
    2 "request_id": "mdqfuVxeoza6mhu"
    3}
    Was this helpful?
    Developer community
    GitHub
    GitHub
    Stack Overflow
    Stack Overflow
    YouTube
    YouTube
    Discord
    Discord