Back to the help center
Integrations

Use Norman in n8n and Make

Configure an HTTP request with a Norman API key, test the response and build a reporting or invoicing workflow.

Updated

Choose REST or MCP

Use an HTTP request when your workflow should make a specific API call, such as reading transactions or creating an invoice draft. Both n8n and Make can call the Norman Public API this way.

Use MCP when an AI agent should discover and choose Norman tools during a conversation or task. The n8n card in Norman's Integrations area points to the MCP setup guide. A REST API key and an MCP OAuth connection are different setup methods. For MCP, follow the AI-client connection guide and your tool's support for remote MCP with OAuth.

Prepare a Norman key

Open Automations → Integrations → Public API. Select the company and create a Read only key for the first test. Store the key in n8n or Make's credential store. Use separate keys when workflows need different permissions or independent revocation.

Configure the HTTP step

SettingValue
MethodGET
URLhttps://api.norman.finance/api/v1/companies/
Authorization headerBearer YOUR_API_KEY
Response formatJSON

In n8n, add an HTTP Request node. Choose generic credentials with Header Auth, using header name Authorization and value Bearer YOUR_API_KEY. Select that credential on the node.

In Make, add HTTP → Make a request. Configure its credential/keychain option to send the same Authorization header. The setup labels depend on the HTTP module version.

Run the step once. A successful response contains results; copy the company's publicId into subsequent company-specific paths. If the company is archived, add include_archived=true to the query.

See the official n8n HTTP Request guide and Make HTTP guide for the current controls.

Example: scheduled transaction export

After the company test, request:

https://api.norman.finance/api/v1/accounting/transactions/?page=1&page_size=100

Use read_transactions, map the records from results, and continue with the response's next URL until it is null. In n8n, HTTP Request supports Response Contains Next URL pagination. In Make, use the pagination controls available in your HTTP module or a loop. Keep requests on the Norman API host when following a next link.

Test a small export before adding a schedule. Use returned record IDs to update existing rows in your destination.

Example: CRM to invoice draft

Trigger the workflow from your CRM, create or update the client, and create a Norman invoice draft. Use the Invoicing permission preset, JSON request bodies and the invoice recipe. Save the returned client and invoice IDs in the CRM. Review the draft before adding an email-sending step.

For a document upload, use multipart with the file field instead of JSON. Processing can continue after the upload response; read the document later to check its result.

Make repeated runs reliable

Keep an error branch: refresh invalid credentials, resolve missing permissions, and respect Retry-After on a 429 response. Avoid automatically repeating a create or send step after a timeout until you know whether it succeeded.

Public event subscriptions are not included in the current API contract. Use scheduled reads or an event from your source system to start these workflows. See API access and troubleshooting and the full reference.

Norman handles the operational finance work

Invoicing, receipts, bookkeeping, and taxes in one workflow: start for free.