Create a supplier
Products reference suppliers by ID, so an integration syncing its own supplier list calls this before its first
product write. Only name is required; the contact fields are for whoever places the order.
Names are unique on a tenant, so creating one that already exists returns 409 supplier_name_taken rather than
a duplicate. That makes this endpoint safe to call on every sync if you treat that code as “already have it”,
though holding onto the returned supplierId is cheaper.
Errors
422 supplier_name_required— no name, or a blank one.409 supplier_name_taken— another supplier on the tenant already has that name.
Requires the suppliers:write scope.
POST
/api/v1/suppliersAuthorization
AuthorizationBearer token (bloomcount_...) · headerrequiredRequest body
requiredapplication/jsonnamestringaddressstringwebsitestringcontactNamestringcontactEmailstringcontactPhonestringResponses
201Created
supplierIdstringrequirednamestringrequiredcontactNamestring | nullcontactEmailstring | nullcontactPhonestring | nullwebsitestring | nulladdressstring | null401Missing or invalid API key, or revoked / expired.
errorstringrequired403Authenticated, but the key lacks the required scope or the tenant has no API access.
errorstringrequired409The request is well formed, but it conflicts with the current state: a name already taken, a row the app
protects (the hidden Default supplier, a preset colour or category), or a staff member who has an account.
errorstringrequired422Request body or arguments failed validation.
errorstringrequired429Per-minute rate limit (60/min) or per-month cap exceeded.
errorstringrequired