/
10 minute read
May 22, 2023

Simulations 2.0 (Beta) — Direct Deposits

Note
This feature is currently in beta and subject to change. To learn more about the beta program for this feature, contact your Marqeta representative. For older versions of Simulations, see Simulating Transactions.

The Marqeta platform provides you with a production environment and a sandbox. The main difference between the production and sandbox environments is that your production environment communicates with a payment card network. This communication allows your program’s cards to pay for goods and services by initiating live transactions over the card network.

There are two types of sandbox environments available:

  • Public sandbox: A single-user environment where you can begin building your program and experiment with the Marqeta platform.

  • Private sandbox: A multi-user environment where you can integrate your application with the Marqeta platform.

All funds and transactions are simulated in both types of sandbox environments.

Unlike the production environment, a sandbox does not communicate with a card network, so the cards you create within them cannot be used to conduct real-world transactions. Therefore, you must rely on simulated transactions in order to test all objects you create within a sandbox. The sandbox environments provide a set of endpoints that let you simulate various types of card network transactions, such as authorizations, reversals, and balance inquiries. These endpoints are available only within the sandbox, so the details on this page do not apply to production.

To use the Simulations API for direct deposits:

  • Create a card in your sandbox environment.

  • Use the /simulations/directdeposits/* endpoints to simulate transaction event types. Each endpoint is its own event type.

  • Use the /webhooks endpoint to send optional customer notifications for system events.

To use the Simulations API for card transactions, see Simulations 2.0 (Beta) — Card Transactions.

Note
You can use Postman to run requests for card transaction and direct deposit simulations endpoints. This collection of requests has been saved as a YAML file for your convenience. To access the YAML file, see Postman Collection for Simulations 2.0 (Beta).

All direct deposit simulations endpoints share the same request/response model, as described below.

Request body

Fields Description

account_number

string
Required

The account number of the user to debit or credit.

Allowable Values:

An account number belonging to an active user with an active card.

amount

decimal
Required

Amount of the transaction.

Allowable Values:

Format: 0.00

Must be greater than zero

company_discretionary_data

string
Optional

Company-specific data provided by the direct deposit originator.

Allowable Values:

20 char max

company_entry_description

string
Optional

Company-specific data provided by the direct deposit originator.

Allowable Values:

10 char max

company_identification

string
Optional

Alphanumeric code that identifies the direct deposit originator.

Allowable Values:

10 char max

company_name

string
Optional

Name of the direct deposit originator.

Allowable Values:

16 char max

earlyPayEligible

boolean
Optional

Indicates whether the transaction is eligible for early pay.

Allowable Values:

true, false

individual_identification_number

string
Optional

Accounting number by which the recipient is known to the direct deposit originator.

Allowable Values:

22 char max

individual_name

string
Optional

Identity of the direct deposit recipient.

Allowable Values:

35 char max

settlement_date

datetime
Required

Date when the credit or debit is applied.

Allowable Values:

Format: yyyy-mm-ddThh:mm:ssZ

standard_entry_class_code

string
Optional

Three-letter code identifying the type of entry.

Allowable Values:

3 char max

token

string
Optional

Unique identifier of this direct deposit transition.

If you do not include a token, the system generates one automatically. This token is used in other API calls, so rather than let the system generate a string, enter a string that you can remember. This value cannot be updated.

Allowable Values:

36 char max

type

string
Optional

Whether funds are being debited from or credited to the account.

Allowable Values:

CREDIT, DEBIT

Response body

Fields Description

type

string
Conditionally returned

Whether funds are being debited from or credited to the account.

Allowable Values:

CREDIT, DEBIT

state

string
Conditionally returned

Current status of the direct deposit record.

Allowable Values:

PENDING, APPLIED, REVERSED, REJECTED

state_reason

string
Conditionally returned

Explanation of why the direct deposit record is in the current state.

Allowable Values:

255 char max

state_reason_code

string
Conditionally returned

A standard code describing the reason for the current state.

Allowable Values:

Three-character code

token

string
Conditionally returned

Unique identifier of the direct deposit record.

Allowable Values:

Existing direct deposit record token.

user_token

string
Conditionally returned

Unique identifier of the user associated with the direct deposit record.

Allowable Values:

Existing user token

amount

decimal
Conditionally returned

Amount being debited or credited.

Allowable Values:

Existing amount in 0.00 decimal format.

business_token

string
Conditionally returned

Unique identifier of the business associated with the direct deposit record.

Allowable Values:

Existing business token

company_discretionary_data

string
Conditionally returned

Company-specific data provided by the direct deposit originator.

Allowable Values:

20 char max

company_entry_description

string
Conditionally returned

Description of the purpose of the direct deposit.

Allowable Values:

10 char max

company_identification

string
Conditionally returned

Alphanumeric code that identifies the direct deposit originator.

Allowable Values:

10 char max

company_name

string
Conditionally returned

Name of the direct deposit originator.

Allowable Values:

16 char max

created_time

datetime
Conditionally returned

Date and time when the deposit account was created.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ssZ

direct_deposit_account_token

string
Conditionally returned

Unique identifier of the affected deposit account.

Allowable Values:

36 char max

individual_identification_number

string
Conditionally returned

Accounting number by which the recipient is known to the direct deposit originator.

Allowable Values:

255 char max

individual_name

string
Conditionally returned

Name of the direct deposit recipient.

Allowable Values:

22 char max

last_modified_time

datetime
Conditionally returned

Date and time when the direct deposit account was last modified.

Allowable Values:

Format: yyyy-MM-ddThh:mm:ssZ

settlement_date

datetime
Conditionally returned

Date and time when the credit or debit is applied.

Allowable Values:

Format: yyyy-MM-ddThh:mm:ssZ

standard_entry_class_code

string
Conditionally returned

Three-letter code identifying the type of entry.

Allowable Values:

ACK, ADV, ARC, ATX, BOC, CCD, CIE, COR, CTX, DNE, ENR, IAT, MTE, POP, POS, PPD, RCK, SHR, TEL, TRC, TRX, WEB, XCK

Simulate credit

Action: POST
Endpoint: /simulations/directdeposits/credit

Use this endpoint to simulate crediting funds to a deposit account.

Simulate a direct deposit of funds to a user account by including the deposit account number of the account to be credited. You can find the account number in the account_number field of the response when you create a new deposit account. Alternatively, you can retrieve it by sending a GET request to the /depositaccounts/user/{user_token} endpoint. For more information, see Direct Deposit.

See the full request body structure at Request body.

Sample request body

JSON
Copied

Is this helpful?

Yes
No

See the full response body structure at Response body.

Sample response body

JSON
Copied

Is this helpful?

Yes
No

Simulate debit

Action: POST
Endpoint: /simulations/directdeposits/debit

Use this endpoint to simulate debiting funds from a deposit account.

Simulate a direct deposit of funds to a user account by including the deposit account number of the account to be debited. You can find the account number in the account_number field of the response when you create a new deposit account. Alternatively, you can retrieve it by sending a GET request to the /depositaccounts/user/{user_token} endpoint. For more information, see Direct Deposit.

See the full request body structure at Request body.

Sample request body

JSON
Copied

Is this helpful?

Yes
No

See the full response body structure at Response body.

Sample response body

JSON
Copied

Is this helpful?

Yes
No

Subscribe to our developer newsletter