This document is generated from configuration structs in the source code using go generate. Do not edit manually.
Ynabber moves transactions from reader to writer in a fan-out fashion. Every writer will receive all transactions from all readers.
| Environment variable | Type | Default | Description |
|---|---|---|---|
| YNABBER_DATADIR | string |
. |
DataDir is the path for storing files |
| YNABBER_LOG_LEVEL | string |
info |
LogLevel sets the logging level (error, warn, info, debug, trace) |
| YNABBER_LOG_FORMAT | string |
text |
LogFormat sets the logging format (text, json) |
| YNABBER_READERS | []string |
nordigen |
Readers is a list of sources to read transactions from. |
| YNABBER_WRITERS | []string |
ynab |
Writers is a list of destinations to write transactions to. |
EnableBanking reads bank transactions through the EnableBanking Open Banking API. It connects to various European banks using PSD2 open banking standards to retrieve account information and transaction data.
| Environment variable | Type | Default | Description |
|---|---|---|---|
| ENABLEBANKING_APP_ID | string |
- | AppID is the EnableBanking application ID |
| ENABLEBANKING_COUNTRY | string |
- | Country is the country code (e.g., NO, SE, DK) |
| ENABLEBANKING_ASPSP | string |
- | ASPSP is the bank identifier (e.g., DNB, Nordea, SparBank) |
| ENABLEBANKING_REDIRECT_URL | string |
https://martinohansen.github.io/ynabber/ok.html |
RedirectURL is the URL where the user will be redirected after authorization |
| ENABLEBANKING_PEM_FILE | string |
- | PEMFile is the path to the private key file for JWT signing |
| ENABLEBANKING_SESSION_FILE | string |
- | SessionFile is the path where the session is stored for reuse |
| ENABLEBANKING_FROM_DATE | Date |
- | FromDate is the start date for transaction retrieval (YYYY-MM-DD format). |
| ENABLEBANKING_TO_DATE | Date |
- | ToDate is the end date for transaction retrieval. When omitted, it resolves dynamically to the current UTC date on each run. |
| ENABLEBANKING_INTERVAL | time.Duration |
- | Interval is the time between fetches (0 means run once and exit) |
| ENABLEBANKING_PAYEE_STRIP | []string |
- | PayeeStrip contains words to remove from payee names. Example: “foo,bar” removes “foo” and “bar” from all payee names. |
| ENABLEBANKING_PAYEE_STRIP_REGEX | PayeeRegex |
- | PayeeStripRegex is a comma-separated list of regular expressions whose matches are removed from payee names. Use it to strip dynamic prefixes or codes that PayeeStrip can’t express. Patterns cannot contain a literal comma. Example: “^Dk-Nota\S+\s+” turns “Dk-Nota61221 Remouladen” into “Remouladen”. |
Nordigen reads bank transactions through the Nordigen/GoCardless API. It connects to various European banks using PSD2 open banking standards to retrieve account information and transaction data.
| Environment variable | Type | Default | Description |
|---|---|---|---|
| NORDIGEN_BANKID | string |
- | BankID identifies the bank for creating requisitions |
| NORDIGEN_SECRET_ID | string |
- | SecretID is the client ID for API authentication |
| NORDIGEN_SECRET_KEY | string |
- | SecretKey is the client secret for API authentication |
| NORDIGEN_PAYEE_SOURCE | PayeeGroups |
remittance,name,additional |
PayeeSource defines the sources and order for extracting payee information. Multiple sources can be combined with “+” to merge their values. Groups are separated by “,” and tried in order until a non-empty result is found. Available sources: * remittance: uses the remittanceInformation fields * name: uses either the debtorName or creditorName field * additional: uses the additionalInformation field Example: “name+additional,remittance” will first try to combine name and additional fields, falling back to remittance if both are empty. |
| NORDIGEN_PAYEE_STRIP | []string |
- | PayeeStrip contains words to remove from payee names. Example: “foo,bar” removes “foo” and “bar” from all payee names. |
| NORDIGEN_PAYEE_STRIP_REGEX | PayeeRegex |
- | PayeeStripRegex is a comma-separated list of regular expressions whose matches are removed from payee names. Use it to strip dynamic prefixes or codes that PayeeStrip can’t express. Patterns cannot contain a literal comma. Example: “^Dk-Nota\S+\s+” turns “Dk-Nota61221 Remouladen” into “Remouladen”. |
| NORDIGEN_TRANSACTION_ID | string |
TransactionId |
TransactionID specifies which field to use as the unique transaction identifier. Banks may use different fields, and some change the ID format over time. Valid options: TransactionId, InternalTransactionId, ProprietaryBankTransactionCode |
| NORDIGEN_REQUISITION_HOOK | string |
- | RequisitionHook is an executable that runs at various stages of the requisition process. It receives arguments: <status> <link> Non-zero exit codes will stop the process. |
| NORDIGEN_REQUISITION_FILE | string |
- | RequisitionFile specifies the filename for storing requisition data. The file is stored in the directory defined by YNABBER_DATADIR. |
| NORDIGEN_INTERVAL | time.Duration |
6h |
Interval determines how often to fetch new transactions. Set to 0 to run only once instead of continuously. |
Package actual provides a writer implementation that sends transactions to an Actual Budget HTTP API instance.
| Environment variable | Type | Default | Description |
|---|---|---|---|
| ACTUAL_BASE_URL | string |
- | BaseURL points to the running actual-http-api service, e.g. https://actual.example.com |
| ACTUAL_API_KEY | string |
- | APIKey is an optional shared secret that will be sent via the x-api-key header. |
| ACTUAL_BUDGET_ID | string |
- | BudgetID is the Actual Sync ID for the budget to update. |
| ACTUAL_ACCOUNTMAP | AccountMap |
- | AccountMap maps reader accounts to Actual accounts. See reader for more details. For example: ‘{“<IBAN or Account ID>”: “<Actual Account ID>”}’ |
| ACTUAL_ENCRYPTION_PASSWORD | string |
- | EncryptionPassword optionally unlocks end-to-end encrypted budgets. |
| ACTUAL_FROM_DATE | Date |
- | FromDate only imports transactions from this date onward. For example: 2006-01-02 |
| ACTUAL_DELAY | time.Duration |
0 |
Delay sending transactions to Actual by this duration. This can be necessary if the bank changes transaction IDs after some time, or enriches remittance information after booking (which can cause duplicate imports). Default is 0 (no delay). |
| ACTUAL_CLEARED | bool |
false |
Cleared sets the transaction cleared flag for newly created transactions. Default is false. |
| ACTUAL_REIMPORT_DELETED | bool |
false |
ReimportDeleted controls whether Actual should reimport transactions that were previously imported and then deleted. Default is false. |
| ACTUAL_DRY_RUN | bool |
false |
DryRun simulates the import without persisting any data. Useful for verifying mappings and deduplication before writing. Default is false. |
YNAB writes transactions You Need a Budget (YNAB) using their API. It handles transaction and account mapping, validation, deduplication, inflow/outflow swapping, and transaction filtering.
| Environment variable | Type | Default | Description |
|---|---|---|---|
| YNAB_BUDGETID | string |
- | BudgetID for the budget you want to import transactions into. You can find the ID in the URL of YNAB: https://app.youneedabudget.com/<budget_id>/budget |
| YNAB_TOKEN | string |
- | Token is your personal access token obtained from the YNAB developer settings section |
| YNAB_ACCOUNTMAP | AccountMap |
- | AccountMap maps reader accounts to YNAB accounts. See reader for more details. For example: ‘{“<IBAN, BBAN or CPAN>”: “<YNAB Account ID>”}’ |
| YNAB_FROM_DATE | Date |
- | FromDate only imports transactions from this date onward. For example: 2006-01-02 |
| YNAB_DELAY | time.Duration |
0 |
Delay sending transactions to YNAB by this duration. This can be necessary if the bank changes transaction IDs after some time, or enriches remittance information after booking (which can cause duplicate imports). Default is 0 (no delay). |
| YNAB_CLEARED | TransactionStatus |
cleared |
Cleared sets the transaction status. Possible values: cleared, uncleared, reconciled. |
| YNAB_SWAPFLOW | []string |
- | SwapFlow reverses inflow to outflow and vice versa for any account identified by IBAN or ID. Example: “DK9520000123456789,NO8330001234567” |