n8n-nodes-sevdesk-v2
Version:
n8n community node for SevDesk API v2 integration with 24 production-ready workflow templates. Direct API access without external dependencies - simplified, secure, and optimized for German accounting automation (n8n 1.101.1 compatible).
599 lines (598 loc) • 19 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.creditNoteFields = exports.creditNoteOperations = void 0;
exports.creditNoteOperations = [
{
displayName: "Operation",
name: "operation",
type: "options",
noDataExpression: true,
displayOptions: {
show: {
resource: ["creditNote"],
},
},
options: [
{
name: "Book",
value: "book",
action: "Book a credit note",
routing: {
request: {
method: "PUT",
url: "=CreditNote/{{$parameter.creditNoteId}}/book",
body: "={{$parameter.bookingData}}",
},
},
},
{
name: "Create",
value: "create",
action: "Create a credit note",
routing: {
request: {
method: "POST",
url: "/CreditNote/Factory/createCreditNote",
body: "={{$parameter.creditNoteData}}",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Create From Invoice",
value: "createFromInvoice",
action: "Create a credit note from an invoice",
routing: {
request: {
method: "POST",
url: "/CreditNote/Factory/createFromInvoice",
body: "={{$parameter.invoice}}",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Delete",
value: "delete",
action: "Delete a credit note",
routing: {
request: {
method: "DELETE",
url: "=CreditNote/{{$parameter.creditNoteId}}",
},
},
},
{
name: "Enshrine",
value: "enshrine",
action: "Enshrine a credit note",
routing: {
request: {
method: "PUT",
url: "=CreditNote/{{$parameter.creditNoteId}}/enshrine",
},
},
},
{
name: "Get",
value: "get",
action: "Get a credit note",
routing: {
request: {
method: "GET",
url: "=CreditNote/{{$parameter.creditNoteId}}",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Get Many",
value: "getMany",
action: "Get many credit notes",
routing: {
request: {
method: "GET",
url: "/CreditNote",
qs: "={{$parameter.filters}}",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Get Next Number",
value: "getNextNumber",
action: "Get the next credit note number",
routing: {
request: {
method: "GET",
url: "/V1/SevSequence/Factory/getByType?objectType=CreditNote&type=CN",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
{
name: "Get PDF",
value: "getPdf",
action: "Get PDF of a credit note",
routing: {
request: {
method: "GET",
url: "=CreditNote/{{$parameter.creditNoteId}}/getPdf",
qs: "={{$parameter.options}}",
encoding: "raw",
},
output: {
postReceive: [
{
type: "binary",
properties: {
dataProperty: "data",
fileName: "={{$response.body.filename}}",
},
},
],
},
},
},
{
name: "Mark As Sent",
value: "markAsSent",
action: "Mark a credit note as sent",
routing: {
request: {
method: "PUT",
url: "=CreditNote/{{$parameter.creditNoteId}}/send",
body: "={{$parameter.sendData}}",
},
},
},
{
name: "Reset Status To Draft",
value: "resetStatusToDraft",
action: "Reset a credit note status to draft",
routing: {
request: {
method: "PUT",
url: "=CreditNote/{{$parameter.creditNoteId}}/uncancel",
},
},
},
{
name: "Reset Status To Open",
value: "resetStatusToOpen",
action: "Reset a credit note status to open",
routing: {
request: {
method: "PUT",
url: "=CreditNote/{{$parameter.creditNoteId}}/cancel",
},
},
},
{
name: "Send By Email",
value: "sendByEmail",
action: "Send a credit note by email",
routing: {
request: {
method: "POST",
url: "=CreditNote/{{$parameter.creditNoteId}}/sendViaEmail",
body: "={{$parameter.emailData}}",
},
},
},
{
name: "Send By Printing",
value: "sendByPrinting",
action: "Send a credit note by printing",
routing: {
request: {
method: "GET",
url: "=CreditNote/{{$parameter.creditNoteId}}/sendBy",
qs: "={{$parameter.sendType}}",
},
},
},
{
name: "Update",
value: "update",
action: "Update a credit note",
routing: {
request: {
method: "PUT",
url: "=CreditNote/{{$parameter.creditNoteId}}",
body: "={{$parameter.updateFields}}",
},
output: {
postReceive: [
{ type: "rootProperty", properties: { property: "objects" } },
],
},
},
},
],
default: "getMany",
},
];
const creditNoteModel = [
{
displayName: "Credit Note Number",
name: "creditNoteNumber",
type: "string",
default: "",
},
{
displayName: "Contact",
name: "contact",
type: "collection",
placeholder: "Add Contact",
default: {},
options: [
{ displayName: "ID", name: "id", type: "string", default: "" },
{
displayName: "Object Name",
name: "objectName",
type: "string",
default: "Contact",
},
],
},
{
displayName: "Credit Note Date",
name: "creditNoteDate",
type: "string",
default: "",
},
{
displayName: "Status",
name: "status",
type: "options",
options: [
{ name: "Draft", value: "100" },
{ name: "Open", value: "200" },
{ name: "Paid", value: "1000" },
],
default: "100",
},
{ displayName: "Header", name: "header", type: "string", default: "" },
{
displayName: "Head Text",
name: "headText",
type: "string",
typeOptions: { multiline: true },
default: "",
},
{
displayName: "Foot Text",
name: "footText",
type: "string",
typeOptions: { multiline: true },
default: "",
},
{ displayName: "Address", name: "address", type: "string", default: "" },
{ displayName: "Currency", name: "currency", type: "string", default: "" },
{
displayName: "Tax Rule",
name: "taxRule",
type: "options",
default: 1,
description: "Define the VAT rule according to SevDesk API v2.0. This replaces the deprecated taxType system.",
options: [
{
name: "Umsatzsteuerpflichtige Umsätze (Standard)",
value: 1,
description: "Standard VAT liable transactions (0%, 7%, 19%)",
},
{
name: "Ausfuhren",
value: 2,
description: "Exports (0%)",
},
{
name: "Innergemeinschaftliche Lieferungen (EU)",
value: 3,
description: "Intra-community deliveries (0%, 7%, 19%)",
},
{
name: "Steuerfreie Umsätze §4 UStG",
value: 4,
description: "Tax-free transactions §4 UStG (0%)",
},
{
name: "Reverse Charge Gem. §13b UStG",
value: 5,
description: "Reverse charge according to §13b UStG (0%)",
},
{
name: "Steuer Nicht Erhoben Nach §19 UStG (Kleinunternehmer)",
value: 11,
description: "Tax not levied according to §19 UStG - Small business (0%)",
},
],
},
{
displayName: "Tax Type (Deprecated)",
name: "taxType",
type: "string",
default: "",
description: "⚠️ DEPRECATED: Use taxRule instead. This field is maintained for backward compatibility only.",
},
{ displayName: "Tax Text", name: "taxText", type: "string", default: "" },
{
displayName: "Small Settlement",
name: "smallSettlement",
type: "boolean",
default: false,
},
];
exports.creditNoteFields = [
{
displayName: "Credit Note ID",
name: "creditNoteId",
type: "string",
default: "",
required: true,
displayOptions: {
show: {
resource: ["creditNote"],
operation: [
"book",
"delete",
"enshrine",
"get",
"getPdf",
"markAsSent",
"resetStatusToDraft",
"resetStatusToOpen",
"sendByEmail",
"sendByPrinting",
"update",
],
},
},
},
{
displayName: "Filters",
name: "filters",
type: "collection",
placeholder: "Add Filter",
default: {},
displayOptions: {
show: {
resource: ["creditNote"],
operation: ["getMany"],
},
},
options: [
{
displayName: "Contact ID",
name: "contact[id]",
type: "string",
default: "",
},
{
displayName: "Credit Note Number",
name: "creditNoteNumber",
type: "string",
default: "",
},
{ displayName: "End Date", name: "endDate", type: "string", default: "" },
{
displayName: "Start Date",
name: "startDate",
type: "string",
default: "",
},
{
displayName: "Status",
name: "status",
type: "options",
options: [
{ name: "Draft", value: 100 },
{ name: "Open", value: 200 },
{ name: "Paid", value: 1000 },
],
default: 100,
},
],
},
{
displayName: "Credit Note Data",
name: "creditNoteData",
type: "collection",
placeholder: "Add Credit Note Data",
default: {},
displayOptions: {
show: {
resource: ["creditNote"],
operation: ["create"],
},
},
options: [
{
displayName: "Credit Note",
name: "creditNote",
type: "collection",
placeholder: "Add Credit Note",
default: {},
options: creditNoteModel,
},
{
displayName: "Credit Note Pos",
name: "creditNotePos",
type: "fixedCollection",
placeholder: "Add Credit Note Position",
default: {},
typeOptions: { multipleValues: true },
options: [
{ name: "values", displayName: "Values", values: [] },
],
},
],
},
{
displayName: "Update Fields",
name: "updateFields",
type: "collection",
placeholder: "Add Field to Update",
default: {},
displayOptions: {
show: {
resource: ["creditNote"],
operation: ["update"],
},
},
options: creditNoteModel,
},
{
displayName: "Invoice",
name: "invoice",
type: "collection",
placeholder: "Add Invoice",
default: {},
displayOptions: {
show: {
resource: ["creditNote"],
operation: ["createFromInvoice"],
},
},
options: [
{ displayName: "ID", name: "id", type: "string", default: "" },
{
displayName: "Object Name",
name: "objectName",
type: "string",
default: "Invoice",
},
],
},
{
displayName: "Email Data",
name: "emailData",
type: "collection",
placeholder: "Add Email Data",
default: {},
displayOptions: {
show: {
resource: ["creditNote"],
operation: ["sendByEmail"],
},
},
options: [
{ displayName: "To", name: "to", type: "string", default: "" },
{ displayName: "Subject", name: "subject", type: "string", default: "" },
{ displayName: "Text", name: "text", type: "string", default: "" },
],
},
{
displayName: "Options",
name: "options",
type: "collection",
placeholder: "Add Option",
default: {},
displayOptions: {
show: {
resource: ["creditNote"],
operation: ["getPdf"],
},
},
options: [
{
displayName: "Download",
name: "download",
type: "boolean",
default: false,
},
],
},
{
displayName: "Send Type",
name: "sendType",
type: "collection",
placeholder: "Add Send Type",
default: {},
displayOptions: {
show: {
resource: ["creditNote"],
operation: ["sendByPrinting"],
},
},
options: [
{ displayName: "Type", name: "type", type: "string", default: "" },
],
},
{
displayName: "Send Data",
name: "sendData",
type: "collection",
placeholder: "Add Send Data",
default: {},
displayOptions: {
show: {
resource: ["creditNote"],
operation: ["markAsSent"],
},
},
options: [
{
displayName: "Send Type",
name: "sendType",
type: "string",
default: "",
},
],
},
{
displayName: "Booking Data",
name: "bookingData",
type: "collection",
placeholder: "Add Booking Data",
default: {},
displayOptions: {
show: {
resource: ["creditNote"],
operation: ["book"],
},
},
options: [
{ displayName: "Amount", name: "amount", type: "number", default: 0 },
{ displayName: "Date", name: "date", type: "string", default: "" },
{ displayName: "Type", name: "type", type: "string", default: "" },
{
displayName: "Check Account",
name: "checkAccount",
type: "collection",
placeholder: "Add Check Account",
default: {},
options: [
{ displayName: "ID", name: "id", type: "string", default: "" },
{
displayName: "Object Name",
name: "objectName",
type: "string",
default: "CheckAccount",
},
],
},
],
},
];