bcheck Format

If you choose to use a text editor to add in entries, you can use any of the formats mentioned in Importing & Exporting, but this was the original and only format used in the early days of this program.

Today, it is used as a way to import or backup data, and has not changed a lot.

If you want to use this format, you'll be please to know that it is just a JSON file under the extension bcheck.

This was done to prevent confusion, since this program will not accept just any JSON scheme.

Keys

When writing up the file, these are these are keys supported:

id

The record's identifier.

If not provided, a UUID is generated for it.

transaction
This key contains all the data pertaining to a transaction, and is thus required.
date

The date the transaction took place.

The expected format is YYYY-MM-DD.

If this is left out, today's date is used.

check_number

The check number of the transaction.

If this is not provided, there will be no associated value.

category

Assigns a category to the transaction.

If this is left off, no category will be assigned.

vendor

The vendor/payee you did business with.

As there is no such thing as an exchange without a recipient, this is required.

memo

A brief note regarding the transaction.

It is recommended to provide this with a ransaction, but is not required.

amount

The amount exchanged.

While this is not required by the backend to be present, it should be present and must be positive.

type

This specifies the type of transaction.

The value must be either deposit or withdrawal.

If left out, this is assumed to be a withdrawal.

is_reconciled

determines if the transaction has been reconciled.

If this is left off, it is assumed to be false.

Examples

The content should look like this:

[
    {
        "id": "FF04C3DC-F0FE-472E-8737-0F4034C049F0",
        "transaction": {
            "date": "2021-07-08",
            "check_number": 1260,
            "category": "Opening Balance",
            "vendor": "Sam Hill Credit Union",
            "memo": "Open Account",
            "amount": 500.0,
            "type": "deposit",
            "is_reconciled": true
        }
    },
    {
        "id": "1422CBC6-7B0B-4584-B7AB-35167CC5647B",
        "transaction": {
            "date": "2021-07-08",
            "category": "Gifts",
            "vendor": "Fake Street Electronics",
            "memo": "Head set",
            "amount": 200.0
        }
    },
    {
        "id": "BB22187E-0BD3-41E8-B3D8-8136BD700865",
        "transaction": {
            "date": "2021-07-08",
            "vendor": "Velociraptor Entertainment",
            "memo": "Pay Day",
            "amount": 50000.0,
            "type": "deposit"
        }
    }
]

And a minimal entry will look like this:

{
    "transaction": {
        "vendor": "Fake Street Electronics",
        "amount": 200.0,
    }
}