SaaSFlow
DevelopersAPIReferencevendors

Create vendor

Create a vendor. `defaultCategorization` is the template applied to every future transaction matched to this vendor: category, date rule, P&L split, and pass-through tax. Getting it right once is what keeps recurring spend categorizing itself. `domains` feed the matching. A default categorization booking a transfer must name an account that can actually receive one, otherwise the request fails with 400.

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}/vendors

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

application/json

curl -X POST "https://example.com/companies/string/vendors" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",  "name": "string",  "defaultCategorization": {    "categoryId": "string",    "usingDateRule": {      "type": "transactionDate"    },    "plSplit": {      "revenue": 0,      "cogs": 0,      "cac": 0,      "pd": 0,      "ga": 0,      "no": 0,      "neutral": 0    },    "passThroughTax": 0,    "transferTargetAccountId": "string"  },  "domains": [    "string"  ],  "logo": true,  "autoCreatedSource": "searchApiGoogleWebSearch",  "createdTime": "2019-08-24T14:15:22Z",  "createdUserId": "string",  "lastUpdatedTime": "2019-08-24T14:15:22Z",  "lastUpdatedUserId": "string",  "externalIds": [    "string"  ]}