Skip to content
  • Auto
  • Light
  • Dark
Talk to an expert

Create

Create a customer
client.v1.customers.create(CustomerCreateParamsbody, RequestOptionsoptions?): dataCustomerCustomerCreateResponse
post/v1/customers

Create a new customer

Parameters
bodynamestringbilling_configBillingConfigcustom_fieldsRecord<string, string>customer_billing_provider_configurationsarrayexternal_idstringingest_aliasesarrayCustomerCreateParams
Hide ParametersShow Parameters
namestring

This will be truncated to 160 characters if the provided name is longer.

billing_configBillingConfig
optional
Hide ParametersShow Parameters
billing_provider_customer_idstring
billing_provider_typeunion
"aws_marketplace" | "stripe" | "netsuite" | 5 more
Hide ParametersShow Parameters
"aws_marketplace"
"stripe"
"netsuite"
"custom"
"azure_marketplace"
"quickbooks_online"
"workday"
"gcp_marketplace"
aws_is_subscription_productboolean
optional

True if the aws_product_code is a SAAS subscription product, false otherwise.

aws_product_codestring
optional
aws_regionunion
optional
"af-south-1" | "ap-east-1" | "ap-northeast-1" | 22 more
Hide ParametersShow Parameters
"af-south-1"
"ap-east-1"
"ap-northeast-1"
"ap-northeast-2"
"ap-northeast-3"
"ap-south-1"
"ap-southeast-1"
"ap-southeast-2"
"ca-central-1"
"cn-north-1"
"cn-northwest-1"
"eu-central-1"
"eu-north-1"
"eu-south-1"
"eu-west-1"
"eu-west-2"
"eu-west-3"
"me-south-1"
"sa-east-1"
"us-east-1"
"us-east-2"
"us-gov-east-1"
"us-gov-west-1"
"us-west-1"
"us-west-2"
stripe_collection_methodunion
optional
"charge_automatically" | "send_invoice"
Hide ParametersShow Parameters
"charge_automatically"
"send_invoice"
custom_fieldsRecord<string, string>
optional
customer_billing_provider_configurationsarray
optional
Hide ParametersShow Parameters
billing_providerunion
"aws_marketplace" | "azure_marketplace" | "gcp_marketplace" | 2 more

The billing provider set for this configuration.

Hide ParametersShow Parameters
"aws_marketplace"
"azure_marketplace"
"gcp_marketplace"
"stripe"
"netsuite"
configurationRecord<string, unknown>
optional

Configuration for the billing provider. The structure of this object is specific to the billing provider and delivery provider combination. Defaults to an empty object, however, for most billing provider + delivery method combinations, it will not be a valid configuration.

delivery_methodunion
optional
"direct_to_billing_provider" | "aws_sqs" | "tackle" | "aws_sns"

The method to use for delivering invoices to this customer. If not provided, the delivery_method_id must be provided.

Hide ParametersShow Parameters
"direct_to_billing_provider"
"aws_sqs"
"tackle"
"aws_sns"
delivery_method_idstring
optional

ID of the delivery method to use for this customer. If not provided, the delivery_method must be provided.

formatuuid
external_idstring
optional

(deprecated, use ingest_aliases instead) an alias that can be used to refer to this customer in usage events

minLength1
maxLength128
ingest_aliasesarray
optional
Array<string>

Aliases that can be used to refer to this customer in usage events

Returns
CustomerCreateResponse
Hide ParametersShow Parameters
dataidstringexternal_idstringingest_aliasesarraynamestringcustom_fieldsRecord<string, string>Customer
import Metronome from '@metronome/sdk';

const client = new Metronome({
  bearerToken: 'My Bearer Token',
});

const customer = await client.v1.customers.create({
  name: 'Example, Inc.',
  customer_billing_provider_configurations: [
    {
      billing_provider: 'stripe',
      delivery_method: 'direct_to_billing_provider',
      configuration: { stripe_customer_id: 'cus_123', stripe_collection_method: 'charge_automatically' },
    },
  ],
  ingest_aliases: ['[email protected]'],
});

console.log(customer.data);
200 Example
{
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "external_id": "external_id",
    "ingest_aliases": [
      "string"
    ],
    "name": "name",
    "custom_fields": {
      "foo": "string"
    }
  }
}