Transaction Import/Export

This document covers bulk importing and exporting Transaction records via CSV. Transactions use the same shared import/export infrastructure as other blueprints, with additional shortcuts and handling specific to the Transaction data model.

Overview

The Transaction blueprint is composed of a flat section (Amount, Currency, Type, etc.) and several nested substep sections:

  • From — the originating endpoint (contains Account → Signatory → Person/Entity)
  • To — the receiving endpoint (same structure as From)
  • Crypto — cryptocurrency-specific stats (Inputs/Outputs)
  • Exchange — exchange rate details
  • Party — additional parties (multiple allowed)

Available states for Transaction:

  • initial
  • monitored
  • cleared
  • rejected
  • auto-rejected

Importing Transactions

Via the UI

  1. Navigate to the Transaction index and click + Bulk Upload
  2. Click Download Template to get an empty CSV with correct headers
  3. Fill in your records and save the CSV
  4. Drag the CSV onto the dropzone or click to browse
  5. Click Import

Via the API

POST /api_imports Content-Type: application/json { "key": "Upload
    Transactions", "filename": "transactions.csv", "content_type": "text/csv",
    "file_base64": "base64-encoded-csv-data" }

The key parameter determines which blueprint to import against. For transactions, use "Upload Transactions" which targets the Transaction blueprint.

Transaction CSV Header Reference

Top-Level Fields

Header Type Notes
KeymetaAuto-generated if blank
Statemetainitial, monitored, cleared, etc.
For KeymetaCustomer Key — links the transaction to a customer
Created AtmetaTransaction date
AmounttextRequired
CurrencytextUSD, BTC, CAD, etc.
TypetextTransfer, Wire, Cash, etc.
Other Descriptiontext
Credit/DebitselectCredit or Debit
Cashmultiselect1 or true to mark as cash
Attemptedmultiselect1 or true to mark as attempted
ConductedtextTransmode code / conduction type
EFT DirectionmultiselectInitiation or Final Receipt
Transaction Numbertext
Internal Ref Numbertext
Devicetext
IP Addresstext
Notestext

From Substep

The From substep describes the originating endpoint. It contains an Account substep which in turn contains a Signatory substep (multiple). Each signatory can have a Person or Entity substep.

Headers are prefixed with From:

Header Type Notes
From My Clientmultiselect1 or true
From CountryselectISO 3166-1 alpha-2
From Foreign Currencytext
From Funds Typetext
From Commenttextarea

From Account Substep

Prefixed with From Account:

Header Type Notes
From Account My Clientmultiselect1 or true
From Account Non-Bank Institutionmultiselect1 or true
From Account Account Nametext
From Account Account Holdertext
From Account Client Numbertext
From Account Account Numbertext
From Account Swifttext
From Account IBANtext
From Account Institution Nametext
From Account Institution Codetext
From Account Branchtext
From Account Funds Codetext
From Account Currency Codetext
From Account Account Typetext
From Account Status Codetext
From Account Openedcalendar
From Account Closedcalendar
From Account Balancetext
From Account Datecalendar
From Account CountryselectISO 3166-1 alpha-2
From Account Commentstextarea

From Account Signatory Substep (Multiple)

The signatory substep is multiple — the first signatory uses the headers below; subsequent signatories append a number (e.g. From Account Signatory 2 Is Primary).

Prefixed with From Account Signatory:

Header Type Notes
From Account Signatory Is Primarymultiselect1 or true
From Account Signatory Roletext
From Account Signatory Person Keykey refLink existing Person
From Account Signatory Person First Nametext
From Account Signatory Person Last Nametext
From Account Signatory Entity Keykey refLink existing Entity
From Account Signatory Entity Nametext

To Substep

The To substep mirrors the From structure exactly, with headers prefixed with To instead of From:

  • To My Client
  • To Country
  • To Foreign Currency
  • To Funds Type
  • To Comment
  • To Account Account Name
  • To Account Account Number
  • To Account Swift
  • To Account Signatory Is Primary
  • To Account Signatory Person First Name
  • ...and all other Account and Signatory fields

Crypto Substep

Prefixed with Crypto:

Header Type Notes
Crypto Fiat Amounttext
Crypto Fiattexte.g. CAD
Crypto RatetextProvide Rate OR Fiat Amount
Crypto Txn HashtextTransaction hash

Crypto Inputs / Outputs (Multiple)

Both Inputs and Outputs are multiple substeps under Crypto. Prefixed with Crypto Inputs and Crypto Outputs:

Header Type Second Instance
Crypto Inputs AmounttextCrypto Inputs 2 Amount
Crypto Inputs AddresstextCrypto Inputs 2 Address
Crypto Outputs AmounttextCrypto Outputs 2 Amount
Crypto Outputs AddresstextCrypto Outputs 2 Address

Exchange Substep

Prefixed with Exchange:

Header Type Notes
Exchange Quote Amounttext
Exchange Quote Currencytexte.g. CAD
Exchange RatetextProvide Rate OR Quote Amount

Party Substep (Multiple)

The Party substep is multiple. First party uses base headers; subsequent parties append a number (Party 2 Type, etc.).

Prefixed with Party:

Header Type Second Instance
Party KeytextParty 2 Key
Party TypeselectParty 2 Type
Party NametextParty 2 Name
Party AddresstextParty 2 Address
Party CountryselectParty 2 Country
Party CodetextParty 2 Code
Party RelationshipselectParty 2 Relationship

Slim Headers (Shorthand)

Transactions support slim headers as a shorthand for the full nested column names. Instead of writing From Account Signatory Person First Name, you can write From First Name. The importer automatically expands slim headers to their full form by detecting whether the referenced record is a Person or Entity based on the fields provided:

Slim Header Expands To
From First NameFrom Account Signatory Person First Name
From Last NameFrom Account Signatory Person Last Name
From NameFrom Account Signatory Entity Name
From BirthdateFrom Account Signatory Person Birthdate
To First NameTo Account Signatory Person First Name
To Last NameTo Account Signatory Person Last Name
To NameTo Account Signatory Entity Name
To Nature of Principal BusinessTo Account Signatory Entity Nature of Principal Business

The importer detects whether the slim header refers to a Person or Entity by checking the data. If both From First Name and From Last Name are present, it expands to Person. If only From Name is present (without first/last), it expands to Entity. If a From Key or To Key column links to an existing step, the step's kind determines Person vs Entity. When the type cannot be determined, Person is the default.

You can mix slim and full headers in the same CSV. Full headers take precedence and are not overwritten by the expansion.

Conductor & Beneficiary Shorthand

Instead of providing the full signatory key chain, you can use these shorthand columns to link existing records:

Column Expands To
Conductor PersonFrom Account Signatory Person Key
Conductor EntityFrom Account Signatory Entity Key
Beneficiary PersonTo Account Signatory Person Key
Beneficiary EntityTo Account Signatory Entity Key

These columns accept a Step Key value and automatically link it to the correct account signatory on the From or To side.

Key References

Instead of providing full field data for a substep or signatory, you can reference an existing record by its Key. For example:

  • From Account Signatory Person Key — link an existing Person as the signatory
  • From Account Signatory Entity Key — link an existing Entity as the signatory
  • For Key — link the transaction to an existing Customer

If the referenced key is not found, the substep data will be blank (no error is raised).

Exporting

  1. Go to the Transaction index view
  2. Apply any search filters (state, date range, keyword query, etc.)
  3. Click the Export button

The export:

  • Applies the current search/filter criteria
  • Generates a CSV with the same headers the import expects
  • Strips empty columns — only populated columns appear
  • Supports up to 10 instances of multiple-value fields (signatories, parties, crypto inputs/outputs)
  • Uses the full header format (not slim headers)

Template Generation

Click Download Template from the Bulk Upload page to get an empty CSV with all possible headers. The template includes:

  • Every field defined on the Transaction blueprint
  • All nested substep columns (From, To, Crypto, Exchange, Party)
  • Second-instance headers for multiple substeps (Signatory 2, Party 2, etc.)
  • A $ref header for key-based references on substeps

Bulk Delete

  1. Go to Top Menu → Imports → Import Row
  2. Find the import record (shows the record kind and timestamp)
  3. Click Delete Imported Records

This deletes every step created with that import's import_id, allowing you to cleanly retry failed or incorrect imports.

Date Formats

The importer accepts these date formats:

  • 2023-10-25
  • 2023-10-25 00:00:00 UTC
  • Wed, 25 Oct 2023 00:00:00 +0000
  • 2021-07-03T23:21:48.007Z
  • 2007-04-05T12:30-06:00
  • 8/27/2024 (US-centric, m/d/Y)
  • 8/9/24 (US-centric, m/d/y)
  • 08/27/2024 00:00
  • 08/27/24 00:00

When in doubt, create a record via the UI, export it, and copy the format used.

Important Notes

  • Row order — rows will be processed in the order of the created date.
  • Batch large imports — split very large uploads into multiple files
  • Best practice: Create a single transaction in the UI, export it to see the format, then model your bulk import on that export
  • Slim headers and conductor/beneficiary shorthands are import-only; exports always use the full header format