Skip to main content
POST
/
v1
/
customers
Go (SDK)
package main

import(
	"context"
	"os"
	polargo "github.com/polarsource/polar-go"
	"github.com/polarsource/polar-go/models/components"
	"log"
)

func main() {
    ctx := context.Background()

    s := polargo.New(
        polargo.WithSecurity(os.Getenv("POLAR_ACCESS_TOKEN")),
    )

    res, err := s.Customers.Create(ctx, components.CreateCustomerCreateCustomerIndividualCreate(
        components.CustomerIndividualCreate{
            ExternalID: polargo.Pointer("usr_1337"),
            Name: polargo.Pointer("John Doe"),
            BillingAddress: &components.AddressInput{
                Country: components.AddressInputCountryAlpha2InputUs,
            },
            Locale: polargo.Pointer("en"),
            OrganizationID: polargo.Pointer("1dbfc517-0bbf-4301-9ba8-555ca42b9737"),
            Owner: &components.MemberOwnerCreate{
                Email: "member@example.com",
                Name: polargo.Pointer("Jane Doe"),
                ExternalID: polargo.Pointer("usr_1337"),
            },
            Email: "customer@example.com",
        },
    ))
    if err != nil {
        log.Fatal(err)
    }
    if res.Customer != nil {
        switch res.Customer.Type {
            case components.CustomerUnionTypeIndividual:
                // res.Customer.CustomerIndividual is populated
            case components.CustomerUnionTypeTeam:
                // res.Customer.CustomerTeam is populated
        }

    }
}
{
  "id": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "modified_at": "2023-11-07T05:31:56Z",
  "metadata": {},
  "email": "<string>",
  "email_verified": true,
  "type": "<string>",
  "name": "John Doe",
  "billing_address": {
    "country": "AD",
    "line1": "<string>",
    "line2": "<string>",
    "postal_code": "<string>",
    "city": "<string>",
    "state": "<string>"
  },
  "tax_id": {
    "[0]": "<string>"
  },
  "organization_id": "<string>",
  "deleted_at": "2023-11-07T05:31:56Z",
  "avatar_url": "<string>",
  "external_id": "usr_1337",
  "locale": "<string>"
}

Authorizations

Authorization
string
header
required

You can generate an Organization Access Token from your organization's settings.

Body

application/json
email
string<email>
required

The email address of the customer. This must be unique within the organization.

Example:

"customer@example.com"

metadata
Metadata · object

Key-value object allowing you to store additional information.

The key must be a string with a maximum length of 40 characters. The value must be either:

  • A string with a maximum length of 500 characters
  • An integer
  • A floating-point number
  • A boolean

You can store up to 50 key-value pairs.

external_id
string | null

The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.

Example:

"usr_1337"

name
string | null

The name of the customer.

Maximum string length: 256
Example:

"John Doe"

billing_address
AddressInput · object
tax_id
string | null
locale
string | null

Locale of the customer, given as an IETF BCP 47 language tag. Supported: language code (e.g. en) or language + region (e.g. en-US). If null or unsupported, the locale will default to en-US.

Pattern: ^[a-zA-Z]{2,3}(-[a-zA-Z]{2}|-[0-9]{3})?$
Example:

"en"

organization_id
string<uuid4> | null

The organization ID.

Example:

"1dbfc517-0bbf-4301-9ba8-555ca42b9737"

owner
MemberOwnerCreate · object

Optional owner member to create with the customer. If not provided, an owner member will be automatically created using the customer's email and name.

type
string
default:individual
Allowed value: "individual"

Response

Customer created.

A customer in an organization.

id
string<uuid4>
required

The ID of the customer.

Example:

"992fae2a-2a17-4b7a-8d9e-e287cf90131b"

created_at
string<date-time>
required

Creation timestamp of the object.

modified_at
string<date-time> | null
required

Last modification timestamp of the object.

metadata
object
required
email
string
required

The email address of the customer. This must be unique within the organization.

Example:

"customer@example.com"

email_verified
boolean
required

Whether the customer email address is verified. The address is automatically verified when the customer accesses the customer portal using their email address.

Example:

true

type
string
required

The type of customer.

Allowed value: "individual"
Example:

"individual"

name
string | null
required

The name of the customer.

Example:

"John Doe"

billing_address
Address · object
required
tax_id
Tax Id · object
required
organization_id
string<uuid4>
required

The ID of the organization owning the customer.

Example:

"1dbfc517-0bbf-4301-9ba8-555ca42b9737"

deleted_at
string<date-time> | null
required

Timestamp for when the customer was soft deleted.

avatar_url
string
required
Example:

"https://www.gravatar.com/avatar/xxx?d=404"

external_id
string | null

The ID of the customer in your system. This must be unique within the organization. Once set, it can't be updated.

Example:

"usr_1337"

locale
string | null