Bulk create transactions

POST /api/v1/transactions/bulk

Create multiple manual transactions in a single request.

Operation ID: create_bulk_transactions_api_v1_transactions_bulk_post · View as markdown · OpenAPI slice

Authentication

Bearer token authentication. Pass your DayZero API token in the Authorization header and the target business UUID in x-business-id.

Request body

transactions array · TransactionCreateRequest requiredTransactionCreateRequest

Array of transactions to create.

6 fields
amount integer

Amount in cents. Positive for deposits/income, negative for withdrawals/expenses.

currency string

Currency code (USD, CAD, AUD, EUR, or GBP). Defaults to business default currency.

datetime string · date

Transaction date in ISO 8601 format (YYYY-MM-DD).

description string

Human-readable description of the transaction.

source_account_id string

UUID of the bank account (ledger) this transaction belongs to.

reconciled boolean

Whether this transaction has been reconciled with bank statement.

Responses

201 Successful Response

success_count integer required

Number of transactions created successfully.

error_count integer required

Number of transactions that failed.

created_transactions array · TransactionResponse requiredTransactionResponse

Successfully created transactions.

29 fields
id string required

Unique identifier (UUID7).

amount integer required

Amount in cents. Positive = deposit/income, negative = withdrawal/expense.

currency string

Currency code (USD, CAD, AUD, EUR, or GBP).

datetime string · date required

The date the transaction occurred.

counterparty string

Clean counterparty/merchant name extracted from bank data.

description string

Transaction memo/description (cleaned).

meta object

Additional metadata (raw Plaid description in raw_plaid_description).

categorization_method string

How categorized: 'manual', 'rule', 'ai', or null if uncategorized.

posted_status string

Bank status: 'pending' or 'posted'.

review_status string

Review status: 'unreviewed', 'reviewed', 'flagged'.

source string

Transaction origin: 'manual', 'plaid', or 'bulk_upload'. Determines if the transaction can be deleted.

opposing_line_entry_ids array · string

Linked line entry UUIDs for categorization.

personal boolean

True if marked as personal (non-business) expense.

journal_entry_id string

Linked journal entry UUID.

teal_id string

External Teal accounting system ID.

teal_ledger_id string

Teal ledger ID.

teal_source_account_id string

Teal source account ID.

ledger_id string

Bank account (ledger) UUID.

ledger_name string

Bank account (ledger) name for display.

ledger_type string

Ledger account type: asset, liability, equity, revenue, or expense.

business_id string

Business UUID.

reconciled boolean

True if reconciled with bank statement.

invoice_ids array · string

Invoice UUIDs linked via payments (from invoice_payments junction table).

bill_ids array · string

Bill UUIDs linked via payments (from bill_payments junction table).

created_at string · date-time

Record creation timestamp.

updated_at string · date-time

Last update timestamp.

thread TransactionThreadResponse

Comment thread if any discussion exists.

journal_entry JournalEntryResponse

Full journal entry details if categorized.

opposing_line_entries array · OpposingLineEntryResponse

Opposing line entries showing the category/account(s) this transaction was posted to. Empty if uncategorized.

errors array · string required

Error messages for failed transactions.

400 Bad Request - Invalid input

401 Unauthorized - Authentication required

403 Forbidden - Insufficient permissions

422 Validation Error

detail array · ValidationError ValidationError
5 fields
loc array · string | integer required
msg string required
type string required
input object
ctx object