Create a customer

Request

Creates a new customer and customer ID.

The customer's primary address is used as the default address for payment instruments, subscriptions, and invoices if none are provided.

If the customer already has an identifier within your system, and you want to create customer with a predefined ID — to prevent duplicate customers, use the Upsert a customer with predefined ID operation. For more information, see Prevent duplicate customers.

Security
SecretApiKey or JWT
Bodyapplication/jsonrequired

Customer resource.

websiteIdstring, <= 50 characters(WebsiteId)

ID of the website. A website is where an organization obtains a customer. For more information, see Obtain an organization ID and website ID.

Example:"web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
paymentTokenstringwrite-only

Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to defaultPaymentInstrumentId value. If both are supplied, the value of this property overrides the defaultPaymentInstrumentId value. The token expires after first use.

defaultPaymentInstrumentVaulted payment instrument (object) or Alternative instrument (object) or Cash (object) or Check (object)
One of:

Vaulted payment instrument.

To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument.

defaultPaymentInstrumentIdstring or null, <= 50 characterswrite-only

ID of the customer's default payment instrument.

The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.

Example:"inst_0YVB8KPKNXCBR9EDX7JHSED75N"
preferredPayoutInstrumentIdstring or null, <= 50 characters

ID of the customer's preferred payment instrument for payouts.

Default:null
Example:"inst_0YVB8KPKNXCBR9EDX7JHSED75N"
customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

Default:{}
Example:
{ "foo": "bar" }
primaryAddressContactObject (object) or null
One of:

Contact's information.

localestring or null

Language locale identifier in RFC 5646 format.

Default:null
Example:"fr-FR"
taxNumbersArray of objects or null(TaxNumber)

Tax numbers of the customer.

leadSourceobject(LeadSourceData)write-only

Lead source information.

personIdstring or null, <= 50 characters

ID of the associated person.

Example:"prs_0YV7DDSDD1C8DA64KHH2W33CPF"
notificationEmailsArray of strings, (email)

Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see Manage notification emails.

curl -i -X POST \
  https://www.rebilly.com/_mock/catalog/all/customers \
  -H 'Content-Type: application/json' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE' \
  -d '{
    "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG",
    "paymentToken": "string",
    "defaultPaymentInstrument": {
      "method": "payment-card",
      "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N"
    },
    "defaultPaymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N",
    "preferredPayoutInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N",
    "customFields": {
      "foo": "bar"
    },
    "primaryAddress": {
      "firstName": "Benjamin",
      "lastName": "Franklin",
      "organization": "Rebilly",
      "address": "36 Craven St",
      "address2": "string",
      "city": "Austin",
      "region": "Texas",
      "country": "GB",
      "postalCode": "WC2N 5NF",
      "phoneNumbers": [
        {
          "label": "main",
          "value": "1-512-777-0269",
          "primary": true
        }
      ],
      "emails": [
        {
          "label": "main",
          "value": "rebilly@example.com",
          "primary": true
        }
      ],
      "dob": "1980-04-01",
      "jobTitle": "CEO"
    },
    "locale": "fr-FR",
    "taxNumbers": [
      {
        "type": "eu-vat",
        "value": "GB980780684",
        "isDefault": true
      }
    ],
    "leadSource": {
      "medium": "string",
      "source": "string",
      "campaign": "string",
      "term": "string",
      "content": "string",
      "affiliate": "string",
      "subAffiliate": "string",
      "salesAgent": "string",
      "clickId": "string",
      "path": "string",
      "referrer": "https://www.rebilly.com"
    },
    "personId": "prs_0YV7DDSDD1C8DA64KHH2W33CPF",
    "notificationEmails": [
      "user@example.com"
    ]
  }'

Responses

Customer created.

Headers
Locationstring, (uri)

Location of the related resource.

Example:"https://api.rebilly.com/example"
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example:3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example:3600
Bodyapplication/json
idstring, <= 50 charactersread-only

ID of the customer.

Example:"cus_0YV7DDSDD1C8DA64KHH2W33CPF"
emailstring or null, (email)read-only

Customer's email address.

firstNamestring or nullread-only

Customer's first name.

lastNamestring or nullread-only

Customer's last name.

websiteIdstring, <= 50 characters(WebsiteId)

ID of the website. A website is where an organization obtains a customer. For more information, see Obtain an organization ID and website ID.

Example:"web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
defaultPaymentInstrumentVaulted payment instrument (object) or Alternative instrument (object) or Cash (object) or Check (object)
One of:

Vaulted payment instrument.

To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument.

preferredPayoutInstrumentIdstring or null, <= 50 characters

ID of the customer's preferred payment instrument for payouts.

Default:null
Example:"inst_0YVB8KPKNXCBR9EDX7JHSED75N"
createdTimestring, (date-time)(CreatedTime)read-only

Date and time when the resource is created. This value is set automatically when the resource is created.

updatedTimestring, (date-time)(UpdatedTime)read-only

Date and time when the resource is updated. This value is set automatically when the resource is updated.

customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

Default:{}
Example:
{ "foo": "bar" }
primaryAddressContactObject (object) or null
One of:

Contact's information.

companyobject or null(Company)read-only

Company information that is associated with the customer's primary email address domain.

This is a paid feature, to enable it contact Rebilly.

averageValueobject(CustomerAverageValue)read-only

Average customer value.

paymentCountintegerread-only

Total number of approved payments made by the customer. Payments are the result of sale or capture transactions.

lastPaymentTimestring or null, (date-time)read-only

Date and time when the customer made their last approved payment. Payments are the result of sale or capture transactions.

lifetimeRevenueobject(CustomerLifetimeRevenue)read-only

Customer's lifetime revenue.

invoiceCountintegerread-only

Total number of invoices issued to the customer. This value is auto-incrementing. If this value is 0, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to 1 the record relates to a customer.

tagsArray of objects(Tag)read-only

List of customer tags.

revisionintegerread-only

Number of times the customer's data has been modified.

Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.

hasFulfilledKycbooleanread-only

Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.

organizationIdstring, <= 50 characters(OrganizationId)read-only

Unique organization identifier. An organization is an entity that represents a company. For more information, see Obtain an organization ID.

Example:"org_0YVDM8RC7GDADADSBSMW124JA8"
localestring or null

Language locale identifier in RFC 5646 format.

Default:null
Example:"fr-FR"
taxNumbersArray of objects or null(TaxNumber)

Tax numbers of the customer.

personIdstring or null, <= 50 characters

ID of the associated person.

Example:"prs_0YV7DDSDD1C8DA64KHH2W33CPF"
notificationEmailsArray of strings, (email)

Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see Manage notification emails.

_embeddedobjectread-only

Embedded objects that are requested using the expand query string parameter.

Response
{ "id": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "email": "user@example.com", "firstName": "string", "lastName": "string", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "defaultPaymentInstrument": { "method": "payment-card", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N" }, "preferredPayoutInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N", "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "customFields": { "foo": "bar" }, "primaryAddress": { "firstName": "Benjamin", "lastName": "Franklin", "organization": "Rebilly", "address": "36 Craven St", "address2": "string", "city": "Austin", "region": "Texas", "country": "GB", "postalCode": "WC2N 5NF", "phoneNumbers": [], "emails": [], "dob": "1980-04-01", "jobTitle": "CEO", "hash": "056ae6d97c788b9e98b049ebafd7b229bf852221" }, "company": { "name": "string", "domain": "string", "yearFounded": 0, "industry": "string", "employeesCount": 0, "country": "string", "locality": "string", "_links": [] }, "averageValue": { "currency": "USD", "amount": 0.1, "amountUsd": 0.1 }, "paymentCount": 0, "lastPaymentTime": "2019-08-24T14:15:22Z", "lifetimeRevenue": { "currency": "USD", "amount": 0.1, "amountUsd": 0.1 }, "invoiceCount": 0, "tags": [ {} ], "revision": 0, "hasFulfilledKyc": true, "organizationId": "org_0YVDM8RC7GDADADSBSMW124JA8", "locale": "fr-FR", "taxNumbers": [ {} ], "personId": "prs_0YV7DDSDD1C8DA64KHH2W33CPF", "notificationEmails": [ "user@example.com" ], "_links": [ {} ], "_embedded": { "defaultPaymentInstrument": {}, "website": {}, "leadSource": {} } }