n8n-nodes-aqbanking
Version:
n8n community node to interact with German banks using FinTS/HBCI protocol for account balance queries and transaction retrieval - Development/Testing version without aqbanking-cli dependency
172 lines (171 loc) • 7.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AqBankingCredentials = void 0;
class AqBankingCredentials {
constructor() {
this.name = 'aqBankingCredentials';
this.displayName = 'AqBanking FinTS/HBCI Credentials';
this.documentationUrl = 'https://github.com/CePeHH/n8n-nodes-aqbanking#configuration';
this.icon = 'fa:university';
this.properties = [
{
displayName: 'FinTS Implementation',
name: 'fintsImplementation',
type: 'options',
options: [
{
name: 'Native JavaScript (Recommended)',
value: 'native',
},
{
name: 'Python fints',
value: 'python',
},
{
name: 'Docker AqBanking',
value: 'docker',
},
{
name: 'System AqBanking (Legacy)',
value: 'system',
},
],
default: 'native',
description: 'Choose the FinTS implementation method. Native JavaScript works without external dependencies.',
},
{
displayName: 'Bank Code (BLZ)',
name: 'bankCode',
type: 'string',
default: '',
required: true,
placeholder: '12345678',
description: 'Your bank\'s routing number (Bankleitzahl). This is an 8-digit number that identifies your bank.',
},
{
displayName: 'User ID (Benutzerkennung)',
name: 'userId',
type: 'string',
default: '',
required: true,
placeholder: 'MYUSERID123',
description: 'Your FinTS/HBCI user identification. This is typically your online banking username. NOT the customer ID.',
},
{
displayName: 'Customer ID (Kunden-ID)',
name: 'customerId',
type: 'string',
default: '',
placeholder: 'MYCUSTID123',
description: 'Customer ID (Kunden-ID). Some banks use a separate customer ID that differs from the user ID. Leave empty if not required by your bank.',
},
{
displayName: 'PIN',
name: 'pin',
type: 'string',
typeOptions: {
password: true,
},
default: '',
required: true,
description: 'Your online banking PIN. This will be securely encrypted and stored.',
},
{
displayName: 'FinTS Server URL',
name: 'serverUrl',
type: 'string',
default: '',
required: true,
placeholder: 'https://fints.mybank.de/fints30',
description: 'The FinTS server URL of your bank. This information can usually be found on your bank\'s website under "FinTS" or "HBCI" documentation.',
},
{
displayName: 'HBCI Version',
name: 'hbciVersion',
type: 'options',
options: [
{
name: 'FinTS 3.0 (Recommended)',
value: '300',
},
{
name: 'FinTS 4.1',
value: '410',
},
{
name: 'HBCI 2.2',
value: '220',
},
],
default: '300',
description: 'The HBCI/FinTS protocol version to use. FinTS 3.0 is recommended for most German banks.',
},
{
displayName: 'TAN Method ID',
name: 'tanMethodId',
type: 'string',
default: '999',
placeholder: '911',
description: 'The TAN method ID to use (e.g., 911 for mobileTAN, 920 for photoTAN, 921 for chipTAN QR). Use 999 for PIN/TAN with automatic method detection.',
},
{
displayName: 'TAN Medium Name',
name: 'tanMediumName',
type: 'string',
default: '',
placeholder: 'Mein iPhone 15 Pro',
description: 'The exact name of your TAN medium as registered in your online banking (e.g., smartphone name, TAN generator name). Required for most modern TAN methods.',
},
{
displayName: 'Use Non-Interactive Mode',
name: 'nonInteractive',
type: 'boolean',
default: true,
description: 'Whether to use non-interactive mode. This requires that you have set up a PIN list using aqhbci-tool4 mkpinlist.',
},
{
displayName: 'AqBanking User Name',
name: 'aqBankingUserName',
type: 'string',
default: '',
placeholder: 'Max Mustermann Girokonto',
description: 'Optional: A human-readable name for this user configuration in AqBanking (used during setup).',
},
{
displayName: 'Enable Debug Logging',
name: 'enableDebugLogging',
type: 'boolean',
default: false,
description: 'Whether to enable detailed logging for troubleshooting. WARNING: This may log sensitive information.',
},
{
displayName: 'Python Path',
name: 'pythonPath',
type: 'string',
default: 'python',
displayOptions: {
show: {
fintsImplementation: ['python'],
},
},
placeholder: 'python or /usr/bin/python3',
description: 'Path to Python executable. Requires python-fints package installed.',
},
{
displayName: 'Docker Image',
name: 'dockerImage',
type: 'string',
default: 'ghcr.io/larsux/aqbanking-docker',
displayOptions: {
show: {
fintsImplementation: ['docker'],
},
},
description: 'Docker image for AqBanking. Default is the community-maintained image.',
},
];
// Test will be handled by the node implementation
// No credential test endpoint needed since FinTS requires complex authentication
}
}
exports.AqBankingCredentials = AqBankingCredentials;