Skip to main content

Connector Manifest

Every connector is defined by a manifest that describes its metadata, capabilities, and configuration schema.

Fields

FieldTypeRequiredDescription
slugstringYesUnique identifier (lowercase, hyphens)
namestringYesDisplay name
versionstringYesSemVer (e.g. 1.0.0)
descriptionstringYesShort description (max 200 chars)
categoryenumYeszahlungen, produktivitaet, buchhaltung, crm
authorstringYesDeveloper or company name
iconstringYesIcon identifier
requiredPlanenumYesstarter, pro, or agentur
hasWebhookbooleanYesWhether it receives webhooks
webhookPathTemplatestringNoURL template with :token
webhookEventsstring[]NoList of event types
docsUrlstringNoExternal documentation link
tagsstring[]NoSearchable tags
settingsSchemaarrayYesConfiguration form definition

Settings Field Schema

FieldTypeRequiredDescription
keystringYesSetting key (stored in config)
labelstringYesDisplay label
typeenumYestext, password, select, toggle
placeholderstringNoInput placeholder text
encryptedbooleanNoEncrypt with AES-256-GCM
helpTextstringNoHelp text below input

Example: Stripe Connector

{
"slug": "stripe",
"name": "Stripe",
"version": "1.0.0",
"description": "Import incoming invoices from Stripe webhook events.",
"category": "zahlungen",
"author": "Monetro",
"icon": "stripe",
"requiredPlan": "starter",
"hasWebhook": true,
"webhookPathTemplate": "/api/payment-import/stripe/:token",
"webhookEvents": ["invoice.payment_succeeded"],
"docsUrl": "https://docs.stripe.com/webhooks",
"tags": ["payments", "webhooks", "stripe"],
"settingsSchema": [
{
"key": "secret",
"label": "Webhook-Secret (whsec_...)",
"type": "password",
"encrypted": true,
"placeholder": "whsec_..."
},
{
"key": "defaultSupplierId",
"label": "Default Supplier (optional)",
"type": "text"
},
{
"key": "defaultCategoryId",
"label": "Default Account (optional)",
"type": "text"
}
]
}