Claude-skill-registry autumn-create-customer

Skill for setting up Autumn billing integration and creating customers.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/autumn-create-customer" ~/.claude/skills/majiayu000-claude-skill-registry-autumn-create-customer && rm -rf "$T"
manifest: skills/data/autumn-create-customer/SKILL.md
source content

Autumn Customer Setup

Always consult docs.useautumn.com for code examples and latest API.


Quick Reference

Environment Variables

Installation

npm install autumn-js    # Node.js
pip install autumn-py    # Python

Integration Paths

StackPath
React + Node.jsMount handler + AutumnProvider
Backend onlyInitialize client + call API

Path A: React + Node.js

Handler Setup

FrameworkFileImport
Next.js App Router
app/api/autumn/[...all]/route.ts
autumn-js/next
React Router
app/routes/api.autumn.tsx
autumn-js/react-router
HonoAny file
autumn-js/hono
ExpressAny file
autumn-js/express
FastifyAny file
autumn-js/fastify
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

import { AutumnProvider } from "autumn-js/react";

<AutumnProvider>{children}</AutumnProvider>

// Different backend URL:
<AutumnProvider backendUrl={process.env.NEXT_PUBLIC_API_URL} />

Verify

import { useCustomer } from "autumn-js/react";

const { customer } = useCustomer();
console.log("Autumn customer:", customer);

Path B: Backend Only

Initialize

import { Autumn } from "autumn-js";

const autumn = new Autumn({ secretKey: process.env.AUTUMN_SECRET_KEY });
from autumn import Autumn

autumn = Autumn('am_sk_test_xxx')

Create Customer

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