Skip to main content
Creates a customer if they do not exist, or returns the existing customer by your external customer ID.

When to Use

Use this as the primary entrypoint before billing operations so the customer record is always present and up to date. This endpoint is idempotent - calling it multiple times with the same customer_id will return the same customer without creating duplicates.

Request Body

string
required
Your unique identifier for the customer. Cannot contain @, spaces, or periods. Only letters, numbers, underscores, and hyphens are allowed.
string
Customer’s name.
string
Customer’s email address. Must be a valid email format.
string
Unique identifier (eg. serial number, device ID) to detect duplicate customers and prevent free trial abuse. Useful for identifying the same user across different accounts or devices.
object
Additional metadata for the customer. Can store any custom key-value pairs.
string
Stripe customer ID if you already have one. If provided, Autumn will link to your existing Stripe customer.
boolean
Whether to create the customer in Stripe. Defaults to true if not specified.
string
The ID of a free plan to automatically enable for the customer upon creation.
boolean
Whether to send email receipts to this customer. Defaults to false.
array
Array of fields to expand in the response. Available options:
  • invoices - Include customer invoices
  • trials_used - Include trial usage information
  • rewards - Include rewards information
  • entities - Include entity information
  • referrals - Include referral information
  • payment_method - Include payment method details
  • subscriptions.plan - Expand full plan objects in subscriptions
  • purchases.plan - Expand full plan objects in purchases
  • balances.feature - Expand full feature objects in balances

Response

Returns a Customer object with the following fields:
string
Your unique identifier for the customer.
string
The name of the customer.
string
The email address of the customer.
number
Timestamp of customer creation in milliseconds since epoch.
string
The fingerprint identifier for the customer.
string
Stripe customer ID.
string
The environment this customer was created in (sandbox or live).
object
The metadata for the customer.
boolean
Whether email receipts are enabled for this customer.
array
Active and scheduled recurring plans that this customer has attached. Each subscription includes:
  • plan_id - The unique identifier of the subscribed plan
  • status - Current status (active or scheduled)
  • auto_enable - Whether the plan was automatically enabled
  • add_on - Whether this is an add-on plan
  • past_due - Whether the subscription has overdue payments
  • started_at - Timestamp when subscription started
  • current_period_start - Start of current billing period
  • current_period_end - End of current billing period
  • quantity - Quantity of the subscription
  • canceled_at - Timestamp when canceled (if applicable)
  • expires_at - Timestamp when it expires (if applicable)
  • trial_ends_at - Timestamp when trial ends (if applicable)
array
One-time purchases made by the customer.
object
Feature balances keyed by feature ID, showing usage limits and remaining amounts. Each balance includes:
  • feature_id - The feature identifier
  • granted - Total amount granted
  • remaining - Amount remaining
  • usage - Total usage
  • unlimited - Whether the feature is unlimited
  • overage_allowed - Whether overage is allowed
  • max_purchase - Maximum purchasable amount
  • next_reset_at - Timestamp of next reset
  • breakdown - Detailed breakdown by entitlement

Example Request

Example Response