---
title: "Create One-Time Deposit"
method: POST
path: "/api/v1/wallets/:walletId/transactions"
tags: ["Wallets"]
---

# Create One-Time Deposit

`POST /api/v1/wallets/:walletId/transactions`

## Request

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

Create a one-time deposit transaction for a wallet using an existing linked account.

Merchants can optionally include a `disbursement` array to split a portion of the total deposit among one or more counterparties. Any undisbursed amount is credited to the consumer's wallet.

Processing fees reported in `charges.fee` are collected from the counterparty configured as the Default for Fees on your merchant account.

**Example:** A consumer deposits $13.00 (1300 cents) with a $3.00 (300 cents) disbursement to counterparty A. Counterparty A receives $3.00 and the consumer's wallet is credited the remaining $10.00 (1000 cents).

## Path parameters

- `walletId` string, uuid, required: The wallet ID to deposit to.

## 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` object, required
    - `type` 'OneTimeDeposit', required
    - `attributes` object, required
      - `amount` integer, required: The amount to deposit, represented in the smallest currency unit (e.g., cents for USD). Minimum is 100 (e.g., $1.00). To obtain the value in dollars, divide by 100.
      - `idempotencyKey` string, uuid, required: A unique key (UUID) to ensure idempotency of the request. Reusing the same key will not create multiple deposits.
      - `linkedAccountId` string, uuid, required: The linked account ID to use for the deposit.
      - `disbursement` object[]: Optional array of fee disbursements included in the total deposit amount. When provided, the specified amounts will be disbursed to their respective counterparties, and the remainder will be credited to the user's wallet.
        - `amount` integer, required: The fee amount included in the total deposit amount, represented in the smallest currency unit (e.g., cents for USD). This amount will be disbursed to the specified counterparty. The remaining amount (deposit amount - disbursement amount) will be credited to the user's wallet.
        - `counterpartyId` string, uuid, required: The ID of the counterparty who will receive the disbursement amount.
        - `remit` boolean: Deprecated. This field is accepted but always treated as `true` regardless of the value provided. All disbursements are remitted directly. Will be removed in a future version.
      - `risk` object
        - `deviceSessionId` string, required: Device session ID used for risk assessment. Optional but recommended for production traffic.

## Response `201`

201 Created

- CreateOneTimeDepositResponse
  - `data` object, required
    - `id` string, uuid, required: The transaction ID. This is the same value as `attributes.transactionId`.
    - `type` 'OneTimeDeposit', required
    - `attributes` object, required
      - `id` string, uuid, required: Transaction ID.
      - `transactionId` string, uuid, required: The ID of the created transaction. Same value as `id`.
      - `status` 'Pending' | 'Cleared' | 'Failed', required: The status of the created transaction. New deposits are typically created in `Pending` status until they are cleared or fail.
      - `amount` integer, required: The total amount charged to the user, represented in the smallest currency unit (e.g., cents for USD).
      - `disbursement` object[]: Breakdown of fee disbursements included in the deposit, if any were provided.
        - `counterpartyId` string, uuid, required: The ID of the counterparty who will receive the net disbursement.
        - `amount` integer, required: The total disbursement amount from the deposit, represented in the smallest currency unit (e.g., cents for USD).
        - `fee` integer, required: Accrue's fee deducted from the disbursement amount. Always returns 0.
        - `remit` boolean, required: Deprecated. Always returns `true`. All disbursements are remitted directly. Will be removed in a future version.
      - `charges` object: Charges applied to this deposit.
        - `fee` object: Processing fee details
          - `amount` integer, required: Fee amount in cents
          - `type` string, required: Fee type identifier (e.g., 'ACHFee', 'CardFee')
      - `deductions` object: Legacy charges breakdown. Use `charges` instead.
        - `fee` integer, required: Accrue processing fee in cents

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `500`: Internal Server Error

---

[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)
