---
title: "Create BankTransfer record"
method: POST
path: "/public/v2/bank-transfers/"
tags: ["Bank Transfers"]
---

# Create BankTransfer record

`POST /public/v2/bank-transfers/`

Create a new BankTransfer record with the provided data. Validates all required fields and business rules.

## Headers

- `Idempotency-Key` string

## Request body

- PublicBankTransferSchemaCreateIn — Input schema for creating BankTransfer records.
  - `date` string, date, required
  - `transaction_date` string, date, nullable
  - `company_id` integer, required
  - `debit_bank_account_number` integer, required
  - `credit_bank_account_number` integer, required
  - `amount` union, required
    - number
    - string
  - `exchange_rate` union
    - number
    - string
  - `memo` string
  - `record_status` 'draft' | 'posted' | 'archived'

## Response `200`

OK

- PublicBankTransferSchemaOut
  - `bank_match_status` string, nullable
  - `reconciliation_status` string, nullable
  - `created_by` AuditActorSchemaOut — Schema for audit actor information.
    - `actor_type` string, nullable
    - `email` string, nullable
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `timestamp` string, date-time, nullable
  - `updated_by` AuditActorSchemaOut — Schema for audit actor information.
    - `actor_type` string, nullable
    - `email` string, nullable
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `timestamp` string, date-time, nullable
  - `internal_id` integer, required
  - `number` integer, required
  - `transaction_id` integer, required
  - `debit_entry_id` integer, required
  - `credit_entry_id` integer, required
  - `date` string, date, required — Posting date (GL date) - the date when the transaction is recorded in the general ledger
  - `transaction_date` string, date, required — Transaction date (inception date) - the date when the transaction actually occurred
  - `company_id` integer, required
  - `company_name` string, required
  - `company_currency` string, required
  - `debit_bank_account_number` integer, nullable, required
  - `credit_bank_account_number` integer, nullable, required
  - `amount` string, required — Transfer amount
  - `exchange_rate` string, required
  - `memo` string, required
  - `record_status` 'draft' | 'posted' | 'archived', required
  - `currency_iso_4217_code` string[]
  - `created_at` string, date-time, required — Date and time the record was created
  - `updated_at` string, date-time, required — Date and time the record was last updated

## Other responses

- `404` — Not Found
- `422` — Unprocessable Content
- `500` — Internal Server Error

---

[API](https://skmtc.net/dualentry/apis/dualentry-public-api.md) · [All operations](https://skmtc.net/dualentry/apis/dualentry-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dualentry/dualentry-public-api/revisions/4849d2498a13/schema)
