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/create | Bypass the Link flow for creating an Item |
/sandbox/processor_token/create | Bypass the Link flow for creating an Item for a processor partner |
/sandbox/item/reset_login | Trigger the ITEM_LOGIN_REQUIRED state for an Item |
/sandbox/item/fire_webhook | Fire 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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.institution_idinitial_productsinstitution_id supports. This array may not be empty.1 assets, auth, balance, employment, identity, income_verification, identity_verification, investments, liabilities, payment_initiation, standing_orders, statements, transactions, transferoptionsnull.webhookoverride_usernameuser_good.user_good override_passwordpass_good.pass_good transactionsstart_datedate end_datedate income_verificationincome_verification is included in the initial_products array.income_source_typesbank and payroll. Currently you can only specify one of these options.bank, payrollbank_incomeincome_verification is included in the initial_products array and bank is specified in income_source_types.days_requesteduser_token1const 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 exchanged11 // for an access_token12 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 error21}Response fields and example
public_token/item/public_token/exchangerequest_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.institution_idoptionsnull.override_usernameuser_good.user_good override_passwordpass_good.pass_good 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 error9}Response fields and example
processor_token/processor/ endpoints.request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.access_token1const 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 to7 // 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 error15}Response fields and example
reset_logintrue if the call succeededrequest_id1{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).
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.access_tokenwebhook_typeAUTH, HOLDINGS, INVESTMENTS_TRANSACTIONS, ITEM, LIABILITIES, TRANSACTIONS, ASSETSwebhook_codeDEFAULT_UPDATE, NEW_ACCOUNTS_AVAILABLE, AUTH_DATA_UPDATE, AUTHORIZATION_GRANTED, RECURRING_TRANSACTIONS_UPDATE, SYNC_UPDATES_AVAILABLE, PRODUCT_READY, ERROR1// Fire a DEFAULT_UPDATE webhook for an Item2const request: SandboxItemFireWebhookRequest = {3 access_token: accessToken4 webhook_code: 'DEFAULT_UPDATE'5};6try {7 const response = await plaidClient.sandboxItemFireWebhook(request);8} catch (error) {9 // handle error10}Response fields and example
webhook_firedtrue if the test webhook_code was successfully fired.request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.access_tokenaccount_idaccount_id of the account whose verification status is to be modifiedverification_statusautomatically_verified, verification_expired1const 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 error10}Response fields and example
request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.webhook1const request: SandboxTransferFireWebhookRequest = {2 webhook: 'https://www.example.com',3};4try {5 const response = await plaidClient.sandboxTransferFireWebhook(request);6 // empty response upon success7} catch (error) {8 // handle error9}Response fields and example
request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.transfer_idtest_clock_idvirtual_time on the provided test_clock.event_typeposted, 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 --> failedpending --> postedposted --> returnedposted --> settledfailure_reason"failed" or "returned". Null value otherwise.ach_return_codeR01. 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.description1const 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 success9} catch (error) {10 // handle error11}Response fields and example
request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.refund_idtest_clock_idvirtual_time on the provided test_clock.event_typerefund.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.failedrefund.pending --> refund.postedrefund.posted --> refund.returnedrefund.posted --> refund.settledrefund.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"failed" or "returned". Null value otherwise.ach_return_codeR01. 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.description1const request: SandboxTransferRefundSimulateRequest = {2 refund_id: refundId,3 event_type: 'refund.posted',4};5try {6 const response = await plaidClient.sandboxTransferRefundSimulate(request);7 // empty response upon success8} catch (error) {9 // handle error10}Response fields and example
request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.test_clock_idvirtual_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.1try {2 const response = await plaidClient.sandboxTransferSweepSimulate({});3 const sweep = response.data.sweep;4} catch (error) {5 // handle error6}Response fields and example
sweepA 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.idfunding_account_idcreateddate-time amountIf 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_codesettleddate status"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 failedpending, posted, settled, returned, failed, nulltrigger"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.manual, incoming, balance_threshold, automatic_aggregatedescriptionnetwork_trace_idFor
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_id1{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": null10 },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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.sweep_idevent_typeposted, 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.postedsweep.pending --> sweep.failedsweep.posted --> sweep.settledsweep.posted --> sweep.returnedsweep.settled --> sweep.returnedsweep.posted, sweep.settled, sweep.returned, sweep.failedfailure_reason"failed" or "returned". Null value otherwise.ach_return_codeR01. 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.description1const 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 success10} catch (error) {11 // handle error12}Response fields and example
request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.test_clock_idvirtual_timestamp on the test clock will be converted.1try {2 const response = await plaidClient.sandboxTransferLedgerSimulateAvailable({});3 const available = response.data.balance.available;4} catch (error) {5 // handle error6}Response fields and example
request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.sweep_idevent_typeposted, 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.postedsweep.pending --> sweep.failedsweep.posted --> sweep.settledsweep.posted --> sweep.returnedsweep.settled --> sweep.returnedsweep.posted, sweep.settled, sweep.returned, sweep.failedfailure_reason"failed" or "returned". Null value otherwise.ach_return_codeR01. 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.description1const 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 success10} catch (error) {11 // handle error12}Response fields and example
request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.virtual_time2006-01-02T15:04:05Z.date-time 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 error9}Response fields and example
test_clocktest_clock_idvirtual_time2006-01-02T15:04:05Z.date-time request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.test_clock_idnew_virtual_time2006-01-02T15:04:05Z.date-time 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 error9}Response fields and example
request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.test_clock_id1const 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 error9}Response fields and example
test_clocktest_clock_idvirtual_time2006-01-02T15:04:05Z.date-time request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.start_virtual_time2019-12-06T22:35:49Z)date-time end_virtual_time2019-12-06T22:35:49Z)date-time count1 25 25 offset0 0 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 error9}Response fields and example
test_clockstest_clock_idvirtual_time2006-01-02T15:04:05Z.date-time request_id1{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.
Request fields and example
client_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.item_iduser_iduser_id of the User associated with this webhook, warning, or error.webhookverification_statusVERIFICATION_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.VERIFICATION_STATUS_PROCESSING_COMPLETE, VERIFICATION_STATUS_PROCESSING_FAILED, VERIFICATION_STATUS_PENDING_APPROVALwebhook_codeINCOME_VERIFICATION, INCOME_VERIFICATION_RISK_SIGNALS1const 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 success9} catch (error) {10 // handle error11}Response fields and example
request_id1{2 "request_id": "mdqfuVxeoza6mhu"3}