# TransactionSplit

Type: object

Schema: [TransactionSplit](https://sourcey-firefly.pages.dev/api/models/transactionsplit/index.md)

- `user` (optional)
  Type: string, string
  
  User ID
  
  readOnly: true
  
  Example:
  
  ```json
  "3"
  ```

- `transaction_journal_id` (optional)
  Type: string, string
  
  ID of the underlying transaction journal. Each transaction consists of a transaction group (see the top ID) and one or more journals
  making up the splits of the transaction.
  
  
  readOnly: true
  
  Example:
  
  ```json
  "10421"
  ```

- `type` (required)
  Reference: [TransactionTypeProperty](https://sourcey-firefly.pages.dev/api/models/transactiontypeproperty/index.md); Type: string, string
  
  enum: ["withdrawal","deposit","transfer","reconciliation","opening balance"]
  
  Example:
  
  ```json
  "withdrawal"
  ```

- `date` (required)
  Type: string, date-time
  
  Date of the transaction
  
  Example:
  
  ```json
  "2026-10-01T00:00:00+00:00"
  ```

- `order` (optional)
  Type: integer, int32; nullable
  
  Order of this entry in the list of transactions.
  
  Example:
  
  ```json
  0
  ```

- `object_has_currency_setting` (optional)
  Type: boolean
  
  Indicates whether the transaction has a currency setting. For transactions this is always true.
  
  readOnly: true
  
  Example:
  
  ```json
  true
  ```

- `currency_id` (optional)
  Type: string, string
  
  Currency ID for the currency of this transaction.
  
  Example:
  
  ```json
  "12"
  ```

- `currency_code` (optional)
  Type: string, string
  
  Currency code for the currency of this transaction.
  
  Example:
  
  ```json
  "EUR"
  ```

- `currency_symbol` (optional)
  Type: string, string
  
  Currency symbol for the currency of this transaction.
  
  readOnly: true
  
  Example:
  
  ```json
  "$"
  ```

- `currency_name` (optional)
  Type: string, string
  
  Currency name for the currency of this transaction.
  
  Example:
  
  ```json
  "Euro"
  ```

- `currency_decimal_places` (optional)
  Type: integer, int32
  
  Number of decimals used in this currency.
  
  Example:
  
  ```json
  2
  ```

- `foreign_currency_id` (optional)
  Type: string, string; nullable
  
  Currency ID of the foreign currency, if this transaction has a foreign amount.
  
  Example:
  
  ```json
  "17"
  ```

- `foreign_currency_code` (optional)
  Type: string, string; nullable
  
  Currency code of the foreign currency. Default is NULL.
  
  Example:
  
  ```json
  "USD"
  ```

- `foreign_currency_symbol` (optional)
  Type: string, string; nullable
  
  readOnly: true
  
  Example:
  
  ```json
  "$"
  ```

- `foreign_currency_decimal_places` (optional)
  Type: integer, int32; nullable
  
  Number of decimals in the foreign currency.
  
  readOnly: true
  
  Example:
  
  ```json
  2
  ```

- `primary_currency_id` (optional)
  Type: string, string; nullable
  
  Returns the primary currency ID of the administration. This currency is used as the currency for all `pc_*` amount and balance fields of this account.
  
  readOnly: true
  
  Example:
  
  ```json
  "12"
  ```

- `primary_currency_code` (optional)
  Type: string, string; nullable
  
  Returns the primary currency code of the administration. This currency is used as the currency for all `pc_*` amount and balance fields of this account.
  
  Example:
  
  ```json
  "EUR"
  ```

- `primary_currency_symbol` (optional)
  Type: string, string; nullable
  
  See the other `primary_*` fields.
  
  readOnly: true
  
  Example:
  
  ```json
  "$"
  ```

- `primary_currency_decimal_places` (optional)
  Type: integer, int32; nullable
  
  See the other `primary_*` fields.
  
  readOnly: true
  
  Example:
  
  ```json
  2
  ```

- `amount` (required)
  Type: string, amount
  
  Amount of the transaction.
  
  Example:
  
  ```json
  "123.45"
  ```

- `pc_amount` (optional)
  Type: string, amount
  
  Amount of the transaction in the primary currency of this administration. The `primary_currency_*` fields reflect the currency used. This field is NULL if the user does have 'convert to primary' set to true in their settings.
  
  Example:
  
  ```json
  "123.45"
  ```

- `foreign_amount` (optional)
  Type: string, amount; nullable
  
  The amount in the set foreign currency. May be NULL if the transaction does not have a foreign amount.
  
  Example:
  
  ```json
  "123.45"
  ```

- `pc_foreign_amount` (optional)
  Type: string, amount
  
  Foreign amount of the transaction in the primary currency of this administration. The `primary_currency_*` fields reflect the currency used. This field is NULL if the user does have 'convert to primary' set to true in their settings.
  
  Example:
  
  ```json
  "123.45"
  ```

- `source_balance_after` (optional)
  Type: string, amount; nullable
  
  The balance of the source account. This is the balance in the account's currency which may be different from this transaction, and is not provided in this model.
  
  Example:
  
  ```json
  "123.45"
  ```

- `pc_source_balance_after` (optional)
  Type: string, amount; nullable
  
  The balance of the source account in the primary currency of this administration. The `primary_currency_*` fields reflect the currency used. This field is NULL if the user does have 'convert to primary' set to true in their settings.
  
  Example:
  
  ```json
  "123.45"
  ```

- `destination_balance_after` (optional)
  Type: string, amount; nullable
  
  The balance of the destination account. This is the balance in the account's currency which may be different from this transaction, and is not provided in this model.
  
  Example:
  
  ```json
  "123.45"
  ```

- `pc_destination_balance_after` (optional)
  Type: string, amount; nullable
  
  The balance of the destination account in the primary currency of this administration. The `primary_currency_*` fields reflect the currency used. This field is NULL if the user does have 'convert to primary' set to true in their settings.
  
  Example:
  
  ```json
  "123.45"
  ```

- `description` (required)
  Type: string, string
  
  Description of the transaction.
  
  Example:
  
  ```json
  "Vegetables"
  ```

- `source_id` (required)
  Type: string, string; nullable
  
  ID of the source account. For a withdrawal or a transfer, this must always be an asset account. For deposits, this must be a revenue account.
  
  Example:
  
  ```json
  "2"
  ```

- `source_name` (optional)
  Type: string, string; nullable
  
  Name of the source account. For a withdrawal or a transfer, this must always be an asset account. For deposits, this must be a revenue account. Can be used instead of the source_id. If the transaction is a deposit, the source_name can be filled in freely: the account will be created based on the name.
  
  Example:
  
  ```json
  "Checking account"
  ```

- `source_iban` (optional)
  Type: string, string; nullable
  
  readOnly: true
  
  Example:
  
  ```json
  "NL02ABNA0123456789"
  ```

- `source_type` (optional)
  Reference: [AccountTypeProperty](https://sourcey-firefly.pages.dev/api/models/accounttypeproperty/index.md); Type: string, string
  
  enum: ["Default account","Cash account","Asset account","Expense account","Revenue account","Initial balance account","Beneficiary account","Import account","Reconciliation account","Loan","Debt","Mortgage"]
  
  readOnly: true
  
  Example:
  
  ```json
  "Asset account"
  ```

- `destination_id` (required)
  Type: string, string; nullable
  
  ID of the destination account. For a deposit or a transfer, this must always be an asset account. For withdrawals this must be an expense account.
  
  Example:
  
  ```json
  "2"
  ```

- `destination_name` (optional)
  Type: string, string; nullable
  
  Name of the destination account. You can submit the name instead of the ID. For everything except transfers, the account will be auto-generated if unknown, so submitting a name is enough.
  
  Example:
  
  ```json
  "Buy and Large"
  ```

- `destination_iban` (optional)
  Type: string, string; nullable
  
  readOnly: true
  
  Example:
  
  ```json
  "NL02ABNA0123456789"
  ```

- `destination_type` (optional)
  Reference: [AccountTypeProperty](https://sourcey-firefly.pages.dev/api/models/accounttypeproperty/index.md); Type: string, string
  
  enum: ["Default account","Cash account","Asset account","Expense account","Revenue account","Initial balance account","Beneficiary account","Import account","Reconciliation account","Loan","Debt","Mortgage"]
  
  readOnly: true
  
  Example:
  
  ```json
  "Asset account"
  ```

- `budget_id` (optional)
  Type: string, string; nullable
  
  The budget ID for this transaction.
  
  Example:
  
  ```json
  "4"
  ```

- `budget_name` (optional)
  Type: string, string; nullable
  
  The name of the budget used.
  
  readOnly: true
  
  Example:
  
  ```json
  "Groceries"
  ```

- `category_id` (optional)
  Type: string, string; nullable
  
  The category ID for this transaction.
  
  Example:
  
  ```json
  "43"
  ```

- `category_name` (optional)
  Type: string, string; nullable
  
  The name of the category to be used. If the category is unknown, it will be created. If the ID and the name point to different categories, the ID overrules the name.
  
  Example:
  
  ```json
  "Groceries"
  ```

- `bill_id` (optional)
  Type: string, string; nullable
  
  The associated subscription ID for this transaction. `bill` refers to the OLD name for subscriptions and this field will be removed.
  
  Example:
  
  ```json
  "111"
  ```

- `bill_name` (optional)
  Type: string, string; nullable
  
  The associated subscription name for this transaction. `bill` refers to the OLD name for subscriptions and this field will be removed.
  
  Example:
  
  ```json
  "Monthly rent"
  ```

- `subscription_id` (optional)
  Type: string, string; nullable
  
  The associated subscription ID for this transaction.
  
  Example:
  
  ```json
  "111"
  ```

- `subscription_name` (optional)
  Type: string, string; nullable
  
  The associated subscription name for this transaction.
  
  Example:
  
  ```json
  "Monthly rent"
  ```

- `reconciled` (optional)
  Type: boolean
  
  If the transaction has been reconciled already. When you set this, the amount can no longer be edited by the user.
  
  Example:
  
  ```json
  false
  ```

- `notes` (optional)
  Type: string, string; nullable
  
  Example:
  
  ```json
  "Some example notes"
  ```

- `tags` (optional)
  Type: array; nullable
  
  Array of tags.
  
  Example:
  
  ```json
  null
  ```
  
  Items:
    Type: string, string
    
    Tag.
    
    Example:
    
    ```json
    "Barbecue preparation"
    ```

- `internal_reference` (optional)
  Type: string, string; nullable
  
  Reference to internal reference of other systems.

- `external_id` (optional)
  Type: string, string; nullable
  
  Reference to external ID in other systems.

- `external_url` (optional)
  Type: string, string; nullable
  
  External, custom URL for this transaction.

- `original_source` (optional)
  Type: string, string; nullable
  
  System generated identifier for original creator of transaction.
  
  readOnly: true

- `recurrence_id` (optional)
  Type: string, string; nullable
  
  Reference to recurrence that made the transaction.
  
  readOnly: true

- `recurrence_total` (optional)
  Type: integer, int32; nullable
  
  Total number of transactions expected to be created by this recurrence repetition. Will be 0 if infinite.
  
  readOnly: true
  
  Example:
  
  ```json
  0
  ```

- `recurrence_count` (optional)
  Type: integer, int32; nullable
  
  The # of the current transaction created under this recurrence.
  
  readOnly: true
  
  Example:
  
  ```json
  12
  ```

- `import_hash_v2` (optional)
  Type: string, string; nullable
  
  Hash value of original import transaction (for duplicate detection).
  
  readOnly: true

- `sepa_cc` (optional)
  Type: string, string; nullable
  
  SEPA Clearing Code

- `sepa_ct_op` (optional)
  Type: string, string; nullable
  
  SEPA Opposing Account Identifier

- `sepa_ct_id` (optional)
  Type: string, string; nullable
  
  SEPA end-to-end Identifier

- `sepa_db` (optional)
  Type: string, string; nullable
  
  SEPA mandate identifier

- `sepa_country` (optional)
  Type: string, string; nullable
  
  SEPA Country

- `sepa_ep` (optional)
  Type: string, string; nullable
  
  SEPA External Purpose indicator

- `sepa_ci` (optional)
  Type: string, string; nullable
  
  SEPA Creditor Identifier

- `sepa_batch_id` (optional)
  Type: string, string; nullable
  
  SEPA Batch ID

- `interest_date` (optional)
  Type: string, date-time; nullable

- `book_date` (optional)
  Type: string, date-time; nullable

- `process_date` (optional)
  Type: string, date-time; nullable

- `due_date` (optional)
  Type: string, date-time; nullable

- `payment_date` (optional)
  Type: string, date-time; nullable

- `invoice_date` (optional)
  Type: string, date-time; nullable

- `latitude` (optional)
  Type: number, double; nullable
  
  Latitude of the transaction's location, if applicable. Can be used to draw a map.
  
  Example:
  
  ```json
  51.983333
  ```

- `longitude` (optional)
  Type: number, double; nullable
  
  Latitude of the transaction's location, if applicable. Can be used to draw a map.
  
  Example:
  
  ```json
  5.916667
  ```

- `zoom_level` (optional)
  Type: integer, int32; nullable
  
  Zoom level for the map, if drawn. This to set the box right. Unfortunately this is a proprietary value because each map provider has different zoom levels.
  
  Example:
  
  ```json
  6
  ```

- `has_attachments` (optional)
  Type: boolean
  
  If the transaction has attachments.
  
  Example:
  
  ```json
  false
  ```