Autumn
Emulated Autumn billing API for local development and testing.
Implements the v1 RPC-style API autumn-js speaks (/v1/<group>.<method>).
Included now:
customers.get_or_create,customers.update,customers.listbalances.trackandbalances.checkplans.listwith per-customer eligibility (trials, upgrades, downgrades)billing.attachandbilling.open_customer_portal- A hosted checkout page that settles paid plans and card-required trials
# From this repo (after `bun install && bun run build`)bun packages/emulate/dist/index.js --service autumn
# Or from the published packagenpx @pleaseai/emulate --service autumnA single service starts on the base port (default 4000). Use -p <port> to
change it. When started alongside other services, ports are assigned
sequentially from the base port.
Any am_-prefixed bearer token is accepted as the secret key.
curl -X POST http://localhost:4000/v1/customers.get_or_create \ -H "Authorization: Bearer am_test_emulate" \ -H "Content-Type: application/json" \ -d '{"customer_id": "org_demo"}'With the SDK:
import { Autumn } from 'autumn-js'
const autumn = new Autumn({ secretKey: 'am_test_emulate', serverURL: 'http://localhost:4000' })Check Example
Section titled “Check Example”curl -X POST http://localhost:4000/v1/balances.check \ -H "Authorization: Bearer am_test_emulate" \ -H "Content-Type: application/json" \ -d '{"customer_id": "org_demo", "feature_id": "executions"}'Seed Config
Section titled “Seed Config”Add an autumn: section to emulate.config.yaml (or pass --seed <file>):
autumn: plans: - id: free name: Free auto_enable: true items: - feature_id: executions included: 100 - id: pro name: Pro price: amount: 20 interval: month items: - feature_id: executions included: 10000 customers: - id: org_demo subscriptions: - plan_id: pro status: active