Fiskaly Create Invoice
Description
Section titled “Description”This module is the main node for tax submission via Fiskaly SIGN ES. It allows creating new invoices or updating existing ones using the API’s PUT operation. It supports multiple invoice types according to Spanish tax regulations:
- SIMPLIFIED: Simplified invoice
- COMPLETE: Complete invoice
- CORRECTING: Corrective invoice
- ENRICHMENT: Supplementary invoice
- REMEDY: Remedy
- EXTERNAL: External invoice
- DRAFT: Draft (can be deleted later)
The module automatically generates a UUID for the invoice if none is provided. Invoice lines are passed as a JSON array with description, quantity, amount and tax rate. Optionally, tax breakdown, signer and additional metadata can be included.
The module is of type hidden (hidden in the main interface).
Configuration
Section titled “Configuration”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credentials | Yes | Fiskaly credential |
| taxpayer_id | text | Yes | UUID of the issuing taxpayer |
| invoice_id | text | No | Invoice UUID (auto-generated if empty) |
| type | select | Yes | Invoice type: SIMPLIFIED, COMPLETE, CORRECTING, ENRICHMENT, REMEDY, EXTERNAL, DRAFT |
| number | text | Yes | Issuer’s invoice number |
| issue_date | text | Yes | Issue date (YYYY-MM-DD) |
| client_id | text | No | UUID of the recipient client |
| description | text | No | General invoice description |
| lines | textarea | Yes | JSON array of lines: [{description, quantity, amount, tax_rate}] |
| tax_breakdown | textarea | No | Tax breakdown in JSON (optional, calculated from lines) |
| currency | text | No | ISO currency code (default: EUR) |
| total_amount | text | No | Invoice total amount |
| signer_id | text | No | UUID of the signing certificate |
| metadata | textarea | No | Additional metadata in JSON |
Credentials
Section titled “Credentials”Requires Fiskaly type credentials with:
- api_key: Fiskaly API Key
- api_secret: Fiskaly API Secret
Output
Section titled “Output”{ "nextModule": "siguiente_modulo", "data": { "success": true, "invoice": { "...datos completos de la factura..." }, "invoice_id": "550e8400-e29b-41d4-a716-446655440000", "state": "SIGNED", "type": "COMPLETE", "message": "Factura FAC-001 creada/actualizada exitosamente" }}Usage Example
Section titled “Usage Example”Basic case
Section titled “Basic case”{ "credentials_id": "mi-fiskaly", "taxpayer_id": "uuid-contribuyente", "type": "COMPLETE", "number": "FAC-2026-001", "issue_date": "2026-03-23", "lines": "[{\"description\": \"Servicio de consultoria\", \"quantity\": 1, \"amount\": 1000.00, \"tax_rate\": 21}]", "client_id": "uuid-cliente-receptor"}API Used
Section titled “API Used”- Fiskaly SIGN ES API - PUT
/taxpayers/{taxpayer_id}/invoices/{invoice_id}
- If
invoice_idis not provided, a UUIDv4 is automatically generated - The
linesfield must be a valid JSON array - The default currency is EUR; it is only sent if different
- The
tax_breakdownfield is optional and can be calculated from the lines - PUT (upsert) is used: if the invoice already exists, it is updated
- Invoices in DRAFT state can be deleted with the fiskalyDeleteInvoice node
Related Nodes
Section titled “Related Nodes”- FiskalyAuth - Authentication
- FiskalyGetInvoices - Get invoices
- FiskalyDeleteInvoice - Delete draft invoice
- FiskalyExportInvoices - Export invoices
- FiskalyUpsertTaxpayer - Create/update taxpayer
- FiskalyUpsertClient - Create/update device
- FiskalyUpsertSigner - Create/update signer