---
title: "Simulate Counterparty Deposit"
method: POST
path: "/api/v1/simulation/counterparties/{counterpartyId}/deposits"
tags: ["Simulations"]
---

# Simulate Counterparty Deposit

`POST /api/v1/simulation/counterparties/{counterpartyId}/deposits`

## Request

- Base URL: `https://merchant-api.accruesavings.com`
- URL: `https://merchant-api.accruesavings.com/api/v1/simulation/counterparties/{counterpartyId}/deposits`
- Auth: none declared. Required headers: `Client-ID`, `Authorization`
- TypeScript: <https://skmtc.dev/byaccrue/apis/accrue-merchant-api/docs/api/v1/simulation/counterparties/:counterpartyId/deposits/post.ts> (a function with typed inputs; its response is checked against the schema)

Simulate an incoming ACH credit or debit on a counterparty's Accrue deposit account.

  Use this to credit or debit a counterparty in development, sandbox, and local environments without sending a real ACH or wire. Set `direction` to `debit` to simulate an inbound ACH debit; a debit larger than the counterparty's balance takes the balance negative.

  A `CounterpartyIncomingPayment` webhook fires with the matching `direction` once the payment is processed.

  Set `originatorName` and `description` to control what the deposit carries in those fields, for example to test matching an inbound payout to its source. They are limited to the ACH lengths, 16 and 10 characters.

  The request is accepted immediately. The counterparty balance updates asynchronously after the incoming payment is processed, so a subsequent read may briefly show the previous balance.

  The counterparty must already have an Accrue deposit account (`internalBankAccount` on the counterparty resource). Counterparties without one cannot receive simulated deposits.

  See [Simulating inbound ACH credits and debits](/docs/integration/sandbox/instructions#simulating-inbound-ach-credits-and-debits) for a walkthrough.

  **This endpoint is only available in development, sandbox, and local testing environments.**

## Path parameters

- `counterpartyId` string, uuid, required: Counterparty ID

## Headers

- `Client-ID` string, uuid, required: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.
- `Authorization` string, uuid, required: Secure secret to access privileged endpoints.

## Request body

- object
  - `data` SimulateCounterpartyDeposit, required: SimulateCounterpartyDeposit
    - `id` string, uuid, required: Unique identifier for the object.
    - `type` 'SimulateCounterpartyDeposit', required
    - `attributes` object, required
      - `amount` integer, required: Amount to deposit in cents
      - `direction` 'credit' | 'debit': `credit` (the default) simulates money arriving in the counterparty's account. `debit` simulates money being pulled out, and can take the counterparty balance negative.
      - `originatorName` string: Who sent the money, as the ACH company name (16 characters at most). Returned as `originatorName` on the resulting `Deposit` transaction and its webhooks; null when omitted.
      - `description` string: The ACH company entry description (10 characters at most). Returned as `description` on the resulting `Deposit` transaction and its webhooks; a generic description is used when omitted.

## Response `204`

No Content - Deposit simulation accepted

## Other responses

- `400`: Invalid amount, or counterparty does not have an Accrue deposit account
- `404`: Counterparty not found

---

[API](https://skmtc.dev/byaccrue/apis/accrue-merchant-api.md) - [All operations](https://skmtc.dev/byaccrue/apis/accrue-merchant-api/llms.txt) - [OpenAPI document](https://skmtc.dev/byaccrue/apis/accrue-merchant-api/revisions/3e2d97ef2e6e?raw)
