---
title: "Create Transaction"
method: POST
path: "/digital-banking/v1/accounts/{account_id}/transactions"
tags: ["Transactions"]
---

# Create Transaction

`POST /digital-banking/v1/accounts/{account_id}/transactions`

## Request

- Base URL: `https://api.modernfi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.modernfi.com/digital-banking/v1/accounts/{account_id}/transactions`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/modernfi/apis/endpoints/docs/digital-banking/v1/accounts/:account_id/transactions/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `account_id` union, required
  - string, uuid
  - string

## Query parameters

- `id_type` 'INSTITUTION': Type of the account id. Institution accounts ids are external ids and come from the institution.

## Headers

- `idempotency-key` string, required

## Request body

- CreateTransactionRequest
  - `amount` string, required: Transaction amount. If negative, the transaction type will be Debit instead of Credit.
  - `transacted_at` string, date-time, required: The datetime when the transaction occurred. Must be timezone-aware and cannot be in the future. Backdating is restricted to the current calendar month and to the last 7 days. Transactions submitted after the allocation cutoff on the last day of the month will have their effective date adjusted to the 1st of the following month.
  - `description` string, nullable
  - `institution_transaction_id` string, nullable
  - `submitted_by` string, nullable: The user who initiated the transaction.

## Response `201`

Successful Response

- TransactionResponse
  - `id` string, required
  - `account_id` string, required
  - `institution_id` string, required
  - `amount` string, required
  - `transacted_at` string, required
  - `transaction_status` 'PENDING' | 'POSTED' | 'CANCELLED', required
  - `description` string, nullable
  - `is_interest_payment` boolean, required
  - `posted_at` string, nullable
  - `institution_transaction_id` string, nullable
  - `transaction_type` 'CREDIT' | 'DEBIT', required

## Other responses

- `400`: Bad Request - Invalid input or validation error
- `401`: Unauthenticated - Invalid or missing authentication credentials
- `403`: Unauthorized - Insufficient permissions to access resource
- `422`: Validation Error
- `500`: Internal Server Error

## Changes

- **2026-10-01** `af2d10c2af5d`: 1 info
  - added the new optional request property `submitted_by`
- **2026-08-20** `3851b7f87477`: 1 breaking, 1 warning
  - for the `header` request parameter `idempotency-key`, the minLength was increased from `0` to `1`
  - for the `header` request parameter `idempotency-key`, the maxLength was set to `64`

[Operation history](https://skmtc.dev/modernfi/apis/endpoints/changes/digital-banking/v1/accounts/:account_id/transactions/post.md)

---

[API](https://skmtc.dev/modernfi/apis/endpoints.md) - [All operations](https://skmtc.dev/modernfi/apis/endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/modernfi/apis/endpoints/revisions/0647df8b53df?raw)
