---
title: "Enrich and add transactions to the ledger of account holders asynchronously."
method: POST
path: "/v2/transactions/async"
tags: ["Enrichment"]
---

# Enrich and add transactions to the ledger of account holders asynchronously.

`POST /v2/transactions/async`

Add a batch of transactions to the ledgers of account holders. Return the batch id that has been assigned to this batch. A batch of 24960 transactions should take 5-10mins.

## Request body

- Transaction[]
  - `transaction_id` string, required — A unique identifier of the transaction
  - `account_holder_id` string, nullable — The unique ID of the account holder of the transaction
  - `account_holder_type` 'consumer' | 'business' | 'unknown'
  - `amount` number, required — The amount of the transaction
  - `entry_type` 'incoming' | 'outgoing' | 'credit' | 'debit', required — The direction of the transaction (incoming or outgoing)
  - `date` string, date, required — The date that the transaction was posted. Uses ISO 8601 format (YYYY-MM-DD)
  - `iso_currency_code` string, required — The currency of the transaction in ISO 4217 format
  - `description` string, required — The description string of the transaction
  - `location` string, nullable — Location where the transaction occurred in
  - `country` string, nullable — The country where the transaction was made in ISO 3166-2 format
  - `mcc` integer, nullable — The Merchant Category Code of the merchant according to ISO 18245
  - `account_holder_name` string, nullable — The name of the account holder

## Response `202`

Description of created batch

- BatchResult — Batch transaction enrichment status.
  - `status` 'started' | 'finished' | 'error', required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `id` string, required
  - `progress` integer, nullable
  - `total` integer, nullable
  - `results` union[], nullable
    - union
      - EnrichedTransaction
        - `transaction_id` string, required
        - `logo` string, nullable
        - `website` string, nullable
        - `location` string, nullable
        - `location_structured` LocationStructuredPublic
          - `address` string, nullable
          - `city` string, nullable
          - `state` string, nullable
          - `postcode` string, nullable
          - `country` string, nullable
          - `country_name` string, nullable
          - `latitude` number, nullable
          - `longitude` number, nullable
          - `google_maps_url` string, nullable
          - `apple_maps_url` string, nullable
          - `store_number` string, nullable
          - `house_number` string, nullable
        - `merchant` string, nullable
        - `merchant_id` string, nullable
        - `labels` string[], nullable
        - `recurrence` 'recurring' | 'subscription' | 'one off'
        - `recurrence_group` RecurrenceGroup
          - `id` string, required
          - `first_payment_date` string, date, nullable
          - `latest_payment_date` string, date, nullable
          - `total_amount` number, nullable
          - `average_amount` number, nullable
          - `periodicity_in_days` number, nullable
          - `periodicity` string, nullable
          - `confidence` string, nullable
          - `transaction_ids` string[], nullable — IDs of transactions that belong to this group. Due to multiplicity constraints, these are truncated to 100. To obtain the full list, please refer to the [recurring payments API](#/Account%20Holder/get_account_holder_recurring_payments_v2_account_holder__account_holder_id__recurring_payments_post)
        - `recurrence_group_id` string, nullable
        - `person` string, nullable
        - `transaction_type` 'business' | 'consumer' | 'unknown'
        - `intermediaries` EntityOut[], nullable
          - `id` string, nullable
          - `name` string, nullable
          - `website` string, nullable
          - `logo` string, nullable
        - `mcc` integer[], nullable
      - TransactionError — Transaction that returned with error.
        - `transaction_id` string, required
        - `error` string, required
        - `error_details` union
          - object
          - string

## Other responses

- `400` — Request containing invalid values.
- `404` — One or more account holders not found.
- `422` — Validation Error

---

[API](https://skmtc.net/ntropy/apis/ntropy-transaction-api.md) · [All operations](https://skmtc.net/ntropy/apis/ntropy-transaction-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ntropy/ntropy-transaction-api/revisions/47be508488c1/schema)
