Virtual Accounts

Simulate a virtual account deposit

Changed on

Simulates an inbound wire, ACH or RTP deposit into a virtual account in the zerohash CERT environment, so you can test deposit handling without sending real money. The deposit then follows the same path as a real one: it is listed in the virtual account transactions and you receive the same deposit webhooks. Every request creates a new deposit; repeating a request creates another one. A virtual account that is not ACTIVE returns 409 Conflict with a message naming its status; an unknown id or an account belonging to another platform returns 404 Not Found. Not available in production.

post/virtual_accounts/{id}/deposits/simulate

Request

  • Base URL
    https://api.cert.zerohash.com
  • URL
    https://api.cert.zerohash.com/virtual_accounts/{id}/deposits/simulate
  • Auth
    API key in header X-SCX-API-KEY and API key in header X-SCX-PASSPHRASE

Path parameters

idstring uuid required

Headers

X-SCX-SIGNEDstring required

HMAC-SHA256 signature of the request, base64-encoded. See the Authentication guide for the exact signing formula.

X-SCX-TIMESTAMPstring required
Example:1678901234

Current Unix timestamp in seconds. Must be within 60 seconds of server time or the request is rejected.

Request body

rail'wire' | 'ach' | 'rtp' required

The payment rail the simulated deposit arrives on.

amountstring required

The deposit amount in USD as a decimal string, greater than zero with at most 2 decimal places.

originator_namestring

The name the payment is sent from. Defaults to the virtual account holder's legal name; send a different name to simulate a name mismatch on a wire.

originator_countrystring

The 2-letter country code of the originator. Defaults to US.

Example request

{
  "rail": "wire",
  "amount": "10.00",
  "originator_name": "Jane Roe",
  "originator_country": "US"
}

Response

The simulated deposit was accepted.

virtual_account_idstring uuid
core_transaction_idstring

The bank's transaction id for the simulated payment; the deposit appears in the virtual account's transactions under it.

Example response

{
  "virtual_account_id": "550e8400-e29b-41d4-a716-446655440000",
  "core_transaction_id": "1234567"
}

Changes