n8n-nodes-ibanforge 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 IBANforge
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# n8n-nodes-ibanforge
|
|
2
2
|
|
|
3
|
-
IBAN validation, BIC/SWIFT lookup, Swiss clearing and compliance pre-checks inside your [n8n](https://n8n.io) workflows
|
|
3
|
+
IBAN validation, BIC/SWIFT lookup, Swiss clearing and compliance pre-checks inside your [n8n](https://n8n.io) workflows, backed by the [IBANforge](https://ibanforge.com?src=n8n) API and national bank registers (121k+ BIC entries, 89 IBAN countries).
|
|
4
4
|
|
|
5
5
|
Typical uses: verify supplier IBANs at onboarding, triage a payout list before the batch leaves, enrich a CRM record with the issuing bank, stop payments whose bank code the national register does not know.
|
|
6
6
|
|
|
@@ -11,7 +11,11 @@ Typical uses: verify supplier IBANs at onboarding, triage a payout list before t
|
|
|
11
11
|
| **Validate IBAN** | Structure + checksum + issuing bank (BIC), bank-code check against the national register (`not_in_register` means the register allocates the code to nobody), EMI/vIBAN classification, SEPA + VoP reachability |
|
|
12
12
|
| **Look up BIC** | BIC/SWIFT → bank name, city, country, LEI |
|
|
13
13
|
| **Look up Swiss clearing** | BC-Nummer / IID → institution, seat address, SIC/euroSIC/instant rails, QR-IID semantics |
|
|
14
|
-
| **Compliance check** | Bank-level sanctions (OFAC
|
|
14
|
+
| **Compliance check** | Bank-level sanctions (OFAC, EU, UN), FATF lists, SEPA/VoP, 0-100 risk score. Bank-level, not name screening |
|
|
15
|
+
|
|
16
|
+
## Example workflow
|
|
17
|
+
|
|
18
|
+
[`examples/check-supplier-iban.json`](https://github.com/cammac-creator/ibanforge/blob/main/integrations/n8n/examples/check-supplier-iban.json) is a four-node workflow you can paste into n8n (**Workflows → Import from File**, or paste it on the canvas): a manual trigger, a field holding a supplier IBAN, the IBANforge node set to **Validate IBAN**, and an **If** node that routes on the `valid` field of the answer. Pick your IBANforge API credentials on the IBANforge node after importing.
|
|
15
19
|
|
|
16
20
|
## Installation
|
|
17
21
|
|
|
@@ -25,7 +29,19 @@ npm install n8n-nodes-ibanforge
|
|
|
25
29
|
|
|
26
30
|
## Credentials
|
|
27
31
|
|
|
28
|
-
|
|
32
|
+
The node needs an IBANforge API key. The quickest one needs no e-mail and no card:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
curl -X POST https://api.ibanforge.com/v1/keys/generate \
|
|
36
|
+
-H "Content-Type: application/json" \
|
|
37
|
+
-d '{"source": "n8n"}'
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The answer carries an `ifk_…` key, shown once, worth 25 requests a month on every endpoint. Paste it into the node's IBANforge API credentials.
|
|
41
|
+
|
|
42
|
+
To raise that same key to 200 requests a month, claim it once it has served a call: `POST https://api.ibanforge.com/v1/keys/claim` with the key in the `Authorization: Bearer ifk_…` header, then the six-digit code mailed to the address you give for this. The steps are in [the API keys guide](https://ibanforge.com/docs/api-keys?src=n8n).
|
|
43
|
+
|
|
44
|
+
Prefer to give an address from the start? Send it in the same call and the key starts at 200 requests a month:
|
|
29
45
|
|
|
30
46
|
```bash
|
|
31
47
|
curl -X POST https://api.ibanforge.com/v1/keys/generate \
|
|
@@ -33,14 +49,14 @@ curl -X POST https://api.ibanforge.com/v1/keys/generate \
|
|
|
33
49
|
-d '{"email": "you@company.com", "source": "n8n"}'
|
|
34
50
|
```
|
|
35
51
|
|
|
36
|
-
|
|
52
|
+
The [key dialog on ibanforge.com](https://ibanforge.com?src=n8n) does the same from a browser.
|
|
37
53
|
|
|
38
54
|
## Honest limits
|
|
39
55
|
|
|
40
|
-
- The bank-code check tells you what the **national register** says about the code inside the IBAN
|
|
56
|
+
- The bank-code check tells you what the **national register** says about the code inside the IBAN. It never claims the *account* exists or matches a name (that is Verification of Payee, a regulated-PSP scheme).
|
|
41
57
|
- Sanctions screening is **bank-level (BIC8)**, not name-level, and is not a regulated AML/CFT product.
|
|
42
58
|
- Full API reference: [ibanforge.com/docs](https://ibanforge.com/docs?src=n8n) · data provenance: [ibanforge.com/docs/data-sources](https://ibanforge.com/docs/data-sources?src=n8n)
|
|
43
59
|
|
|
44
60
|
## License
|
|
45
61
|
|
|
46
|
-
[MIT](
|
|
62
|
+
[MIT](LICENSE)
|
|
@@ -4,6 +4,7 @@ exports.IbanForgeApi = void 0;
|
|
|
4
4
|
class IbanForgeApi {
|
|
5
5
|
name = 'ibanForgeApi';
|
|
6
6
|
displayName = 'IBANforge API';
|
|
7
|
+
icon = { light: 'file:ibanforge.svg', dark: 'file:ibanforge.svg' };
|
|
7
8
|
documentationUrl = 'https://ibanforge.com/docs/api-keys?src=n8n';
|
|
8
9
|
properties = [
|
|
9
10
|
{
|
|
@@ -12,7 +13,10 @@ class IbanForgeApi {
|
|
|
12
13
|
type: 'string',
|
|
13
14
|
typeOptions: { password: true },
|
|
14
15
|
default: '',
|
|
15
|
-
|
|
16
|
+
// 24/09/2026 : l'ancien texte n'offrait que la clé avec adresse (« POST
|
|
17
|
+
// your email »). La clé sans e-mail passe en premier ; `source: n8n`
|
|
18
|
+
// garde l'attribution de la porte d'entrée (src/lib/key-origins.ts).
|
|
19
|
+
description: 'A key that needs no e-mail and no card: POST https://api.ibanforge.com/v1/keys/generate with {"source":"n8n"} returns an ifk_ key worth 25 requests a month, raised to 200 a month once claimed at /v1/keys/claim. Or use the dialog at https://ibanforge.com?src=n8n',
|
|
16
20
|
},
|
|
17
21
|
];
|
|
18
22
|
authenticate = {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60">
|
|
2
|
+
<rect width="60" height="60" rx="12" fill="#14263f"/>
|
|
3
|
+
<path d="M14 40 V20 h4 v20 z" fill="#c8742f"/>
|
|
4
|
+
<path d="M24 40 V20 h4 v8 l8 -8 h5.5 l-9 9 9.5 11 h-5.5 l-7 -8.5 -1 1 V40 z" fill="#f5f1e6"/>
|
|
5
|
+
<circle cx="45" cy="23" r="3" fill="#c8742f"/>
|
|
6
|
+
</svg>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IbanForge = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
4
5
|
/**
|
|
5
6
|
* Declarative (routing-style) node: every operation maps straight onto the
|
|
6
|
-
* REST API, no execute() code and zero runtime dependencies
|
|
7
|
+
* REST API, no execute() code and zero runtime dependencies, the shape the
|
|
7
8
|
* n8n verified-community-node programme requires (MIT + no deps + one
|
|
8
9
|
* package per service).
|
|
9
10
|
*/
|
|
@@ -11,16 +12,17 @@ class IbanForge {
|
|
|
11
12
|
description = {
|
|
12
13
|
displayName: 'IBANforge',
|
|
13
14
|
name: 'ibanForge',
|
|
14
|
-
icon: 'file:ibanforge.svg',
|
|
15
|
+
icon: { light: 'file:ibanforge.svg', dark: 'file:ibanforge.svg' },
|
|
15
16
|
group: ['transform'],
|
|
16
17
|
version: 1,
|
|
17
18
|
subtitle: '={{$parameter["operation"]}}',
|
|
18
|
-
description: 'Validate IBANs against
|
|
19
|
+
description: 'Validate IBANs and check the bank code against national bank registers, resolve BIC/SWIFT codes, look up Swiss clearing data and run compliance pre-checks',
|
|
19
20
|
defaults: {
|
|
20
21
|
name: 'IBANforge',
|
|
21
22
|
},
|
|
22
|
-
inputs: [
|
|
23
|
-
outputs: [
|
|
23
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
24
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
25
|
+
usableAsTool: true,
|
|
24
26
|
credentials: [
|
|
25
27
|
{
|
|
26
28
|
name: 'ibanForgeApi',
|
|
@@ -43,7 +45,7 @@ class IbanForge {
|
|
|
43
45
|
{
|
|
44
46
|
name: 'Validate IBAN',
|
|
45
47
|
value: 'validateIban',
|
|
46
|
-
action: 'Validate
|
|
48
|
+
action: 'Validate IBAN',
|
|
47
49
|
description: 'Structure + checksum + issuing bank, bank-code check against the national register, SEPA and VoP reachability',
|
|
48
50
|
routing: {
|
|
49
51
|
request: {
|
|
@@ -58,7 +60,7 @@ class IbanForge {
|
|
|
58
60
|
{
|
|
59
61
|
name: 'Look Up BIC',
|
|
60
62
|
value: 'lookupBic',
|
|
61
|
-
action: 'Look up
|
|
63
|
+
action: 'Look up BIC or SWIFT code',
|
|
62
64
|
description: 'Resolve a BIC/SWIFT code into bank name, city, country and LEI',
|
|
63
65
|
routing: {
|
|
64
66
|
request: {
|
|
@@ -70,7 +72,7 @@ class IbanForge {
|
|
|
70
72
|
{
|
|
71
73
|
name: 'Look Up Swiss Clearing',
|
|
72
74
|
value: 'lookupChClearing',
|
|
73
|
-
action: 'Look up
|
|
75
|
+
action: 'Look up BC number or IID',
|
|
74
76
|
description: 'Swiss BC-Nummer / IID: institution, seat address, SIC/euroSIC/instant participation, QR-IID semantics',
|
|
75
77
|
routing: {
|
|
76
78
|
request: {
|
|
@@ -82,8 +84,8 @@ class IbanForge {
|
|
|
82
84
|
{
|
|
83
85
|
name: 'Compliance Check',
|
|
84
86
|
value: 'complianceCheck',
|
|
85
|
-
action: 'Run
|
|
86
|
-
description: 'Bank-level sanctions (OFAC + EU), FATF lists, SEPA/VoP reachability, 0-100 risk score
|
|
87
|
+
action: 'Run compliance check on IBAN',
|
|
88
|
+
description: 'Bank-level sanctions (OFAC + EU), FATF lists, SEPA/VoP reachability, 0-100 risk score, at bank level and not by name',
|
|
87
89
|
routing: {
|
|
88
90
|
request: {
|
|
89
91
|
method: 'POST',
|
|
@@ -103,7 +105,7 @@ class IbanForge {
|
|
|
103
105
|
type: 'string',
|
|
104
106
|
required: true,
|
|
105
107
|
default: '',
|
|
106
|
-
placeholder: 'DE89370400440532013000',
|
|
108
|
+
placeholder: 'e.g. DE89370400440532013000',
|
|
107
109
|
description: 'The IBAN to check (spaces are tolerated)',
|
|
108
110
|
displayOptions: {
|
|
109
111
|
show: {
|
|
@@ -117,7 +119,7 @@ class IbanForge {
|
|
|
117
119
|
type: 'string',
|
|
118
120
|
required: true,
|
|
119
121
|
default: '',
|
|
120
|
-
placeholder: 'COBADEFF',
|
|
122
|
+
placeholder: 'e.g. COBADEFF',
|
|
121
123
|
description: 'BIC8 or BIC11 to resolve',
|
|
122
124
|
displayOptions: {
|
|
123
125
|
show: {
|
|
@@ -131,7 +133,7 @@ class IbanForge {
|
|
|
131
133
|
type: 'string',
|
|
132
134
|
required: true,
|
|
133
135
|
default: '',
|
|
134
|
-
placeholder: '230',
|
|
136
|
+
placeholder: 'e.g. 230',
|
|
135
137
|
description: 'Swiss institution identifier (3-5 digits) or QR-IID (30000-31999)',
|
|
136
138
|
displayOptions: {
|
|
137
139
|
show: {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-ibanforge",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "IBAN validation, BIC/SWIFT lookup, Swiss clearing and compliance pre-checks for n8n workflows
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"description": "IBAN validation, BIC/SWIFT lookup, Swiss clearing and compliance pre-checks for n8n workflows, backed by national bank registers (121k+ BIC entries, 89 IBAN countries)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
7
7
|
"iban",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"node": ">=20"
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
|
-
"build": "tsc && mkdir -p dist/nodes/IbanForge && cp nodes/IbanForge/ibanforge.svg nodes/IbanForge/IbanForge.node.json dist/nodes/IbanForge/",
|
|
31
|
+
"build": "tsc && mkdir -p dist/nodes/IbanForge dist/credentials && cp nodes/IbanForge/ibanforge.svg nodes/IbanForge/IbanForge.node.json dist/nodes/IbanForge/ && cp credentials/ibanforge.svg dist/credentials/",
|
|
32
32
|
"lint": "tsc --noEmit"
|
|
33
33
|
},
|
|
34
34
|
"files": [
|
|
@@ -43,6 +43,9 @@
|
|
|
43
43
|
"dist/nodes/IbanForge/IbanForge.node.js"
|
|
44
44
|
]
|
|
45
45
|
},
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"n8n-workflow": "*"
|
|
48
|
+
},
|
|
46
49
|
"devDependencies": {
|
|
47
50
|
"n8n-workflow": "^2.16.0",
|
|
48
51
|
"typescript": "^5.6.0"
|