n8n-nodes-nokfi 0.1.2 → 0.3.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
@@ -2,8 +2,11 @@
2
2
 
3
3
  This is an n8n community node for [Nokfi](https://nokfi.app): the AI for small-business documents and finance.
4
4
 
5
+ - **Issue invoices** in your name: gap-free numbering, VAT, IRPF withholding and equivalence surcharge computed by Nokfi, added to your books, with PDF, e-invoice (UBL 2.5, Facturae, Factur-X) and the VERI*FACTU record. Rectify, cancel, mark as paid or rejected, and download them.
5
6
  - **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
7
  - **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.
8
+ - **Spanish tax tools without AI** (no quota): validate NIF/NIE/CIF, VAT with the equivalence surcharge, IRPF withholding, Modelo 130 and the tax calendar.
9
+ - **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
10
  - **Check your usage** (plan, daily quota, analyses used today).
8
11
 
9
12
  Data is processed by AI providers that do not train on it. Invoices sent through the API are not stored.
@@ -16,9 +19,11 @@ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes
16
19
 
17
20
  ## Credentials
18
21
 
19
- 1. Sign in to Nokfi and open **Developers → Keys** (Pro and Max plans).
22
+ 1. Sign in to Nokfi and open **Developers → Keys**.
20
23
  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`.
24
+ - **Live keys** (`nk_live_…`, Pro and Max plans) work with your data and use your quota.
25
+ - **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.
26
+ 3. In n8n, create a **Nokfi API** credential and paste the key. Leave the base URL as `https://nokfi.app`.
22
27
 
23
28
  The credential test calls `GET /api/v1/usage`.
24
29
 
@@ -26,12 +31,40 @@ The credential test calls `GET /api/v1/usage`.
26
31
 
27
32
  | Resource | Operation | What it does |
28
33
  |---|---|---|
34
+ | Invoice | Issue | Issues an invoice: customer from your address book (ID), typed in (saved to the address book) or none (simplified invoice, up to 400 € VAT included); one or more lines; optional withholding, equivalence surcharge, exemption, dates, series and language. Returns the invoice with its number and totals. |
35
+ | Invoice | Rectify | Corrective invoice for the difference (lines usually with a negative quantity) and a reason. |
36
+ | Invoice | Cancel | Cancels an invoice issued by mistake: kept as cancelled, out of your books, with its VERI*FACTU cancellation record. |
37
+ | Invoice | Set Status | Rejected (with reason) or accepted again; paid (with date) or unpaid. |
38
+ | Invoice | Get / Get Many | An invoice with lines, events and VERI*FACTU record; or the list, with date, status and search filters. |
39
+ | Invoice | Download | PDF or e-invoice (UBL 2.5, Facturae 3.2.2, Factur-X, CII) into a binary field, ready to attach to an email. |
29
40
  | 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
41
  | 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
42
  | Analysis | Get / Get Many | Reads reports you already have. |
43
+ | Tax | Validate Tax ID | NIF, NIE or CIF check digit, entity type and EU VAT number. |
44
+ | Tax | Calculate VAT | VAT with or without VAT included, plus the equivalence surcharge. |
45
+ | Tax | Calculate Withholding | IRPF withholding (professional 15 %, new professional 7 %, rental 19 %…) and the invoice total. |
46
+ | Tax | Estimate Modelo 130 | From your year-to-date figures or from your Nokfi ledger. |
47
+ | Tax | Get Fiscal Calendar | Upcoming deadlines (303, 130, 111, 115, 390…) with days left, one item each. |
32
48
  | Usage | Get | Plan, daily quota and analyses used today. |
33
49
 
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.
50
+ Issuing and managing invoices uses no AI and no quota; your issuer details (legal name, tax ID, address) are filled in once in the Nokfi app. Issued invoices are never edited: rectify or cancel them. With a test key, invoices are test documents (`TEST-` numbering) that never reach your books or the tax agency. Every Issue and Rectify request carries an `Idempotency-Key` (set your own, e.g. the order ID, in *Additional Fields*).
51
+
52
+ Every invoice extraction 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.
53
+
54
+ **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.
55
+
56
+ ### Nokfi Trigger
57
+
58
+ 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.
59
+
60
+ | Event | When |
61
+ |---|---|
62
+ | Analysis Completed | A report finished (API or web app). Includes the report. |
63
+ | Job Completed / Job Failed | A background job finished. Includes the result or the error. |
64
+ | Quota Threshold | You reached 80 % or 100 % of today's quota. |
65
+ | Fiscal Deadline | A tax deadline is 7 days or 1 day away (according to your legal form). |
66
+ | Invoice Issued / Cancelled / Paid / Unpaid / Rejected / Rejection Undone | Something happened to an invoice (from the API, the MCP or the web app). Includes a summary: id, number, totals, customer, status. |
67
+ | VERI*FACTU Record Accepted / Rejected | The Spanish tax agency answered an invoice record (with the error code when rejected). |
35
68
 
36
69
  ### Invoice output
37
70
 
@@ -52,6 +85,10 @@ Documents that cannot be read come out as items with `is_invoice: false` and an
52
85
 
53
86
  - **Invoices from email to a spreadsheet**: Gmail Trigger (download attachments) → Nokfi (Invoice › Extract, binary field `*`) → IF `checks.totals_ok` → Google Sheets (append row).
54
87
  - **Weekly sales report**: Schedule Trigger → Google Sheets (read) → Nokfi (Analysis › Create, Sales, All Input Items as Rows) → Send Email with `{{ $json.report.summary }}`.
88
+ - **Tax deadline reminder to Slack**: Nokfi Trigger (Fiscal Deadline) → Slack with `{{ $json.data.models.join(', ') }} due on {{ $json.data.date }}`.
89
+ - **Background invoice batch**: Nokfi (Invoice › Extract, Run in Background) in one workflow, Nokfi Trigger (Job Completed) → Google Sheets in another.
90
+ - **Invoice every paid order**: Shopify/WooCommerce Trigger (order paid) → Nokfi (Invoice › Issue, Idempotency Key `{{ $json.id }}`) → Nokfi (Invoice › Download, PDF) → Gmail (send with the attachment).
91
+ - **Chase rejected invoices**: Nokfi Trigger (Invoice Rejected) → Slack with `{{ $json.data.number }}: {{ $json.data.reason }}`.
55
92
  - **AI Agent tool**: the node can be used as a tool by n8n's AI Agent.
56
93
 
57
94
  ## 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"}
@@ -4,6 +4,7 @@ exports.Nokfi = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
5
  const MAX_DOCS_PER_REQUEST = 5;
6
6
  const IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/webp'];
7
+ const XML_TYPES = ['application/xml', 'text/xml'];
7
8
  class Nokfi {
8
9
  constructor() {
9
10
  this.description = {
@@ -13,7 +14,7 @@ class Nokfi {
13
14
  group: ['transform'],
14
15
  version: 1,
15
16
  subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
16
- description: 'Extract and validate invoices, and run financial analyses for small businesses with Nokfi',
17
+ description: 'Issue, extract and validate invoices, run financial analyses and Spanish tax calculations for small businesses with Nokfi',
17
18
  defaults: { name: 'Nokfi' },
18
19
  inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
19
20
  outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
@@ -28,6 +29,7 @@ class Nokfi {
28
29
  options: [
29
30
  { name: 'Invoice', value: 'invoice' },
30
31
  { name: 'Analysis', value: 'analysis' },
32
+ { name: 'Tax', value: 'tax' },
31
33
  { name: 'Usage', value: 'usage' },
32
34
  ],
33
35
  default: 'invoice',
@@ -39,15 +41,292 @@ class Nokfi {
39
41
  noDataExpression: true,
40
42
  displayOptions: { show: { resource: ['invoice'] } },
41
43
  options: [
44
+ { name: 'Cancel', value: 'cancel', action: 'Cancel an invoice', description: 'Cancel an invoice issued by mistake (it is kept as cancelled and leaves your books)' },
45
+ { name: 'Download', value: 'download', action: 'Download an invoice', description: 'PDF or e-invoice (UBL 2.5, Facturae 3.2.2, Factur-X, CII) as binary data' },
42
46
  {
43
47
  name: 'Extract',
44
48
  value: 'extract',
45
49
  action: 'Extract invoice data',
46
- description: 'Read invoices (PDF, JPG, PNG, WebP or text) and return structured data with validation checks',
50
+ description: 'Read invoices (PDF, JPG, PNG, WebP, text or e-invoice XML) and return structured data with validation checks',
47
51
  },
52
+ { name: 'Get', value: 'get', action: 'Get an invoice', description: 'Get an issued invoice with its lines, events and VERI*FACTU record' },
53
+ { name: 'Get Many', value: 'getAll', action: 'Get many invoices', description: 'List issued invoices' },
54
+ { name: 'Issue', value: 'issue', action: 'Issue an invoice', description: 'Issue a numbered invoice in your name: added to your books, with PDF, e-invoice and VERI*FACTU record' },
55
+ { name: 'Rectify', value: 'rectify', action: 'Rectify an invoice', description: 'Issue a corrective invoice for the difference' },
56
+ { name: 'Set Status', value: 'setStatus', action: 'Set the status of an invoice', description: 'Rejected or accepted by the customer, paid or unpaid' },
48
57
  ],
49
58
  default: 'extract',
50
59
  },
60
+ {
61
+ displayName: 'Invoice ID',
62
+ name: 'invoiceId',
63
+ type: 'number',
64
+ required: true,
65
+ displayOptions: { show: { resource: ['invoice'], operation: ['cancel', 'download', 'get', 'rectify', 'setStatus'] } },
66
+ default: 0,
67
+ },
68
+ {
69
+ displayName: 'Customer',
70
+ name: 'customerMode',
71
+ type: 'options',
72
+ displayOptions: { show: { resource: ['invoice'], operation: ['issue'] } },
73
+ options: [
74
+ { name: 'Customer Details', value: 'details', description: 'Saved to your Nokfi address book' },
75
+ { name: 'Customer ID', value: 'id', description: 'A customer from your Nokfi address book' },
76
+ { name: 'No Customer (Simplified Invoice)', value: 'none', description: 'Up to 400 € VAT included' },
77
+ ],
78
+ default: 'details',
79
+ },
80
+ {
81
+ displayName: 'Customer ID',
82
+ name: 'customerId',
83
+ type: 'number',
84
+ required: true,
85
+ displayOptions: { show: { resource: ['invoice'], operation: ['issue'], customerMode: ['id'] } },
86
+ default: 0,
87
+ },
88
+ {
89
+ displayName: 'Customer Details',
90
+ name: 'customer',
91
+ type: 'collection',
92
+ placeholder: 'Add Field',
93
+ displayOptions: { show: { resource: ['invoice'], operation: ['issue'], customerMode: ['details'] } },
94
+ default: {},
95
+ description: 'Name and tax ID are needed for a full invoice',
96
+ options: [
97
+ { displayName: 'Address', name: 'address', type: 'string', default: '' },
98
+ { displayName: 'City', name: 'city', type: 'string', default: '' },
99
+ { displayName: 'Country', name: 'country', type: 'string', default: 'ES', description: 'ISO 3166-1 alpha-2 code' },
100
+ { displayName: 'Email', name: 'email', type: 'string', placeholder: 'name@email.com', default: '' },
101
+ { displayName: 'Name', name: 'name', type: 'string', default: '' },
102
+ { displayName: 'Postal Code', name: 'postal_code', type: 'string', default: '' },
103
+ { displayName: 'Province', name: 'province', type: 'string', default: '' },
104
+ { displayName: 'Tax ID', name: 'tax_id', type: 'string', default: '', placeholder: 'B12345674' },
105
+ ],
106
+ },
107
+ {
108
+ displayName: 'Lines',
109
+ name: 'lines',
110
+ type: 'fixedCollection',
111
+ typeOptions: { multipleValues: true },
112
+ placeholder: 'Add Line',
113
+ required: true,
114
+ displayOptions: { show: { resource: ['invoice'], operation: ['issue', 'rectify'] } },
115
+ default: {},
116
+ description: 'For a corrective invoice, the difference (usually with a negative quantity)',
117
+ options: [
118
+ {
119
+ displayName: 'Line',
120
+ name: 'line',
121
+ values: [
122
+ { displayName: 'Description', name: 'description', type: 'string', default: '' },
123
+ { displayName: 'Discount %', name: 'discount_pct', type: 'number', default: 0 },
124
+ { displayName: 'Quantity', name: 'quantity', type: 'number', typeOptions: { numberPrecision: 3 }, default: 1 },
125
+ { displayName: 'Unit', name: 'unit', type: 'string', default: '', placeholder: 'h' },
126
+ { displayName: 'Unit Price', name: 'unit_price', type: 'number', typeOptions: { numberPrecision: 4 }, default: 0, description: 'Without VAT' },
127
+ {
128
+ displayName: 'VAT Rate',
129
+ name: 'vat_rate',
130
+ type: 'options',
131
+ options: [
132
+ { name: '0 %', value: 0 },
133
+ { name: '10 %', value: 10 },
134
+ { name: '21 %', value: 21 },
135
+ { name: '4 %', value: 4 },
136
+ ],
137
+ default: 21,
138
+ },
139
+ ],
140
+ },
141
+ ],
142
+ },
143
+ {
144
+ displayName: 'Rectification Reason',
145
+ name: 'rectificationReason',
146
+ type: 'string',
147
+ required: true,
148
+ displayOptions: { show: { resource: ['invoice'], operation: ['rectify'] } },
149
+ default: '',
150
+ },
151
+ {
152
+ displayName: 'Additional Fields',
153
+ name: 'invoiceFields',
154
+ type: 'collection',
155
+ placeholder: 'Add Field',
156
+ displayOptions: { show: { resource: ['invoice'], operation: ['issue', 'rectify'] } },
157
+ default: {},
158
+ options: [
159
+ { displayName: 'Due Date', name: 'due_date', type: 'string', default: '', placeholder: 'YYYY-MM-DD' },
160
+ { displayName: 'Equivalence Surcharge', name: 'equivalence_surcharge', type: 'boolean', default: false, description: 'Whether the customer is in the recargo de equivalencia regime' },
161
+ {
162
+ displayName: 'Exemption (0 % VAT Lines)',
163
+ name: 'exemption',
164
+ type: 'options',
165
+ options: [
166
+ { name: 'E1 · Exempt (Art. 20)', value: 'E1' },
167
+ { name: 'E2 · Export (Art. 21)', value: 'E2' },
168
+ { name: 'E3 · Exempt (Art. 22)', value: 'E3' },
169
+ { name: 'E4 · Exempt (Arts. 23-24)', value: 'E4' },
170
+ { name: 'E5 · Intra-EU Supply (Art. 25)', value: 'E5' },
171
+ { name: 'E6 · Exempt (Other)', value: 'E6' },
172
+ { name: 'N1 · Not Subject', value: 'N1' },
173
+ { name: 'N2 · Not Subject (Place of Supply)', value: 'N2' },
174
+ { name: 'S2 · Reverse Charge', value: 'S2' },
175
+ ],
176
+ default: 'E1',
177
+ },
178
+ { displayName: 'Idempotency Key', name: 'idempotencyKey', type: 'string', default: '', description: 'E.g. the order ID: the same key always returns the same invoice, even across executions.' },
179
+ {
180
+ displayName: 'Invoice Language',
181
+ name: 'lang',
182
+ type: 'options',
183
+ options: [
184
+ { name: 'English', value: 'en' },
185
+ { name: 'French', value: 'fr' },
186
+ { name: 'German', value: 'de' },
187
+ { name: 'Italian', value: 'it' },
188
+ { name: 'Polish', value: 'pl' },
189
+ { name: 'Spanish', value: 'es' },
190
+ ],
191
+ default: 'es',
192
+ },
193
+ { displayName: 'Issue Date', name: 'issue_date', type: 'string', default: '', placeholder: 'YYYY-MM-DD', description: 'Today by default' },
194
+ { displayName: 'Notes', name: 'notes', type: 'string', default: '' },
195
+ { displayName: 'Operation Date', name: 'operation_date', type: 'string', default: '', placeholder: 'YYYY-MM-DD' },
196
+ {
197
+ displayName: 'Payment Method',
198
+ name: 'payment_method',
199
+ type: 'options',
200
+ options: [
201
+ { name: 'Bank Transfer', value: 'transfer' },
202
+ { name: 'Card', value: 'card' },
203
+ { name: 'Cash', value: 'cash' },
204
+ { name: 'Direct Debit', value: 'direct_debit' },
205
+ { name: 'Other', value: 'other' },
206
+ ],
207
+ default: 'transfer',
208
+ },
209
+ {
210
+ displayName: 'Rectification Type',
211
+ name: 'rectification_kind',
212
+ type: 'options',
213
+ options: [
214
+ { name: 'R1 · Legal Error or Art. 80.1/80.2/80.6', value: 'R1' },
215
+ { name: 'R2 · Insolvency (Art. 80.3)', value: 'R2' },
216
+ { name: 'R3 · Bad Debt (Art. 80.4)', value: 'R3' },
217
+ { name: 'R4 · Other', value: 'R4' },
218
+ { name: 'R5 · Of a Simplified Invoice', value: 'R5' },
219
+ ],
220
+ default: 'R1',
221
+ },
222
+ { displayName: 'Series', name: 'series', type: 'string', default: '', placeholder: 'F' },
223
+ {
224
+ displayName: 'Withholding (IRPF)',
225
+ name: 'irpf_rate',
226
+ type: 'options',
227
+ options: [
228
+ { name: '0 %', value: 0 },
229
+ { name: '1 %', value: 1 },
230
+ { name: '15 %', value: 15 },
231
+ { name: '19 %', value: 19 },
232
+ { name: '2 %', value: 2 },
233
+ { name: '7 %', value: 7 },
234
+ ],
235
+ default: 0,
236
+ },
237
+ ],
238
+ },
239
+ {
240
+ displayName: 'Reason',
241
+ name: 'cancelReason',
242
+ type: 'string',
243
+ displayOptions: { show: { resource: ['invoice'], operation: ['cancel'] } },
244
+ default: '',
245
+ },
246
+ {
247
+ displayName: 'Status',
248
+ name: 'invoiceStatus',
249
+ type: 'options',
250
+ displayOptions: { show: { resource: ['invoice'], operation: ['setStatus'] } },
251
+ options: [
252
+ { name: 'Accepted (Undo Rejection)', value: 'accepted' },
253
+ { name: 'Paid', value: 'paid' },
254
+ { name: 'Rejected by the Customer', value: 'rejected' },
255
+ { name: 'Unpaid (Undo Payment)', value: 'unpaid' },
256
+ ],
257
+ default: 'paid',
258
+ },
259
+ {
260
+ displayName: 'Rejection Reason',
261
+ name: 'statusReason',
262
+ type: 'string',
263
+ required: true,
264
+ displayOptions: { show: { resource: ['invoice'], operation: ['setStatus'], invoiceStatus: ['rejected'] } },
265
+ default: '',
266
+ },
267
+ {
268
+ displayName: 'Payment Date',
269
+ name: 'statusDate',
270
+ type: 'string',
271
+ displayOptions: { show: { resource: ['invoice'], operation: ['setStatus'], invoiceStatus: ['paid'] } },
272
+ default: '',
273
+ placeholder: 'YYYY-MM-DD',
274
+ description: 'Today by default',
275
+ },
276
+ {
277
+ displayName: 'Format',
278
+ name: 'format',
279
+ type: 'options',
280
+ displayOptions: { show: { resource: ['invoice'], operation: ['download'] } },
281
+ options: [
282
+ { name: 'CII (XML)', value: 'cii' },
283
+ { name: 'Factur-X (PDF with XML)', value: 'facturx' },
284
+ { name: 'Facturae 3.2.2 (XML)', value: 'facturae' },
285
+ { name: 'PDF', value: 'pdf' },
286
+ { name: 'UBL 2.5 (XML)', value: 'ubl' },
287
+ ],
288
+ default: 'pdf',
289
+ },
290
+ {
291
+ displayName: 'Put Output File in Field',
292
+ name: 'outputBinaryField',
293
+ type: 'string',
294
+ displayOptions: { show: { resource: ['invoice'], operation: ['download'] } },
295
+ default: 'data',
296
+ hint: 'The name of the output binary field to put the file in',
297
+ },
298
+ {
299
+ displayName: 'Filters',
300
+ name: 'invoiceFilters',
301
+ type: 'collection',
302
+ placeholder: 'Add Filter',
303
+ displayOptions: { show: { resource: ['invoice'], operation: ['getAll'] } },
304
+ default: {},
305
+ options: [
306
+ { displayName: 'From', name: 'from', type: 'string', default: '', placeholder: 'YYYY-MM-DD' },
307
+ { displayName: 'Search', name: 'q', type: 'string', default: '', description: 'Invoice number, customer name or tax ID' },
308
+ {
309
+ displayName: 'Status',
310
+ name: 'status',
311
+ type: 'options',
312
+ options: [
313
+ { name: 'Cancelled', value: 'cancelled' },
314
+ { name: 'Issued', value: 'issued' },
315
+ ],
316
+ default: 'issued',
317
+ },
318
+ { displayName: 'To', name: 'to', type: 'string', default: '', placeholder: 'YYYY-MM-DD' },
319
+ ],
320
+ },
321
+ {
322
+ displayName: 'Limit',
323
+ name: 'invoiceLimit',
324
+ type: 'number',
325
+ typeOptions: { minValue: 1, maxValue: 500 },
326
+ displayOptions: { show: { resource: ['invoice'], operation: ['getAll'] } },
327
+ default: 50,
328
+ description: 'Max number of results to return',
329
+ },
51
330
  {
52
331
  displayName: 'Input',
53
332
  name: 'inputMode',
@@ -173,6 +452,149 @@ class Nokfi {
173
452
  default: 50,
174
453
  description: 'Max number of results to return',
175
454
  },
455
+ {
456
+ displayName: 'Operation',
457
+ name: 'operation',
458
+ type: 'options',
459
+ noDataExpression: true,
460
+ displayOptions: { show: { resource: ['tax'] } },
461
+ options: [
462
+ { name: 'Calculate VAT', value: 'vat', action: 'Calculate VAT', description: 'Spanish VAT (IVA) with or without VAT included, and the equivalence surcharge' },
463
+ { name: 'Calculate Withholding', value: 'withholding', action: 'Calculate IRPF withholding', description: 'IRPF withholding for an invoice and the total to collect' },
464
+ { name: 'Estimate Modelo 130', value: 'model130', action: 'Estimate modelo 130', description: 'Quarterly IRPF payment, from your figures or from your Nokfi ledger' },
465
+ { name: 'Get Fiscal Calendar', value: 'calendar', action: 'Get upcoming tax deadlines', description: 'Upcoming Spanish tax deadlines with days left' },
466
+ { 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' },
467
+ ],
468
+ default: 'taxId',
469
+ },
470
+ {
471
+ displayName: 'Tax ID',
472
+ name: 'taxId',
473
+ type: 'string',
474
+ required: true,
475
+ displayOptions: { show: { resource: ['tax'], operation: ['taxId'] } },
476
+ default: '',
477
+ placeholder: 'B12345674',
478
+ },
479
+ {
480
+ displayName: 'Amount',
481
+ name: 'amount',
482
+ type: 'number',
483
+ typeOptions: { numberPrecision: 2 },
484
+ required: true,
485
+ displayOptions: { show: { resource: ['tax'], operation: ['vat', 'withholding'] } },
486
+ default: 0,
487
+ description: 'For VAT: the amount (net, or gross if VAT is included). For withholding: the invoice base.',
488
+ },
489
+ {
490
+ displayName: 'VAT Rate',
491
+ name: 'vatRate',
492
+ type: 'options',
493
+ displayOptions: { show: { resource: ['tax'], operation: ['vat', 'withholding'] } },
494
+ options: [
495
+ { name: '0 %', value: 0 },
496
+ { name: '10 %', value: 10 },
497
+ { name: '21 %', value: 21 },
498
+ { name: '4 %', value: 4 },
499
+ { name: '5 %', value: 5 },
500
+ ],
501
+ default: 21,
502
+ },
503
+ {
504
+ displayName: 'Amount Includes VAT',
505
+ name: 'includesVat',
506
+ type: 'boolean',
507
+ displayOptions: { show: { resource: ['tax'], operation: ['vat'] } },
508
+ default: false,
509
+ },
510
+ {
511
+ displayName: 'Equivalence Surcharge',
512
+ name: 'equivalenceSurcharge',
513
+ type: 'boolean',
514
+ displayOptions: { show: { resource: ['tax'], operation: ['vat'] } },
515
+ default: false,
516
+ description: 'Whether to add the recargo de equivalencia (5.2 / 1.4 / 0.62 / 0.5 %)',
517
+ },
518
+ {
519
+ displayName: 'Withholding Type',
520
+ name: 'withholdingType',
521
+ type: 'options',
522
+ displayOptions: { show: { resource: ['tax'], operation: ['withholding'] } },
523
+ options: [
524
+ { name: 'Agricultural (2 %)', value: 'agricultural' },
525
+ { name: 'Modules (1 %)', value: 'modules' },
526
+ { name: 'New Professional (7 %)', value: 'new_professional' },
527
+ { name: 'Professional (15 %)', value: 'professional' },
528
+ { name: 'Rental (19 %)', value: 'rental' },
529
+ ],
530
+ default: 'professional',
531
+ },
532
+ {
533
+ displayName: 'Source',
534
+ name: 'source',
535
+ type: 'options',
536
+ displayOptions: { show: { resource: ['tax'], operation: ['model130'] } },
537
+ options: [
538
+ { name: 'My Figures', value: 'input' },
539
+ { name: 'My Nokfi Ledger', value: 'ledger' },
540
+ ],
541
+ default: 'input',
542
+ },
543
+ {
544
+ displayName: 'Year',
545
+ name: 'year',
546
+ type: 'number',
547
+ displayOptions: { show: { resource: ['tax'], operation: ['model130'] } },
548
+ default: 2026,
549
+ },
550
+ {
551
+ displayName: 'Quarter',
552
+ name: 'quarter',
553
+ type: 'options',
554
+ displayOptions: { show: { resource: ['tax'], operation: ['model130'] } },
555
+ options: [
556
+ { name: 'Q1', value: 1 },
557
+ { name: 'Q2', value: 2 },
558
+ { name: 'Q3', value: 3 },
559
+ { name: 'Q4', value: 4 },
560
+ ],
561
+ default: 1,
562
+ },
563
+ {
564
+ displayName: 'Figures (Year to Date)',
565
+ name: 'figures',
566
+ type: 'collection',
567
+ placeholder: 'Add Figure',
568
+ displayOptions: { show: { resource: ['tax'], operation: ['model130'], source: ['input'] } },
569
+ default: {},
570
+ options: [
571
+ { displayName: 'Expenses', name: 'expenses', type: 'number', typeOptions: { numberPrecision: 2 }, default: 0 },
572
+ { displayName: 'Income', name: 'income', type: 'number', typeOptions: { numberPrecision: 2 }, default: 0 },
573
+ { displayName: 'Previous Payments', name: 'previous_payments', type: 'number', typeOptions: { numberPrecision: 2 }, default: 0 },
574
+ { displayName: 'Withholdings', name: 'withholdings', type: 'number', typeOptions: { numberPrecision: 2 }, default: 0 },
575
+ ],
576
+ },
577
+ {
578
+ displayName: 'Legal Form',
579
+ name: 'legalForm',
580
+ type: 'options',
581
+ displayOptions: { show: { resource: ['tax'], operation: ['calendar'] } },
582
+ options: [
583
+ { name: 'From My Nokfi Profile', value: '' },
584
+ { name: 'Autónomo (Self-Employed)', value: 'autonomo' },
585
+ { name: 'Sociedad (Company)', value: 'sociedad' },
586
+ ],
587
+ default: '',
588
+ },
589
+ {
590
+ displayName: 'Limit',
591
+ name: 'calendarLimit',
592
+ type: 'number',
593
+ typeOptions: { minValue: 1, maxValue: 24 },
594
+ displayOptions: { show: { resource: ['tax'], operation: ['calendar'] } },
595
+ default: 6,
596
+ description: 'Max number of results to return',
597
+ },
176
598
  {
177
599
  displayName: 'Operation',
178
600
  name: 'operation',
@@ -182,6 +604,14 @@ class Nokfi {
182
604
  options: [{ name: 'Get', value: 'get', action: 'Get today s usage', description: 'Plan, daily quota and analyses used today' }],
183
605
  default: 'get',
184
606
  },
607
+ {
608
+ displayName: 'Run in Background',
609
+ name: 'async',
610
+ type: 'boolean',
611
+ displayOptions: { show: { resource: ['analysis', 'invoice'], operation: ['create', 'extract'] } },
612
+ default: false,
613
+ 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}.',
614
+ },
185
615
  {
186
616
  displayName: 'Report Language',
187
617
  name: 'lang',
@@ -207,11 +637,15 @@ class Nokfi {
207
637
  const credentials = await this.getCredentials('nokfiApi');
208
638
  const baseUrl = String(credentials.baseUrl || 'https://nokfi.app').replace(/\/+$/, '');
209
639
  const out = [];
210
- const api = async (method, path, body, itemIndex = 0) => {
640
+ let idem = 0;
641
+ const asyncQs = (i) => (resource !== 'tax' && resource !== 'usage' && this.getNodeParameter('async', i, false) ? '?async=true' : '');
642
+ const api = async (method, path, body, itemIndex = 0, idemKey) => {
211
643
  var _a;
212
644
  const options = { method, url: `${baseUrl}/api/v1${path}`, json: true };
213
645
  if (body)
214
646
  options.body = body;
647
+ if (method === 'POST')
648
+ options.headers = { 'Idempotency-Key': idemKey || `n8n-${this.getExecutionId()}-${this.getNode().id}-${itemIndex}-${path}-${idem++}` };
215
649
  try {
216
650
  return (await this.helpers.httpRequestWithAuthentication.call(this, 'nokfiApi', options));
217
651
  }
@@ -233,7 +667,7 @@ class Nokfi {
233
667
  title: this.getNodeParameter('title', 0) || undefined,
234
668
  data: { module: this.getNodeParameter('module', 0), files: [{ name: 'n8n', rows, total_rows: items.length }] },
235
669
  };
236
- const res = await api('POST', '/analyze', body);
670
+ const res = await api('POST', `/analyze${asyncQs(0)}`, body);
237
671
  return [[{ json: res, pairedItem: items.map((_, i) => ({ item: i })) }]];
238
672
  }
239
673
  for (let i = 0; i < items.length; i++) {
@@ -243,6 +677,39 @@ class Nokfi {
243
677
  if (i === 0)
244
678
  break;
245
679
  }
680
+ else if (resource === 'tax') {
681
+ let res;
682
+ if (operation === 'taxId') {
683
+ res = await api('GET', `/tax/nif?value=${encodeURIComponent(this.getNodeParameter('taxId', i))}`, undefined, i);
684
+ }
685
+ else if (operation === 'vat') {
686
+ res = await api('POST', '/tax/vat', {
687
+ amount: this.getNodeParameter('amount', i), rate: this.getNodeParameter('vatRate', i),
688
+ includes_vat: this.getNodeParameter('includesVat', i), equivalence_surcharge: this.getNodeParameter('equivalenceSurcharge', i),
689
+ }, i);
690
+ }
691
+ else if (operation === 'withholding') {
692
+ res = await api('POST', '/tax/withholding', {
693
+ base: this.getNodeParameter('amount', i), type: this.getNodeParameter('withholdingType', i), vat_rate: this.getNodeParameter('vatRate', i),
694
+ }, i);
695
+ }
696
+ else if (operation === 'model130') {
697
+ const source = this.getNodeParameter('source', i);
698
+ res = await api('POST', '/tax/model-130', {
699
+ source, year: this.getNodeParameter('year', i), quarter: this.getNodeParameter('quarter', i),
700
+ ...(source === 'input' ? this.getNodeParameter('figures', i, {}) : {}),
701
+ }, i);
702
+ }
703
+ else {
704
+ const lf = this.getNodeParameter('legalForm', i);
705
+ const limit = this.getNodeParameter('calendarLimit', i);
706
+ res = await api('GET', `/tax/calendar?limit=${limit}${lf ? `&legal_form=${lf}` : ''}`, undefined, i);
707
+ for (const d of res.deadlines || [])
708
+ out.push({ json: d, pairedItem: { item: i } });
709
+ continue;
710
+ }
711
+ out.push({ json: res, pairedItem: { item: i } });
712
+ }
246
713
  else if (resource === 'analysis' && operation === 'get') {
247
714
  const id = this.getNodeParameter('analysisId', i);
248
715
  out.push({ json: await api('GET', `/analyses/${encodeURIComponent(String(id))}`, undefined, i), pairedItem: { item: i } });
@@ -264,7 +731,81 @@ class Nokfi {
264
731
  };
265
732
  if (body.type === 'excel' && data && !data.module)
266
733
  data.module = this.getNodeParameter('module', i);
267
- out.push({ json: await api('POST', '/analyze', body, i), pairedItem: { item: i } });
734
+ out.push({ json: await api('POST', `/analyze${asyncQs(i)}`, body, i), pairedItem: { item: i } });
735
+ }
736
+ else if (resource === 'invoice' && (operation === 'issue' || operation === 'rectify')) {
737
+ const fields = { ...this.getNodeParameter('invoiceFields', i, {}) };
738
+ const idemKey = fields.idempotencyKey || undefined;
739
+ delete fields.idempotencyKey;
740
+ const lines = this.getNodeParameter('lines', i, {}).line || [];
741
+ if (!lines.length)
742
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Add at least one line', { itemIndex: i });
743
+ const body = { ...fields, lines };
744
+ let path = '/invoices';
745
+ if (operation === 'issue') {
746
+ const mode = this.getNodeParameter('customerMode', i);
747
+ if (mode === 'id')
748
+ body.customer_id = this.getNodeParameter('customerId', i);
749
+ if (mode === 'details')
750
+ body.customer = this.getNodeParameter('customer', i, {});
751
+ delete body.rectification_kind;
752
+ }
753
+ else {
754
+ path = `/invoices/${encodeURIComponent(String(this.getNodeParameter('invoiceId', i)))}/rectify`;
755
+ body.rectification_reason = this.getNodeParameter('rectificationReason', i);
756
+ }
757
+ out.push({ json: await api('POST', path, body, i, idemKey && `n8n-${idemKey}`), pairedItem: { item: i } });
758
+ }
759
+ else if (resource === 'invoice' && operation === 'get') {
760
+ out.push({ json: await api('GET', `/invoices/${encodeURIComponent(String(this.getNodeParameter('invoiceId', i)))}`, undefined, i), pairedItem: { item: i } });
761
+ }
762
+ else if (resource === 'invoice' && operation === 'getAll') {
763
+ const qs = new URLSearchParams({ limit: String(this.getNodeParameter('invoiceLimit', i)) });
764
+ for (const [k, v] of Object.entries(this.getNodeParameter('invoiceFilters', i, {})))
765
+ if (v !== '' && v !== undefined)
766
+ qs.set(k, String(v));
767
+ const res = await api('GET', `/invoices?${qs.toString()}`, undefined, i);
768
+ for (const inv of res.invoices || [])
769
+ out.push({ json: inv, pairedItem: { item: i } });
770
+ }
771
+ else if (resource === 'invoice' && operation === 'cancel') {
772
+ const id = encodeURIComponent(String(this.getNodeParameter('invoiceId', i)));
773
+ out.push({ json: await api('POST', `/invoices/${id}/cancel`, { reason: this.getNodeParameter('cancelReason', i, '') }, i), pairedItem: { item: i } });
774
+ }
775
+ else if (resource === 'invoice' && operation === 'setStatus') {
776
+ const id = encodeURIComponent(String(this.getNodeParameter('invoiceId', i)));
777
+ const status = this.getNodeParameter('invoiceStatus', i);
778
+ const body = { status };
779
+ if (status === 'rejected')
780
+ body.reason = this.getNodeParameter('statusReason', i);
781
+ if (status === 'paid') {
782
+ const d = this.getNodeParameter('statusDate', i, '');
783
+ if (d)
784
+ body.date = d;
785
+ }
786
+ out.push({ json: await api('POST', `/invoices/${id}/status`, body, i), pairedItem: { item: i } });
787
+ }
788
+ else if (resource === 'invoice' && operation === 'download') {
789
+ const id = encodeURIComponent(String(this.getNodeParameter('invoiceId', i)));
790
+ const format = this.getNodeParameter('format', i);
791
+ const field = this.getNodeParameter('outputBinaryField', i) || 'data';
792
+ const path = format === 'pdf' ? `/invoices/${id}/pdf` : `/invoices/${id}/xml?format=${format}`;
793
+ let file;
794
+ try {
795
+ file = Buffer.from((await this.helpers.httpRequestWithAuthentication.call(this, 'nokfiApi', {
796
+ method: 'GET', url: `${baseUrl}/api/v1${path}`, encoding: 'arraybuffer', json: false,
797
+ })));
798
+ }
799
+ catch (error) {
800
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error.message, { itemIndex: i });
801
+ }
802
+ const pdf = format === 'pdf' || format === 'facturx';
803
+ const name = `invoice_${id}${format === 'pdf' ? '' : `_${format}`}.${pdf ? 'pdf' : 'xml'}`;
804
+ out.push({
805
+ json: { id: Number(id), format },
806
+ binary: { [field]: await this.helpers.prepareBinaryData(file, name, pdf ? 'application/pdf' : 'application/xml') },
807
+ pairedItem: { item: i },
808
+ });
268
809
  }
269
810
  else if (resource === 'invoice' && operation === 'extract') {
270
811
  const lang = this.getNodeParameter('lang', i);
@@ -284,7 +825,10 @@ class Nokfi {
284
825
  const mime = (meta.mimeType || '').toLowerCase();
285
826
  const buffer = await this.helpers.getBinaryDataBuffer(i, name);
286
827
  const fileName = meta.fileName || name;
287
- if (mime === 'application/pdf' || IMAGE_TYPES.includes(mime)) {
828
+ if (XML_TYPES.includes(mime) || /\.(xml|xsig)$/i.test(fileName)) {
829
+ docs.push({ name: fileName, mime: 'application/xml', data: buffer.toString('base64') });
830
+ }
831
+ else if (mime === 'application/pdf' || IMAGE_TYPES.includes(mime)) {
288
832
  docs.push({ name: fileName, mime, data: buffer.toString('base64') });
289
833
  }
290
834
  else if (mime.startsWith('text/')) {
@@ -305,7 +849,11 @@ class Nokfi {
305
849
  }
306
850
  if (!readable.length)
307
851
  continue;
308
- const res = await api('POST', '/invoices/extract', { files: readable, lang }, i);
852
+ const res = await api('POST', `/invoices/extract${asyncQs(i)}`, { files: readable, lang }, i);
853
+ if (res.object === 'job') {
854
+ invoices.push(res);
855
+ continue;
856
+ }
309
857
  invoices.push(...(res.invoices || []));
310
858
  errors.push(...(res.errors || []));
311
859
  }
@@ -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,148 @@
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, an invoice is issued, paid, rejected or cancelled, the tax agency answers a VERI*FACTU record, your quota reaches 80 % or 100 %, or 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: 'Invoice Cancelled', value: 'invoice.cancelled', description: 'An issued invoice was cancelled' },
46
+ { name: 'Invoice Issued', value: 'invoice.issued', description: 'An invoice was issued (from the API, the MCP or the web app)' },
47
+ { name: 'Invoice Paid', value: 'invoice.paid', description: 'An invoice was marked as paid' },
48
+ { name: 'Invoice Rejected', value: 'invoice.rejected', description: 'The customer rejected an invoice (with the reason)' },
49
+ { name: 'Invoice Rejection Undone', value: 'invoice.accepted', description: 'A rejection was undone: the invoice is accepted again' },
50
+ { name: 'Invoice Unpaid', value: 'invoice.unpaid', description: 'A payment was undone' },
51
+ { name: 'Job Completed', value: 'job.completed', description: 'An async job (?async=true) finished; the result is included' },
52
+ { name: 'Job Failed', value: 'job.failed', description: 'An async job failed' },
53
+ { name: 'Quota Threshold', value: 'quota.threshold', description: 'You reached 80 % or 100 % of today’s quota' },
54
+ { name: 'VERI*FACTU Record Accepted', value: 'verifactu.accepted', description: 'The Spanish tax agency accepted an invoice record (status may be accepted_errors)' },
55
+ { name: 'VERI*FACTU Record Rejected', value: 'verifactu.rejected', description: 'The Spanish tax agency rejected an invoice record (with the error code)' },
56
+ ],
57
+ default: ['analysis.completed'],
58
+ },
59
+ {
60
+ displayName: 'Only Live Events',
61
+ name: 'onlyLive',
62
+ type: 'boolean',
63
+ default: false,
64
+ description: 'Whether to ignore test events (sent when you use an nk_test_ key)',
65
+ },
66
+ ],
67
+ };
68
+ this.webhookMethods = {
69
+ default: {
70
+ async checkExists() {
71
+ const data = this.getWorkflowStaticData('node');
72
+ if (!data.webhookId)
73
+ return false;
74
+ try {
75
+ await nokfiApi.call(this, 'GET', `/webhooks/${data.webhookId}`);
76
+ return true;
77
+ }
78
+ catch {
79
+ delete data.webhookId;
80
+ delete data.secret;
81
+ return false;
82
+ }
83
+ },
84
+ async create() {
85
+ const url = this.getNodeWebhookUrl('default');
86
+ const events = this.getNodeParameter('events');
87
+ const res = await nokfiApi.call(this, 'POST', '/webhooks', {
88
+ url,
89
+ events,
90
+ description: `n8n · ${this.getWorkflow().name || 'workflow'}`.slice(0, 120),
91
+ });
92
+ const data = this.getWorkflowStaticData('node');
93
+ data.webhookId = res.id;
94
+ data.secret = res.secret;
95
+ return true;
96
+ },
97
+ async delete() {
98
+ const data = this.getWorkflowStaticData('node');
99
+ if (data.webhookId) {
100
+ try {
101
+ await nokfiApi.call(this, 'DELETE', `/webhooks/${data.webhookId}`);
102
+ }
103
+ catch (error) {
104
+ this.logger.warn(`Nokfi: could not delete webhook ${data.webhookId}: ${error.message}`);
105
+ return false;
106
+ }
107
+ }
108
+ delete data.webhookId;
109
+ delete data.secret;
110
+ return true;
111
+ },
112
+ },
113
+ };
114
+ }
115
+ async webhook() {
116
+ const req = this.getRequestObject();
117
+ const secret = String(this.getWorkflowStaticData('node').secret || '');
118
+ const raw = req.rawBody;
119
+ const rawBody = raw ? raw.toString('utf8') : JSON.stringify(req.body);
120
+ const header = String(req.headers['nokfi-signature'] || '');
121
+ if (!secret || !validSignature(secret, header, rawBody)) {
122
+ const res = this.getResponseObject();
123
+ res.status(401).json({ error: 'invalid_signature' });
124
+ return { noWebhookResponse: true };
125
+ }
126
+ const event = req.body;
127
+ const events = this.getNodeParameter('events');
128
+ const onlyLive = this.getNodeParameter('onlyLive');
129
+ if (!events.includes(String(event.type)) || (onlyLive && event.livemode === false))
130
+ return {};
131
+ return { workflowData: [this.helpers.returnJsonArray(event)] };
132
+ }
133
+ }
134
+ exports.NokfiTrigger = NokfiTrigger;
135
+ async function nokfiApi(method, path, body) {
136
+ const credentials = await this.getCredentials('nokfiApi');
137
+ const baseUrl = String(credentials.baseUrl || 'https://nokfi.app').replace(/\/+$/, '');
138
+ const options = { method, url: `${baseUrl}/api/v1${path}`, json: true };
139
+ if (body)
140
+ options.body = body;
141
+ try {
142
+ return (await this.helpers.httpRequestWithAuthentication.call(this, 'nokfiApi', options));
143
+ }
144
+ catch (error) {
145
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
146
+ }
147
+ }
148
+ //# 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.3.0",
4
+ "description": "n8n nodes for Nokfi: issue invoices (PDF, e-invoice, VERI*FACTU), 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": [
@@ -9,9 +9,15 @@
9
9
  "nokfi",
10
10
  "invoices",
11
11
  "invoice-extraction",
12
+ "invoicing",
13
+ "e-invoice",
14
+ "verifactu",
12
15
  "finance",
13
16
  "accounting",
14
- "spain"
17
+ "spain",
18
+ "tax",
19
+ "vat",
20
+ "webhook"
15
21
  ],
16
22
  "author": {
17
23
  "name": "Nokfi",
@@ -41,7 +47,8 @@
41
47
  "dist/credentials/NokfiApi.credentials.js"
42
48
  ],
43
49
  "nodes": [
44
- "dist/nodes/Nokfi/Nokfi.node.js"
50
+ "dist/nodes/Nokfi/Nokfi.node.js",
51
+ "dist/nodes/NokfiTrigger/NokfiTrigger.node.js"
45
52
  ]
46
53
  },
47
54
  "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.3.0",
4
+ "description": "n8n nodes for Nokfi: issue invoices (PDF, e-invoice, VERI*FACTU), 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": [
@@ -9,9 +9,15 @@
9
9
  "nokfi",
10
10
  "invoices",
11
11
  "invoice-extraction",
12
+ "invoicing",
13
+ "e-invoice",
14
+ "verifactu",
12
15
  "finance",
13
16
  "accounting",
14
- "spain"
17
+ "spain",
18
+ "tax",
19
+ "vat",
20
+ "webhook"
15
21
  ],
16
22
  "author": {
17
23
  "name": "Nokfi",
@@ -41,7 +47,8 @@
41
47
  "dist/credentials/NokfiApi.credentials.js"
42
48
  ],
43
49
  "nodes": [
44
- "dist/nodes/Nokfi/Nokfi.node.js"
50
+ "dist/nodes/Nokfi/Nokfi.node.js",
51
+ "dist/nodes/NokfiTrigger/NokfiTrigger.node.js"
45
52
  ]
46
53
  },
47
54
  "devDependencies": {