Create or update a product (building block)
Creates or updates a product by your reference: name, net unit price, VAT rate and how it is priced and billed — flat, per unit, tiered (volume or graduated) or by package; one-off or per month, quarter or year; in advance or in arrears; with an optional quota and an overage price. Invoice lines and contract items can then name it. An unsuitable combination is refused with a pricing.* code. Scope partner:products:write.
apiKey partner:products:writeAuthorizationBearer <ab_…>An API key from Integrations → Connect AI assistants (MCP) → New access, bound to exactly one company. Each operation names the scope the key must carry.
Scope: partner:products:write
source*Source^[a-z0-9][a-z0-9_-]{0,49}$external_ref*External Ref^[A-Za-z0-9][A-Za-z0-9._:@+-]{0,254}$AlphaCount-Version?stringThe API version to use. Default: the current one.
application/json- body
PUT /products/by-ref/{source}/{external_ref}. Replaces the fields
listed here; the article number is AlphaCount's (given on create, else
assigned).
article_number?|nullbilling_interval?Billing Interval"one_off""one_off""month""quarter""year"billing_timing?Billing Timing"advance""advance""arrears"included_quantity?||nullkind?Kind"service""base_fee""seats""usage""credits""sla""service"name*Name1 <= length <= 255overage_unit_price?|nullprice_tiers?array<>|nullpricing_model?Pricing Model"per_unit""flat""per_unit""tiered_volume""tiered_graduated""package"unit?|nullunit_price_net*Unit Price Net^\d{1,9}(\.\d{1,4})?$vat_rate*Vat Rate0719OK
application/json- response
article_number*Article NumberArticle number in the company's books.
billing_interval*|nullbilling_timing*|nullexternal_ref*string|nullexternal_source*string|nullid*Idincluded_quantity*|Quota per period; for package, the package size.
kind*|nullname*Nameoverage_unit_price*|Price per unit above the quota.
price_tiers*array<>|nullpricing_model*|nullrevenue_account*|Revenue account the lines of this product are booked to.
unit*string|nullunit_price_net*|Price of one unit (of the whole block for flat, of one package for package).
vat_rate*Vat Ratecurl -X PUT 'https://app.alphacount.ai/api/partner/v1/products/by-ref/string/string' \ -H 'Authorization: Bearer ab_...' \ -H 'Content-Type: application/json' \ -d '{ "billing_interval": "month", "billing_timing": "arrears", "kind": "usage", "name": "1 Mio. Token", "pricing_model": "per_unit", "unit": "Paket", "unit_price_net": "40.00", "vat_rate": 19}'{ "article_number": "ART-0001", "billing_interval": "month", "billing_timing": "arrears", "external_ref": "tokens-1m", "external_source": "alphalearn", "id": "00000000-0000-4000-8000-000000000001", "included_quantity": null, "kind": "usage", "name": "1 Mio. Token", "overage_unit_price": null, "price_tiers": null, "pricing_model": "per_unit", "revenue_account": null, "unit": "Paket", "unit_price_net": "40.00", "vat_rate": 19}