SaaSFlow
DevelopersAPIReferencecategories

Merge

Merge several categories into one, in a single transaction. Creates the category described by `newCategory`, then repoints everything that referenced the old ids: transaction categorizations, the default categorization on customers and vendors, and the default category on accounts. The old categories are deleted afterwards. This is how to retire duplicates without stranding history, since a plain delete is refused while transactions still use the category. One thing to know before running it: plan items on the old categories are deleted rather than repointed, so a merge drops that part of the financial plan. Returns the new category.

Authentication

You're not signed in. Either sign in at app.saasflow.com and reload (then pick sessionCookie), or paste a SaaSFlow sf_… API key in the bearerAuth field below.
POST
/companies/{companyId}/categories/merge

Authorization

Authorization<token>

A SaaSFlow API key (format sf_…) or an OAuth bearer token. Paste only the key — the proxy adds the Bearer prefix. Create an API key in Settings → Company settings → API keys — see API keys.

In: header

Path Parameters

companyId*string
Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/companies/string/categories/merge" \  -H "Content-Type: application/json" \  -d '{    "categoryIds": [      "string"    ],    "newCategory": {      "name": "string",      "plTypes": [        "revenue"      ],      "order": 0    }  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",  "name": "string",  "emoji": "string",  "plTypes": [    "revenue"  ],  "system": true,  "systemKey": "string",  "order": -8388608,  "createdTime": "2019-08-24T14:15:22Z",  "createdUserId": "string",  "lastUpdatedTime": "2019-08-24T14:15:22Z",  "lastUpdatedUserId": "string"}