Skip to main content
POST
/
customers
LAGO_URL="https://api.getlago.com"
API_KEY="__YOUR_API_KEY__"

curl --location --request POST "$LAGO_URL/api/v1/customers" \
  --header "Authorization: Bearer $API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "customer": {
      "external_id": "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
      "address_line1": "5230 Penfield Ave",
      "address_line2": "",
      "city": "Woodland Hills",
      "country": "US",
      "currency": "USD",
      "email": "dinesh@piedpiper.test",
      "legal_name": "Coleman-Blair",
      "legal_number": "49-008-2965",
      "tax_identification_number": "EU123456789",
      "logo_url": "http://hooli.com/logo.png",
      "name": "Gavin Belson",
      "phone": "1-171-883-3711 x245",
      "state": "CA",
      "timezone": "Europe/Paris",
      "url": "http://hooli.com",
      "zipcode": "91364",
      "billing_configuration": {
        "invoice_grace_period": 3,
        "payment_provider": "stripe",
        "provider_customer_id": "cus_12345",
        "sync": true,
        "sync_with_provider": true,
        "document_locale": "fr",
        "provider_payment_methods": ["card", "sepa_debit", "us_bank_account", "bacs_debit", "link"]
      },
      "metadata": [
        {
          "key": "Purchase Order",
          "value": "123456789",
          "display_in_invoice": true
        }
      ],
      "tax_codes": ["french_standard_vat"]
    }
  }'
from lago_python_client.client import Client
from lago_python_client.exceptions import LagoApiError
from lago_python_client.models import Customer, CustomerBillingConfiguration

client = Client(api_key='__YOUR_API_KEY__')

metadata_object = Metadata(
  display_in_invoice=True,
  key='Purchase Order',
  value='123456789'
)

customer = Customer(
  external_id="5eb02857-a71e-4ea2-bcf9-57d8885990ba",
  address_line1="5230 Penfield Ave",
  address_line2=None,
  city="Woodland Hills",
  currency="USD",
  country="US",
  email="test@example.com",
  legal_name="Coleman-Blair",
  legal_number="49-008-2965",
  tax_identification_number="EU123456789",
  logo_url="http://hooli.com/logo.png",
  name="Test Name",
  phone="1-171-883-3711 x245",
  state="CA",
  timezone="Europe/Paris",
  url="http://hooli.com",
  zipcode="91364",
  billing_configuration=CustomerBillingConfiguration(
    invoice_grace_period=3,
    payment_provider="stripe",
    provider_customer_id="cus_12345",
    sync=true,
    sync_with_provider=true,
    document_locale="fr"
  ),
  metadata=MetadataList(__root__=[metadata_object])
)

try:
    client.customers.create(customer)
except LagoApiError as e:
    repair_broken_state(e)  # do something on error or raise your own exception
require 'lago-ruby-client'

client = Lago::Api::Client.new(api_key: '__YOUR_API_KEY__')

client.customers.create(
  external_id: "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
  address_line1: "5230 Penfield Ave",
  address_line2: nil,
  city: "Woodland Hills",
  country: "US",
  currency: "USD",
  email: "dinesh@piedpiper.test",
  legal_name: "Coleman-Blair",
  legal_number: "49-008-2965",
  tax_identification_number: "EU123456789",
  logo_url: "http://hooli.com/logo.png",
  name: "Gavin Belson",
  phone: "1-171-883-3711 x245",
  state: "CA",
  timezone: "Europe/Paris",
  url: "http://hooli.com",
  zipcode: "91364",
  billing_configuration: {
    invoice_grace_period: 3,
    payment_provider: "stripe",
    provider_customer_id: "cus_12345",
    sync: true,
    sync_with_provider: true,
    document_locale: "fr",
    provider_payment_methods: ["card", "sepa_debit", "us_bank_account", "bacs_debit", "link"]
  },
  metadata: [
    {
      key: 'Purchase Order',
      value: '123456789',
      display_in_invoice: true
    }
  ],
  tax_codes: ["french_standard_vat"]
)
import { BillingConfigurationCustomer } from "lago-javascript-client";

const customerObject = {
  external_id: "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
  address_line1: "5230 Penfield Ave",
  city: "Woodland Hills",
  currency: "EUR",
  country: "US",
  email: "dinesh@piedpiper.test",
  legal_name: "Coleman-Blair",
  legal_number: "49-008-2965",
  tax_identification_number: "EU123456789",
  logo_url: "http://hooli.com/logo.png",
  name: "Gavin Belson",
  phone: "1-171-883-3711 x245",
  state: "CA",
  timezone: "Europe/Paris",
  url: "http://hooli.com",
  zipcode: "91364",
  billing_configuration: {
    invoice_grace_period: 3,
    paymentProvider:
      "stripe" as BillingConfigurationCustomer["paymentProvider"],
    provider_customer_id: "cus_12345",
    sync: true,
    sync_with_provider: true,
    document_locale: "fr"
  },
  metadata: [
    {
      key: "Purchase Order",
      value: "123456789",
      display_in_invoice: true,
    },
  ],
};

await client.customers.createCustomer({ customer: customerObject });
import "fmt"
import "github.com/getlago/lago-go-client"

func main() {
lagoClient := lago.New().
    SetApiKey("__YOUR_API_KEY__")

customerInput := &lago.CustomerInput{
    ExternalID:              "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
    Name:                    "Gavin Belson",
    Email:                   "dinesh@piedpiper.test",
    AddressLine1:            "5230 Penfield Ave",
    AddressLine2:            "",
    City:                    "Woodland Hills",
    Country:                 "US",
    Currency:                "USD",
    State:                   "CA",
    Zipcode:                 "75001",
    LegalName:               "Coleman-Blair",
    LegalNumber:             "49-008-2965",
    TaxIdentificationNumber: "EU123456789",
    Phone:                   "+330100000000",
    Timezone:                "Europe/Paris",
    URL:                     "http://hooli.com",
    BillingConfiguration: &CustomerBillingConfigurationInput{
    InvoiceGracePeriod: 3,
    PaymentProvider: lago.PaymentProviderStripe,
    ProviderCustomerID: "cus_123456789",
    SyncWithProvider: true,
    DocumentLocale: "fr"
    },
    Metadata: [
    &CustomerMetadataInput{
        Key: "Purchase Order",
        Value: "123456789",
        DisplayInInvoice: true
    }
    ]
}

customer, err := lagoClient.Customer().Create(customerInput)
if err != nil {
    // Error is *lago.Error
    panic(err)
}

// You can use the same input to update the customer
customer, err := lagoClient.Customer().Update(customerInput)
if err != nil {
    // Error is *lago.Error
    panic(err)
}

// customer is *lago.Customer
fmt.Println(customer)
}
{
  "customer": {
    "lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
    "sequential_id": 1,
    "slug": "LAG-1234-001",
    "external_id": "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
    "applicable_timezone": "America/Los_Angeles",
    "created_at": "2022-04-29T08:59:51Z",
    "billing_entity_code": "acme_corp",
    "address_line1": "5230 Penfield Ave",
    "address_line2": null,
    "city": "Woodland Hills",
    "country": "US",
    "currency": "USD",
    "email": "dinesh@piedpiper.test",
    "legal_name": "Coleman-Blair",
    "legal_number": "49-008-2965",
    "logo_url": "http://hooli.com/logo.png",
    "name": "Gavin Belson",
    "firstname": "Gavin",
    "lastname": "Belson",
    "account_type": "customer",
    "phone": "1-171-883-3711 x245",
    "state": "CA",
    "tax_identification_number": "EU123456789",
    "timezone": "America/Los_Angeles",
    "url": "http://hooli.com",
    "zipcode": "91364",
    "net_payment_term": 30,
    "updated_at": "2022-04-29T08:59:51Z",
    "finalize_zero_amount_invoice": "inherit",
    "skip_invoice_custom_sections": false,
    "billing_configuration": {
      "invoice_grace_period": 3,
      "subscription_invoice_issuing_date_anchor": "next_period_start",
      "subscription_invoice_issuing_date_adjustment": "keep_anchor",
      "payment_provider": "stripe",
      "payment_provider_code": "stripe-eu-1",
      "provider_customer_id": "cus_12345",
      "sync": true,
      "sync_with_provider": true,
      "document_locale": "fr",
      "provider_payment_methods": [
        "card",
        "sepa_debit",
        "us_bank_account",
        "bacs_debit",
        "link",
        "boleto",
        "crypto",
        "customer_balance"
      ]
    },
    "shipping_address": {
      "address_line1": "5230 Penfield Ave",
      "address_line2": null,
      "city": "Woodland Hills",
      "country": "US",
      "state": "CA",
      "zipcode": "91364"
    },
    "metadata": [
      {
        "lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
        "key": "Purchase Order",
        "value": "123456789",
        "display_in_invoice": true,
        "created_at": "2022-04-29T08:59:51Z"
      }
    ],
    "integration_customers": [
      {
        "lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
        "type": "netsuite",
        "integration_code": "netsuite-eu-1",
        "external_customer_id": "cus_12345",
        "sync_with_provider": true,
        "subsidiary_id": "2",
        "targeted_object": "contacts",
        "email": "dinesh@piedpiper.test"
      }
    ],
    "taxes": [
      {
        "lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
        "name": "TVA",
        "code": "french_standard_vat",
        "rate": 20,
        "applied_to_organization": true,
        "created_at": "2023-07-06T14:35:58Z",
        "description": "French standard VAT"
      }
    ],
    "applicable_invoice_custom_sections": [
      {
        "lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
        "name": "EU Bank Details",
        "code": "eu_bank_details",
        "description": "This section contains the bank details for EU customers.",
        "details": "Bank Name: Lago Bank, IBAN: FR7630004000031234567890143",
        "display_name": "Bank Details:",
        "applied_to_organization": true,
        "organization_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
        "created_at": "2023-07-06T14:35:58Z"
      }
    ],
    "error_details": [
      {
        "lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
        "error_code": "tax_error",
        "details": {
          "tax_error": "taxDateTooFarInFuture"
        }
      }
    ]
  }
}
{
"status": 400,
"error": "Bad request"
}
{
"status": 401,
"error": "Unauthorized"
}
{
"status": 422,
"error": "Unprocessable entity",
"code": "validation_errors",
"error_details": {}
}
This endpoint performs an upsert operation.
LAGO_URL="https://api.getlago.com"
API_KEY="__YOUR_API_KEY__"

curl --location --request POST "$LAGO_URL/api/v1/customers" \
  --header "Authorization: Bearer $API_KEY" \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "customer": {
      "external_id": "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
      "address_line1": "5230 Penfield Ave",
      "address_line2": "",
      "city": "Woodland Hills",
      "country": "US",
      "currency": "USD",
      "email": "dinesh@piedpiper.test",
      "legal_name": "Coleman-Blair",
      "legal_number": "49-008-2965",
      "tax_identification_number": "EU123456789",
      "logo_url": "http://hooli.com/logo.png",
      "name": "Gavin Belson",
      "phone": "1-171-883-3711 x245",
      "state": "CA",
      "timezone": "Europe/Paris",
      "url": "http://hooli.com",
      "zipcode": "91364",
      "billing_configuration": {
        "invoice_grace_period": 3,
        "payment_provider": "stripe",
        "provider_customer_id": "cus_12345",
        "sync": true,
        "sync_with_provider": true,
        "document_locale": "fr",
        "provider_payment_methods": ["card", "sepa_debit", "us_bank_account", "bacs_debit", "link"]
      },
      "metadata": [
        {
          "key": "Purchase Order",
          "value": "123456789",
          "display_in_invoice": true
        }
      ],
      "tax_codes": ["french_standard_vat"]
    }
  }'
from lago_python_client.client import Client
from lago_python_client.exceptions import LagoApiError
from lago_python_client.models import Customer, CustomerBillingConfiguration

client = Client(api_key='__YOUR_API_KEY__')

metadata_object = Metadata(
  display_in_invoice=True,
  key='Purchase Order',
  value='123456789'
)

customer = Customer(
  external_id="5eb02857-a71e-4ea2-bcf9-57d8885990ba",
  address_line1="5230 Penfield Ave",
  address_line2=None,
  city="Woodland Hills",
  currency="USD",
  country="US",
  email="test@example.com",
  legal_name="Coleman-Blair",
  legal_number="49-008-2965",
  tax_identification_number="EU123456789",
  logo_url="http://hooli.com/logo.png",
  name="Test Name",
  phone="1-171-883-3711 x245",
  state="CA",
  timezone="Europe/Paris",
  url="http://hooli.com",
  zipcode="91364",
  billing_configuration=CustomerBillingConfiguration(
    invoice_grace_period=3,
    payment_provider="stripe",
    provider_customer_id="cus_12345",
    sync=true,
    sync_with_provider=true,
    document_locale="fr"
  ),
  metadata=MetadataList(__root__=[metadata_object])
)

try:
    client.customers.create(customer)
except LagoApiError as e:
    repair_broken_state(e)  # do something on error or raise your own exception
require 'lago-ruby-client'

client = Lago::Api::Client.new(api_key: '__YOUR_API_KEY__')

client.customers.create(
  external_id: "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
  address_line1: "5230 Penfield Ave",
  address_line2: nil,
  city: "Woodland Hills",
  country: "US",
  currency: "USD",
  email: "dinesh@piedpiper.test",
  legal_name: "Coleman-Blair",
  legal_number: "49-008-2965",
  tax_identification_number: "EU123456789",
  logo_url: "http://hooli.com/logo.png",
  name: "Gavin Belson",
  phone: "1-171-883-3711 x245",
  state: "CA",
  timezone: "Europe/Paris",
  url: "http://hooli.com",
  zipcode: "91364",
  billing_configuration: {
    invoice_grace_period: 3,
    payment_provider: "stripe",
    provider_customer_id: "cus_12345",
    sync: true,
    sync_with_provider: true,
    document_locale: "fr",
    provider_payment_methods: ["card", "sepa_debit", "us_bank_account", "bacs_debit", "link"]
  },
  metadata: [
    {
      key: 'Purchase Order',
      value: '123456789',
      display_in_invoice: true
    }
  ],
  tax_codes: ["french_standard_vat"]
)
import { BillingConfigurationCustomer } from "lago-javascript-client";

const customerObject = {
  external_id: "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
  address_line1: "5230 Penfield Ave",
  city: "Woodland Hills",
  currency: "EUR",
  country: "US",
  email: "dinesh@piedpiper.test",
  legal_name: "Coleman-Blair",
  legal_number: "49-008-2965",
  tax_identification_number: "EU123456789",
  logo_url: "http://hooli.com/logo.png",
  name: "Gavin Belson",
  phone: "1-171-883-3711 x245",
  state: "CA",
  timezone: "Europe/Paris",
  url: "http://hooli.com",
  zipcode: "91364",
  billing_configuration: {
    invoice_grace_period: 3,
    paymentProvider:
      "stripe" as BillingConfigurationCustomer["paymentProvider"],
    provider_customer_id: "cus_12345",
    sync: true,
    sync_with_provider: true,
    document_locale: "fr"
  },
  metadata: [
    {
      key: "Purchase Order",
      value: "123456789",
      display_in_invoice: true,
    },
  ],
};

await client.customers.createCustomer({ customer: customerObject });
import "fmt"
import "github.com/getlago/lago-go-client"

func main() {
lagoClient := lago.New().
    SetApiKey("__YOUR_API_KEY__")

customerInput := &lago.CustomerInput{
    ExternalID:              "5eb02857-a71e-4ea2-bcf9-57d3a41bc6ba",
    Name:                    "Gavin Belson",
    Email:                   "dinesh@piedpiper.test",
    AddressLine1:            "5230 Penfield Ave",
    AddressLine2:            "",
    City:                    "Woodland Hills",
    Country:                 "US",
    Currency:                "USD",
    State:                   "CA",
    Zipcode:                 "75001",
    LegalName:               "Coleman-Blair",
    LegalNumber:             "49-008-2965",
    TaxIdentificationNumber: "EU123456789",
    Phone:                   "+330100000000",
    Timezone:                "Europe/Paris",
    URL:                     "http://hooli.com",
    BillingConfiguration: &CustomerBillingConfigurationInput{
    InvoiceGracePeriod: 3,
    PaymentProvider: lago.PaymentProviderStripe,
    ProviderCustomerID: "cus_123456789",
    SyncWithProvider: true,
    DocumentLocale: "fr"
    },
    Metadata: [
    &CustomerMetadataInput{
        Key: "Purchase Order",
        Value: "123456789",
        DisplayInInvoice: true
    }
    ]
}

customer, err := lagoClient.Customer().Create(customerInput)
if err != nil {
    // Error is *lago.Error
    panic(err)
}

// You can use the same input to update the customer
customer, err := lagoClient.Customer().Update(customerInput)
if err != nil {
    // Error is *lago.Error
    panic(err)
}

// customer is *lago.Customer
fmt.Println(customer)
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Customer payload

customer
object
required

Response

Customer created or updated

customer
object
required