--- name: autumn-create-customer description: Skill for setting up Autumn billing integration and creating customers. --- # Autumn Customer Setup **Always consult [docs.useautumn.com](https://docs.useautumn.com) for code examples and latest API.** --- ## Quick Reference ### Environment Variables - `AUTUMN_SECRET_KEY` - Required. Get one at [app.useautumn.com](https://app.useautumn.com/dev?tab=api_keys) ### Installation ```bash npm install autumn-js # Node.js pip install autumn-py # Python ``` --- ## Integration Paths | Stack | Path | |-------|------| | React + Node.js | Mount handler + AutumnProvider | | Backend only | Initialize client + call API | --- ## Path A: React + Node.js ### Handler Setup | Framework | File | Import | |-----------|------|--------| | Next.js App Router | `app/api/autumn/[...all]/route.ts` | `autumn-js/next` | | React Router | `app/routes/api.autumn.tsx` | `autumn-js/react-router` | | Hono | Any file | `autumn-js/hono` | | Express | Any file | `autumn-js/express` | | Fastify | Any file | `autumn-js/fastify` | ```typescript import { autumnHandler } from "autumn-js/next"; export const { GET, POST } = autumnHandler({ identify: async (request) => { const session = await getSession(request); return { customerId: session.user.id, // or session.org.id for B2B customerData: { name: session.user.name, email: session.user.email }, }; }, }); ``` ### Client Setup ```tsx import { AutumnProvider } from "autumn-js/react"; {children} // Different backend URL: ``` ### Verify ```tsx import { useCustomer } from "autumn-js/react"; const { customer } = useCustomer(); console.log("Autumn customer:", customer); ``` --- ## Path B: Backend Only ### Initialize ```typescript import { Autumn } from "autumn-js"; const autumn = new Autumn({ secretKey: process.env.AUTUMN_SECRET_KEY }); ``` ```python from autumn import Autumn autumn = Autumn('am_sk_test_xxx') ``` ### Create Customer ```typescript const { data } = await autumn.customers.create({ id: "user_id_from_auth", name: "Test User", email: "test@example.com", }); ``` --- ## Common Gotchas 1. **B2C vs B2B** - Decide if `customerId` is user ID or org ID before integrating 2. **Idempotent** - `customers.create` returns existing customer if ID exists 3. **Backend URL** - Pass `backendUrl` to provider if API is on different domain 4. **Secret key** - Keep `AUTUMN_SECRET_KEY` server-side only --- ## Resources - [Setup Docs](https://docs.useautumn.com/documentation/getting-started/setup/sdk) - [React Setup](https://docs.useautumn.com/documentation/getting-started/setup/react) - [LLMs.txt](https://docs.useautumn.com/llms.txt)