n8n-nodes-nokfi 0.1.2 → 0.2.0

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/README.md CHANGED
@@ -4,6 +4,8 @@ This is an n8n community node for [Nokfi](https://nokfi.app): the AI for small-b
4
4
 
5
5
  - **Extract invoices** from PDFs, images or text and get the same JSON every time, with **validation done by Nokfi, not by the AI**: totals (base + VAT − withholding = total), Spanish NIF/CIF/NIE check digits, dates and usual VAT rates.
6
6
  - **Run financial analyses** (sales, cash, stock, purchases, profit, two-period comparison, document folders) and get a structured report: summary, key figures, priorities and an action plan.
7
+ - **Spanish tax tools without AI** (no quota): validate NIF/NIE/CIF, VAT with the equivalence surcharge, IRPF withholding, Modelo 130 and the tax calendar.
8
+ - **Nokfi Trigger**: start a workflow when an analysis or a background job finishes, when your quota reaches 80 % or 100 %, or 7 days and 1 day before each tax deadline. Signed webhooks, registered automatically.
7
9
  - **Check your usage** (plan, daily quota, analyses used today).
8
10
 
9
11
  Data is processed by AI providers that do not train on it. Invoices sent through the API are not stored.
@@ -16,9 +18,11 @@ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes
16
18
 
17
19
  ## Credentials
18
20
 
19
- 1. Sign in to Nokfi and open **Developers → Keys** (Pro and Max plans).
21
+ 1. Sign in to Nokfi and open **Developers → Keys**.
20
22
  2. Create a key. Name it after the client or workflow: Nokfi shows the usage of each key separately.
21
- 3. In n8n, create a **Nokfi API** credential and paste the key (`nk_live_…`). Leave the base URL as `https://nokfi.app`.
23
+ - **Live keys** (`nk_live_…`, Pro and Max plans) work with your data and use your quota.
24
+ - **Test keys** (`nk_test_…`, every plan) validate input the same way and return realistic sample data, without using quota. Build and test with them, then switch.
25
+ 3. In n8n, create a **Nokfi API** credential and paste the key. Leave the base URL as `https://nokfi.app`.
22
26
 
23
27
  The credential test calls `GET /api/v1/usage`.
24
28
 
@@ -29,9 +33,27 @@ The credential test calls `GET /api/v1/usage`.
29
33
  | Invoice | Extract | Reads up to 5 documents per request (PDF, JPG, PNG, WebP or text). Use `*` as the binary field to send every attachment of the item. Outputs one item per invoice (or one item with all of them). |
30
34
  | Analysis | Create | Runs an analysis. For spreadsheets, "All Input Items as Rows" sends the whole input (e.g. a Google Sheets node) as one table. |
31
35
  | Analysis | Get / Get Many | Reads reports you already have. |
36
+ | Tax | Validate Tax ID | NIF, NIE or CIF check digit, entity type and EU VAT number. |
37
+ | Tax | Calculate VAT | VAT with or without VAT included, plus the equivalence surcharge. |
38
+ | Tax | Calculate Withholding | IRPF withholding (professional 15 %, new professional 7 %, rental 19 %…) and the invoice total. |
39
+ | Tax | Estimate Modelo 130 | From your year-to-date figures or from your Nokfi ledger. |
40
+ | Tax | Get Fiscal Calendar | Upcoming deadlines (303, 130, 111, 115, 390…) with days left, one item each. |
32
41
  | Usage | Get | Plan, daily quota and analyses used today. |
33
42
 
34
- Every invoice request and every analysis uses **1 analysis from your daily quota** (the same quota as the web app). Maximum 30 requests per minute per key.
43
+ Every invoice request and every analysis uses **1 analysis from your daily quota** (the same quota as the web app); the tax tools use none. Maximum 30 requests per minute per key. Requests carry an `Idempotency-Key`, so n8n's *Retry On Fail* never charges twice.
44
+
45
+ **Run in Background**: Invoice › Extract and Analysis › Create can return a job right away (`?async=true`). Pair it with the Nokfi Trigger (*Job Completed*) to get the result.
46
+
47
+ ### Nokfi Trigger
48
+
49
+ Choose the events and activate the workflow: the trigger registers its webhook in Nokfi (you'll see it in **Developers → Webhooks**) and deletes it when you deactivate the workflow. Every request is checked against the `Nokfi-Signature` HMAC; unsigned or old requests get a 401. Your n8n instance must be reachable on a public https URL.
50
+
51
+ | Event | When |
52
+ |---|---|
53
+ | Analysis Completed | A report finished (API or web app). Includes the report. |
54
+ | Job Completed / Job Failed | A background job finished. Includes the result or the error. |
55
+ | Quota Threshold | You reached 80 % or 100 % of today's quota. |
56
+ | Fiscal Deadline | A tax deadline is 7 days or 1 day away (according to your legal form). |
35
57
 
36
58
  ### Invoice output
37
59
 
@@ -52,6 +74,8 @@ Documents that cannot be read come out as items with `is_invoice: false` and an
52
74
 
53
75
  - **Invoices from email to a spreadsheet**: Gmail Trigger (download attachments) → Nokfi (Invoice › Extract, binary field `*`) → IF `checks.totals_ok` → Google Sheets (append row).
54
76
  - **Weekly sales report**: Schedule Trigger → Google Sheets (read) → Nokfi (Analysis › Create, Sales, All Input Items as Rows) → Send Email with `{{ $json.report.summary }}`.
77
+ - **Tax deadline reminder to Slack**: Nokfi Trigger (Fiscal Deadline) → Slack with `{{ $json.data.models.join(', ') }} due on {{ $json.data.date }}`.
78
+ - **Background invoice batch**: Nokfi (Invoice › Extract, Run in Background) in one workflow, Nokfi Trigger (Job Completed) → Google Sheets in another.
55
79
  - **AI Agent tool**: the node can be used as a tool by n8n's AI Agent.
56
80
 
57
81
  ## Resources
@@ -15,8 +15,8 @@ class NokfiApi {
15
15
  typeOptions: { password: true },
16
16
  default: '',
17
17
  required: true,
18
- placeholder: 'nk_live_…',
19
- description: 'Create it in Nokfi → Developers → Keys. Available on the Pro and Max plans. Tip: name each key after the client or workflow to see its usage separately.',
18
+ placeholder: 'nk_live_… or nk_test_…',
19
+ description: 'Create it in Nokfi → Developers → Keys. Live keys (nk_live_) on the Pro and Max plans; test keys (nk_test_) on every plan return sample data and use no quota. Tip: name each key after the client or workflow to see its usage separately.',
20
20
  },
21
21
  {
22
22
  displayName: 'Base URL',
@@ -1 +1 @@
1
- {"version":3,"file":"NokfiApi.credentials.js","sourceRoot":"","sources":["../../credentials/NokfiApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,QAAQ;IAArB;QACC,SAAI,GAAG,UAAU,CAAC;QAElB,gBAAW,GAAG,WAAW,CAAC;QAE1B,SAAI,GAAS,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC;QAExF,qBAAgB,GAAG,4BAA4B,CAAC;QAEhD,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,WAAW;gBACxB,WAAW,EACV,0JAA0J;aAC3J;YACD;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mBAAmB;gBAC5B,WAAW,EAAE,4DAA4D;aACzE;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,iCAAiC;iBAChD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,2BAA2B;gBACpC,GAAG,EAAE,eAAe;gBACpB,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AA9CD,4BA8CC"}
1
+ {"version":3,"file":"NokfiApi.credentials.js","sourceRoot":"","sources":["../../credentials/NokfiApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,QAAQ;IAArB;QACC,SAAI,GAAG,UAAU,CAAC;QAElB,gBAAW,GAAG,WAAW,CAAC;QAE1B,SAAI,GAAS,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC;QAExF,qBAAgB,GAAG,4BAA4B,CAAC;QAEhD,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,wBAAwB;gBACrC,WAAW,EACV,6OAA6O;aAC9O;YACD;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mBAAmB;gBAC5B,WAAW,EAAE,4DAA4D;aACzE;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,iCAAiC;iBAChD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,2BAA2B;gBACpC,GAAG,EAAE,eAAe;gBACpB,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AA9CD,4BA8CC"}
@@ -13,7 +13,7 @@ class Nokfi {
13
13
  group: ['transform'],
14
14
  version: 1,
15
15
  subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
16
- description: 'Extract and validate invoices, and run financial analyses for small businesses with Nokfi',
16
+ description: 'Extract and validate invoices, run financial analyses and Spanish tax calculations for small businesses with Nokfi',
17
17
  defaults: { name: 'Nokfi' },
18
18
  inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
19
19
  outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
@@ -28,6 +28,7 @@ class Nokfi {
28
28
  options: [
29
29
  { name: 'Invoice', value: 'invoice' },
30
30
  { name: 'Analysis', value: 'analysis' },
31
+ { name: 'Tax', value: 'tax' },
31
32
  { name: 'Usage', value: 'usage' },
32
33
  ],
33
34
  default: 'invoice',
@@ -173,6 +174,149 @@ class Nokfi {
173
174
  default: 50,
174
175
  description: 'Max number of results to return',
175
176
  },
177
+ {
178
+ displayName: 'Operation',
179
+ name: 'operation',
180
+ type: 'options',
181
+ noDataExpression: true,
182
+ displayOptions: { show: { resource: ['tax'] } },
183
+ options: [
184
+ { name: 'Calculate VAT', value: 'vat', action: 'Calculate VAT', description: 'Spanish VAT (IVA) with or without VAT included, and the equivalence surcharge' },
185
+ { name: 'Calculate Withholding', value: 'withholding', action: 'Calculate IRPF withholding', description: 'IRPF withholding for an invoice and the total to collect' },
186
+ { name: 'Estimate Modelo 130', value: 'model130', action: 'Estimate modelo 130', description: 'Quarterly IRPF payment, from your figures or from your Nokfi ledger' },
187
+ { name: 'Get Fiscal Calendar', value: 'calendar', action: 'Get upcoming tax deadlines', description: 'Upcoming Spanish tax deadlines with days left' },
188
+ { name: 'Validate Tax ID', value: 'taxId', action: 'Validate a spanish tax ID', description: 'NIF, NIE or CIF check digit, entity type and EU VAT number' },
189
+ ],
190
+ default: 'taxId',
191
+ },
192
+ {
193
+ displayName: 'Tax ID',
194
+ name: 'taxId',
195
+ type: 'string',
196
+ required: true,
197
+ displayOptions: { show: { resource: ['tax'], operation: ['taxId'] } },
198
+ default: '',
199
+ placeholder: 'B12345674',
200
+ },
201
+ {
202
+ displayName: 'Amount',
203
+ name: 'amount',
204
+ type: 'number',
205
+ typeOptions: { numberPrecision: 2 },
206
+ required: true,
207
+ displayOptions: { show: { resource: ['tax'], operation: ['vat', 'withholding'] } },
208
+ default: 0,
209
+ description: 'For VAT: the amount (net, or gross if VAT is included). For withholding: the invoice base.',
210
+ },
211
+ {
212
+ displayName: 'VAT Rate',
213
+ name: 'vatRate',
214
+ type: 'options',
215
+ displayOptions: { show: { resource: ['tax'], operation: ['vat', 'withholding'] } },
216
+ options: [
217
+ { name: '0 %', value: 0 },
218
+ { name: '10 %', value: 10 },
219
+ { name: '21 %', value: 21 },
220
+ { name: '4 %', value: 4 },
221
+ { name: '5 %', value: 5 },
222
+ ],
223
+ default: 21,
224
+ },
225
+ {
226
+ displayName: 'Amount Includes VAT',
227
+ name: 'includesVat',
228
+ type: 'boolean',
229
+ displayOptions: { show: { resource: ['tax'], operation: ['vat'] } },
230
+ default: false,
231
+ },
232
+ {
233
+ displayName: 'Equivalence Surcharge',
234
+ name: 'equivalenceSurcharge',
235
+ type: 'boolean',
236
+ displayOptions: { show: { resource: ['tax'], operation: ['vat'] } },
237
+ default: false,
238
+ description: 'Whether to add the recargo de equivalencia (5.2 / 1.4 / 0.62 / 0.5 %)',
239
+ },
240
+ {
241
+ displayName: 'Withholding Type',
242
+ name: 'withholdingType',
243
+ type: 'options',
244
+ displayOptions: { show: { resource: ['tax'], operation: ['withholding'] } },
245
+ options: [
246
+ { name: 'Agricultural (2 %)', value: 'agricultural' },
247
+ { name: 'Modules (1 %)', value: 'modules' },
248
+ { name: 'New Professional (7 %)', value: 'new_professional' },
249
+ { name: 'Professional (15 %)', value: 'professional' },
250
+ { name: 'Rental (19 %)', value: 'rental' },
251
+ ],
252
+ default: 'professional',
253
+ },
254
+ {
255
+ displayName: 'Source',
256
+ name: 'source',
257
+ type: 'options',
258
+ displayOptions: { show: { resource: ['tax'], operation: ['model130'] } },
259
+ options: [
260
+ { name: 'My Figures', value: 'input' },
261
+ { name: 'My Nokfi Ledger', value: 'ledger' },
262
+ ],
263
+ default: 'input',
264
+ },
265
+ {
266
+ displayName: 'Year',
267
+ name: 'year',
268
+ type: 'number',
269
+ displayOptions: { show: { resource: ['tax'], operation: ['model130'] } },
270
+ default: 2026,
271
+ },
272
+ {
273
+ displayName: 'Quarter',
274
+ name: 'quarter',
275
+ type: 'options',
276
+ displayOptions: { show: { resource: ['tax'], operation: ['model130'] } },
277
+ options: [
278
+ { name: 'Q1', value: 1 },
279
+ { name: 'Q2', value: 2 },
280
+ { name: 'Q3', value: 3 },
281
+ { name: 'Q4', value: 4 },
282
+ ],
283
+ default: 1,
284
+ },
285
+ {
286
+ displayName: 'Figures (Year to Date)',
287
+ name: 'figures',
288
+ type: 'collection',
289
+ placeholder: 'Add Figure',
290
+ displayOptions: { show: { resource: ['tax'], operation: ['model130'], source: ['input'] } },
291
+ default: {},
292
+ options: [
293
+ { displayName: 'Expenses', name: 'expenses', type: 'number', typeOptions: { numberPrecision: 2 }, default: 0 },
294
+ { displayName: 'Income', name: 'income', type: 'number', typeOptions: { numberPrecision: 2 }, default: 0 },
295
+ { displayName: 'Previous Payments', name: 'previous_payments', type: 'number', typeOptions: { numberPrecision: 2 }, default: 0 },
296
+ { displayName: 'Withholdings', name: 'withholdings', type: 'number', typeOptions: { numberPrecision: 2 }, default: 0 },
297
+ ],
298
+ },
299
+ {
300
+ displayName: 'Legal Form',
301
+ name: 'legalForm',
302
+ type: 'options',
303
+ displayOptions: { show: { resource: ['tax'], operation: ['calendar'] } },
304
+ options: [
305
+ { name: 'From My Nokfi Profile', value: '' },
306
+ { name: 'Autónomo (Self-Employed)', value: 'autonomo' },
307
+ { name: 'Sociedad (Company)', value: 'sociedad' },
308
+ ],
309
+ default: '',
310
+ },
311
+ {
312
+ displayName: 'Limit',
313
+ name: 'calendarLimit',
314
+ type: 'number',
315
+ typeOptions: { minValue: 1, maxValue: 24 },
316
+ displayOptions: { show: { resource: ['tax'], operation: ['calendar'] } },
317
+ default: 6,
318
+ description: 'Max number of results to return',
319
+ },
176
320
  {
177
321
  displayName: 'Operation',
178
322
  name: 'operation',
@@ -182,6 +326,14 @@ class Nokfi {
182
326
  options: [{ name: 'Get', value: 'get', action: 'Get today s usage', description: 'Plan, daily quota and analyses used today' }],
183
327
  default: 'get',
184
328
  },
329
+ {
330
+ displayName: 'Run in Background',
331
+ name: 'async',
332
+ type: 'boolean',
333
+ displayOptions: { show: { resource: ['analysis', 'invoice'], operation: ['create', 'extract'] } },
334
+ default: false,
335
+ description: 'Whether to return a job right away instead of waiting. Get the result with the Nokfi Trigger (Job Completed event) or GET /api/v1/jobs/{ID}.',
336
+ },
185
337
  {
186
338
  displayName: 'Report Language',
187
339
  name: 'lang',
@@ -207,11 +359,15 @@ class Nokfi {
207
359
  const credentials = await this.getCredentials('nokfiApi');
208
360
  const baseUrl = String(credentials.baseUrl || 'https://nokfi.app').replace(/\/+$/, '');
209
361
  const out = [];
362
+ let idem = 0;
363
+ const asyncQs = (i) => (resource !== 'tax' && resource !== 'usage' && this.getNodeParameter('async', i, false) ? '?async=true' : '');
210
364
  const api = async (method, path, body, itemIndex = 0) => {
211
365
  var _a;
212
366
  const options = { method, url: `${baseUrl}/api/v1${path}`, json: true };
213
367
  if (body)
214
368
  options.body = body;
369
+ if (method === 'POST')
370
+ options.headers = { 'Idempotency-Key': `n8n-${this.getExecutionId()}-${this.getNode().id}-${itemIndex}-${path}-${idem++}` };
215
371
  try {
216
372
  return (await this.helpers.httpRequestWithAuthentication.call(this, 'nokfiApi', options));
217
373
  }
@@ -233,7 +389,7 @@ class Nokfi {
233
389
  title: this.getNodeParameter('title', 0) || undefined,
234
390
  data: { module: this.getNodeParameter('module', 0), files: [{ name: 'n8n', rows, total_rows: items.length }] },
235
391
  };
236
- const res = await api('POST', '/analyze', body);
392
+ const res = await api('POST', `/analyze${asyncQs(0)}`, body);
237
393
  return [[{ json: res, pairedItem: items.map((_, i) => ({ item: i })) }]];
238
394
  }
239
395
  for (let i = 0; i < items.length; i++) {
@@ -243,6 +399,39 @@ class Nokfi {
243
399
  if (i === 0)
244
400
  break;
245
401
  }
402
+ else if (resource === 'tax') {
403
+ let res;
404
+ if (operation === 'taxId') {
405
+ res = await api('GET', `/tax/nif?value=${encodeURIComponent(this.getNodeParameter('taxId', i))}`, undefined, i);
406
+ }
407
+ else if (operation === 'vat') {
408
+ res = await api('POST', '/tax/vat', {
409
+ amount: this.getNodeParameter('amount', i), rate: this.getNodeParameter('vatRate', i),
410
+ includes_vat: this.getNodeParameter('includesVat', i), equivalence_surcharge: this.getNodeParameter('equivalenceSurcharge', i),
411
+ }, i);
412
+ }
413
+ else if (operation === 'withholding') {
414
+ res = await api('POST', '/tax/withholding', {
415
+ base: this.getNodeParameter('amount', i), type: this.getNodeParameter('withholdingType', i), vat_rate: this.getNodeParameter('vatRate', i),
416
+ }, i);
417
+ }
418
+ else if (operation === 'model130') {
419
+ const source = this.getNodeParameter('source', i);
420
+ res = await api('POST', '/tax/model-130', {
421
+ source, year: this.getNodeParameter('year', i), quarter: this.getNodeParameter('quarter', i),
422
+ ...(source === 'input' ? this.getNodeParameter('figures', i, {}) : {}),
423
+ }, i);
424
+ }
425
+ else {
426
+ const lf = this.getNodeParameter('legalForm', i);
427
+ const limit = this.getNodeParameter('calendarLimit', i);
428
+ res = await api('GET', `/tax/calendar?limit=${limit}${lf ? `&legal_form=${lf}` : ''}`, undefined, i);
429
+ for (const d of res.deadlines || [])
430
+ out.push({ json: d, pairedItem: { item: i } });
431
+ continue;
432
+ }
433
+ out.push({ json: res, pairedItem: { item: i } });
434
+ }
246
435
  else if (resource === 'analysis' && operation === 'get') {
247
436
  const id = this.getNodeParameter('analysisId', i);
248
437
  out.push({ json: await api('GET', `/analyses/${encodeURIComponent(String(id))}`, undefined, i), pairedItem: { item: i } });
@@ -264,7 +453,7 @@ class Nokfi {
264
453
  };
265
454
  if (body.type === 'excel' && data && !data.module)
266
455
  data.module = this.getNodeParameter('module', i);
267
- out.push({ json: await api('POST', '/analyze', body, i), pairedItem: { item: i } });
456
+ out.push({ json: await api('POST', `/analyze${asyncQs(i)}`, body, i), pairedItem: { item: i } });
268
457
  }
269
458
  else if (resource === 'invoice' && operation === 'extract') {
270
459
  const lang = this.getNodeParameter('lang', i);
@@ -305,7 +494,11 @@ class Nokfi {
305
494
  }
306
495
  if (!readable.length)
307
496
  continue;
308
- const res = await api('POST', '/invoices/extract', { files: readable, lang }, i);
497
+ const res = await api('POST', `/invoices/extract${asyncQs(i)}`, { files: readable, lang }, i);
498
+ if (res.object === 'job') {
499
+ invoices.push(res);
500
+ continue;
501
+ }
309
502
  invoices.push(...(res.invoices || []));
310
503
  errors.push(...(res.errors || []));
311
504
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Nokfi.node.js","sourceRoot":"","sources":["../../../nodes/Nokfi/Nokfi.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Nokfi.node.js","sourceRoot":"","sources":["../../../nodes/Nokfi/Nokfi.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { IHookFunctions, INodeType, INodeTypeDescription, IWebhookFunctions, IWebhookResponseData } from 'n8n-workflow';
2
+ export declare class NokfiTrigger implements INodeType {
3
+ description: INodeTypeDescription;
4
+ webhookMethods: {
5
+ default: {
6
+ checkExists(this: IHookFunctions): Promise<boolean>;
7
+ create(this: IHookFunctions): Promise<boolean>;
8
+ delete(this: IHookFunctions): Promise<boolean>;
9
+ };
10
+ };
11
+ webhook(this: IWebhookFunctions): Promise<IWebhookResponseData>;
12
+ }
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NokfiTrigger = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const n8n_workflow_1 = require("n8n-workflow");
6
+ const TOLERANCE_S = 300;
7
+ function validSignature(secret, header, rawBody) {
8
+ const parts = {};
9
+ for (const p of header.split(',')) {
10
+ const [k, v] = p.split('=');
11
+ if (k && v)
12
+ parts[k.trim()] = v.trim();
13
+ }
14
+ const t = Number(parts.t);
15
+ if (!t || !parts.v1 || Math.abs(Date.now() / 1000 - t) > TOLERANCE_S)
16
+ return false;
17
+ const expected = Buffer.from((0, crypto_1.createHmac)('sha256', secret).update(`${t}.${rawBody}`).digest('hex'));
18
+ const got = Buffer.from(parts.v1);
19
+ return expected.length === got.length && (0, crypto_1.timingSafeEqual)(expected, got);
20
+ }
21
+ class NokfiTrigger {
22
+ constructor() {
23
+ this.description = {
24
+ displayName: 'Nokfi Trigger',
25
+ name: 'nokfiTrigger',
26
+ icon: { light: 'file:nokfi.svg', dark: 'file:nokfi.dark.svg' },
27
+ group: ['trigger'],
28
+ version: 1,
29
+ subtitle: '={{$parameter["events"].join(", ")}}',
30
+ description: 'Starts the workflow when Nokfi finishes an analysis or a job, when your quota reaches 80 % or 100 %, or when a Spanish tax deadline is near',
31
+ defaults: { name: 'Nokfi Trigger' },
32
+ inputs: [],
33
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
34
+ credentials: [{ name: 'nokfiApi', required: true }],
35
+ webhooks: [{ name: 'default', httpMethod: 'POST', responseMode: 'onReceived', path: 'webhook' }],
36
+ properties: [
37
+ {
38
+ displayName: 'Events',
39
+ name: 'events',
40
+ type: 'multiOptions',
41
+ required: true,
42
+ options: [
43
+ { name: 'Analysis Completed', value: 'analysis.completed', description: 'A report finished (from the API or the web app)' },
44
+ { name: 'Fiscal Deadline', value: 'fiscal.deadline', description: 'A tax deadline (303, 130, 111…) is 7 days or 1 day away' },
45
+ { name: 'Job Completed', value: 'job.completed', description: 'An async job (?async=true) finished; the result is included' },
46
+ { name: 'Job Failed', value: 'job.failed', description: 'An async job failed' },
47
+ { name: 'Quota Threshold', value: 'quota.threshold', description: 'You reached 80 % or 100 % of today’s quota' },
48
+ ],
49
+ default: ['analysis.completed'],
50
+ },
51
+ {
52
+ displayName: 'Only Live Events',
53
+ name: 'onlyLive',
54
+ type: 'boolean',
55
+ default: false,
56
+ description: 'Whether to ignore test events (sent when you use an nk_test_ key)',
57
+ },
58
+ ],
59
+ };
60
+ this.webhookMethods = {
61
+ default: {
62
+ async checkExists() {
63
+ const data = this.getWorkflowStaticData('node');
64
+ if (!data.webhookId)
65
+ return false;
66
+ try {
67
+ await nokfiApi.call(this, 'GET', `/webhooks/${data.webhookId}`);
68
+ return true;
69
+ }
70
+ catch {
71
+ delete data.webhookId;
72
+ delete data.secret;
73
+ return false;
74
+ }
75
+ },
76
+ async create() {
77
+ const url = this.getNodeWebhookUrl('default');
78
+ const events = this.getNodeParameter('events');
79
+ const res = await nokfiApi.call(this, 'POST', '/webhooks', {
80
+ url,
81
+ events,
82
+ description: `n8n · ${this.getWorkflow().name || 'workflow'}`.slice(0, 120),
83
+ });
84
+ const data = this.getWorkflowStaticData('node');
85
+ data.webhookId = res.id;
86
+ data.secret = res.secret;
87
+ return true;
88
+ },
89
+ async delete() {
90
+ const data = this.getWorkflowStaticData('node');
91
+ if (data.webhookId) {
92
+ try {
93
+ await nokfiApi.call(this, 'DELETE', `/webhooks/${data.webhookId}`);
94
+ }
95
+ catch (error) {
96
+ this.logger.warn(`Nokfi: could not delete webhook ${data.webhookId}: ${error.message}`);
97
+ return false;
98
+ }
99
+ }
100
+ delete data.webhookId;
101
+ delete data.secret;
102
+ return true;
103
+ },
104
+ },
105
+ };
106
+ }
107
+ async webhook() {
108
+ const req = this.getRequestObject();
109
+ const secret = String(this.getWorkflowStaticData('node').secret || '');
110
+ const raw = req.rawBody;
111
+ const rawBody = raw ? raw.toString('utf8') : JSON.stringify(req.body);
112
+ const header = String(req.headers['nokfi-signature'] || '');
113
+ if (!secret || !validSignature(secret, header, rawBody)) {
114
+ const res = this.getResponseObject();
115
+ res.status(401).json({ error: 'invalid_signature' });
116
+ return { noWebhookResponse: true };
117
+ }
118
+ const event = req.body;
119
+ const events = this.getNodeParameter('events');
120
+ const onlyLive = this.getNodeParameter('onlyLive');
121
+ if (!events.includes(String(event.type)) || (onlyLive && event.livemode === false))
122
+ return {};
123
+ return { workflowData: [this.helpers.returnJsonArray(event)] };
124
+ }
125
+ }
126
+ exports.NokfiTrigger = NokfiTrigger;
127
+ async function nokfiApi(method, path, body) {
128
+ const credentials = await this.getCredentials('nokfiApi');
129
+ const baseUrl = String(credentials.baseUrl || 'https://nokfi.app').replace(/\/+$/, '');
130
+ const options = { method, url: `${baseUrl}/api/v1${path}`, json: true };
131
+ if (body)
132
+ options.body = body;
133
+ try {
134
+ return (await this.helpers.httpRequestWithAuthentication.call(this, 'nokfiApi', options));
135
+ }
136
+ catch (error) {
137
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
138
+ }
139
+ }
140
+ //# sourceMappingURL=NokfiTrigger.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NokfiTrigger.node.js","sourceRoot":"","sources":["../../../nodes/NokfiTrigger/NokfiTrigger.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "node": "n8n-nodes-nokfi.nokfiTrigger",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Finance & Accounting", "Analytics"],
6
+ "resources": {
7
+ "credentialDocumentation": [{ "url": "https://nokfi.app/api-docs" }],
8
+ "primaryDocumentation": [{ "url": "https://github.com/m4r10-tech/n8n-nodes-nokfi#readme" }]
9
+ }
10
+ }
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-3 8 60 60">
2
+ <g transform="translate(0,64) scale(0.085,-0.085)" fill="#7AB0F5" stroke="none">
3
+ <path d="M482 542 c-39 -31 -71 -60 -72 -64 0 -5 14 -8 30 -8 18 0 30 -5 29
4
+ -12 0 -7 -26 -87 -57 -178 -48 -137 -60 -165 -78 -168 -11 -2 -27 4 -34 13
5
+ -11 13 -8 32 19 118 17 56 31 118 31 137 -1 58 -48 100 -113 100 -65 0 -80
6
+ -23 -149 -231 -61 -183 -62 -191 -44 -204 37 -27 52 -3 113 182 59 177 59 178
7
+ 89 178 41 0 42 -29 4 -139 -40 -120 -39 -149 5 -193 33 -33 39 -35 82 -30 34
8
+ 4 54 12 69 30 12 14 47 102 79 196 31 94 60 171 64 171 3 0 17 -7 29 -16 12
9
+ -8 22 -11 22 -5 0 13 -38 173 -43 177 -2 2 -35 -22 -75 -54z"/>
10
+ </g>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-3 8 60 60">
2
+ <g transform="translate(0,64) scale(0.085,-0.085)" fill="#1456A2" stroke="none">
3
+ <path d="M482 542 c-39 -31 -71 -60 -72 -64 0 -5 14 -8 30 -8 18 0 30 -5 29
4
+ -12 0 -7 -26 -87 -57 -178 -48 -137 -60 -165 -78 -168 -11 -2 -27 4 -34 13
5
+ -11 13 -8 32 19 118 17 56 31 118 31 137 -1 58 -48 100 -113 100 -65 0 -80
6
+ -23 -149 -231 -61 -183 -62 -191 -44 -204 37 -27 52 -3 113 182 59 177 59 178
7
+ 89 178 41 0 42 -29 4 -139 -40 -120 -39 -149 5 -193 33 -33 39 -35 82 -30 34
8
+ 4 54 12 69 30 12 14 47 102 79 196 31 94 60 171 64 171 3 0 17 -7 29 -16 12
9
+ -8 22 -11 22 -5 0 13 -38 173 -43 177 -2 2 -35 -22 -75 -54z"/>
10
+ </g>
11
+ </svg>
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "n8n-nodes-nokfi",
3
- "version": "0.1.2",
4
- "description": "n8n node for Nokfi: extract and validate invoices (PDF, image or text) and run financial analyses for small businesses.",
3
+ "version": "0.2.0",
4
+ "description": "n8n nodes for Nokfi: extract and validate invoices, run financial analyses, Spanish tax tools (NIF, VAT, IRPF, Modelo 130, tax calendar) and a trigger for Nokfi events.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://nokfi.app/api-docs",
7
7
  "keywords": [
@@ -11,7 +11,10 @@
11
11
  "invoice-extraction",
12
12
  "finance",
13
13
  "accounting",
14
- "spain"
14
+ "spain",
15
+ "tax",
16
+ "vat",
17
+ "webhook"
15
18
  ],
16
19
  "author": {
17
20
  "name": "Nokfi",
@@ -41,7 +44,8 @@
41
44
  "dist/credentials/NokfiApi.credentials.js"
42
45
  ],
43
46
  "nodes": [
44
- "dist/nodes/Nokfi/Nokfi.node.js"
47
+ "dist/nodes/Nokfi/Nokfi.node.js",
48
+ "dist/nodes/NokfiTrigger/NokfiTrigger.node.js"
45
49
  ]
46
50
  },
47
51
  "devDependencies": {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "n8n-nodes-nokfi",
3
- "version": "0.1.2",
4
- "description": "n8n node for Nokfi: extract and validate invoices (PDF, image or text) and run financial analyses for small businesses.",
3
+ "version": "0.2.0",
4
+ "description": "n8n nodes for Nokfi: extract and validate invoices, run financial analyses, Spanish tax tools (NIF, VAT, IRPF, Modelo 130, tax calendar) and a trigger for Nokfi events.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://nokfi.app/api-docs",
7
7
  "keywords": [
@@ -11,7 +11,10 @@
11
11
  "invoice-extraction",
12
12
  "finance",
13
13
  "accounting",
14
- "spain"
14
+ "spain",
15
+ "tax",
16
+ "vat",
17
+ "webhook"
15
18
  ],
16
19
  "author": {
17
20
  "name": "Nokfi",
@@ -41,7 +44,8 @@
41
44
  "dist/credentials/NokfiApi.credentials.js"
42
45
  ],
43
46
  "nodes": [
44
- "dist/nodes/Nokfi/Nokfi.node.js"
47
+ "dist/nodes/Nokfi/Nokfi.node.js",
48
+ "dist/nodes/NokfiTrigger/NokfiTrigger.node.js"
45
49
  ]
46
50
  },
47
51
  "devDependencies": {