import Stigg from '@stigg/typescript';
const client = new Stigg({
apiKey: process.env['STIGG_API_KEY'], // This is the default and can be omitted
});
const customerResponse = await client.v1.customers.update('x');
console.log(customerResponse.data);import os
from stigg import Stigg
client = Stigg(
api_key=os.environ.get("STIGG_API_KEY"), # This is the default and can be omitted
)
customer_response = client.v1.customers.update(
id="x",
)
print(customer_response.data)package main
import (
"context"
"fmt"
"github.com/stiggio/stigg-go"
"github.com/stiggio/stigg-go/option"
)
func main() {
client := stigg.NewClient(
option.WithAPIKey("My API Key"),
)
customerResponse, err := client.V1.Customers.Update(
context.TODO(),
"x",
stigg.V1CustomerUpdateParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", customerResponse.Data)
}package io.stigg.example;
import io.stigg.client.StiggClient;
import io.stigg.client.okhttp.StiggOkHttpClient;
import io.stigg.models.v1.customers.CustomerResponse;
import io.stigg.models.v1.customers.CustomerUpdateParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
CustomerResponse customerResponse = client.v1().customers().update("x");
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
customer_response = stigg.v1.customers.update("x")
puts(customer_response)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Customers;
StiggClient client = new();
CustomerUpdateParams parameters = new() { ID = "x" };
var customerResponse = await client.V1.Customers.Update(parameters);
Console.WriteLine(customerResponse);stigg v1:customers update \
--api-key 'My API Key' \
--id xcurl --request PATCH \
--url https://api.stigg.io/api/v1/customers/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"name": "<string>",
"email": "jsmith@example.com",
"billingId": "<string>",
"metadata": {},
"integrations": [
{
"syncedEntityId": "<string>",
"id": "<string>"
}
],
"couponId": "<string>",
"timezone": "<string>",
"language": "<string>",
"passthrough": {
"stripe": {
"customerName": "<string>",
"billingAddress": {
"city": "<string>",
"country": "<string>",
"line1": "<string>",
"line2": "<string>",
"postalCode": "<string>",
"state": "<string>"
},
"shippingAddress": {
"city": "<string>",
"country": "<string>",
"line1": "<string>",
"line2": "<string>",
"postalCode": "<string>",
"state": "<string>"
},
"paymentMethodId": "<string>",
"taxIds": [
{
"type": "<string>",
"value": "<string>"
}
],
"invoiceCustomFields": {},
"metadata": {}
},
"zuora": {
"billingAddress": {
"city": "<string>",
"country": "<string>",
"line1": "<string>",
"line2": "<string>",
"postalCode": "<string>",
"state": "<string>"
},
"paymentMethodId": "<string>",
"metadata": {}
}
}
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/customers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'email' => 'jsmith@example.com',
'billingId' => '<string>',
'metadata' => [
],
'integrations' => [
[
'syncedEntityId' => '<string>',
'id' => '<string>'
]
],
'couponId' => '<string>',
'timezone' => '<string>',
'language' => '<string>',
'passthrough' => [
'stripe' => [
'customerName' => '<string>',
'billingAddress' => [
'city' => '<string>',
'country' => '<string>',
'line1' => '<string>',
'line2' => '<string>',
'postalCode' => '<string>',
'state' => '<string>'
],
'shippingAddress' => [
'city' => '<string>',
'country' => '<string>',
'line1' => '<string>',
'line2' => '<string>',
'postalCode' => '<string>',
'state' => '<string>'
],
'paymentMethodId' => '<string>',
'taxIds' => [
[
'type' => '<string>',
'value' => '<string>'
]
],
'invoiceCustomFields' => [
],
'metadata' => [
]
],
'zuora' => [
'billingAddress' => [
'city' => '<string>',
'country' => '<string>',
'line1' => '<string>',
'line2' => '<string>',
'postalCode' => '<string>',
'state' => '<string>'
],
'paymentMethodId' => '<string>',
'metadata' => [
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"createdAt": "2025-10-26T10:00:00.000Z",
"updatedAt": "2025-10-26T10:00:00.000Z",
"archivedAt": null,
"name": "John Doe",
"email": "john@example.com",
"billingId": "cus_MIhJJFnJL24HFH",
"id": "customer-6e24b4",
"billingCurrency": "usd",
"metadata": {},
"integrations": [],
"defaultPaymentMethod": {
"type": "CARD",
"billingId": "pm_1Q0PsIJvEtkwdCNYMSaVuRz6",
"cardLast4Digits": "1234",
"cardExpiryMonth": 12,
"cardExpiryYear": 2025
},
"couponId": "coupon-6e24b4",
"timezone": null,
"language": "en",
"passthrough": {
"stripe": {
"invoiceCustomFields": {}
},
"zuora": {}
}
}
}{
"message": "<string>"
}{
"message": "<string>",
"code": "Unauthenticated"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"code": "RateLimitExceeded"
}Update Customer
Updates an existing customer’s properties such as name, email, and billing information.
import Stigg from '@stigg/typescript';
const client = new Stigg({
apiKey: process.env['STIGG_API_KEY'], // This is the default and can be omitted
});
const customerResponse = await client.v1.customers.update('x');
console.log(customerResponse.data);import os
from stigg import Stigg
client = Stigg(
api_key=os.environ.get("STIGG_API_KEY"), # This is the default and can be omitted
)
customer_response = client.v1.customers.update(
id="x",
)
print(customer_response.data)package main
import (
"context"
"fmt"
"github.com/stiggio/stigg-go"
"github.com/stiggio/stigg-go/option"
)
func main() {
client := stigg.NewClient(
option.WithAPIKey("My API Key"),
)
customerResponse, err := client.V1.Customers.Update(
context.TODO(),
"x",
stigg.V1CustomerUpdateParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", customerResponse.Data)
}package io.stigg.example;
import io.stigg.client.StiggClient;
import io.stigg.client.okhttp.StiggOkHttpClient;
import io.stigg.models.v1.customers.CustomerResponse;
import io.stigg.models.v1.customers.CustomerUpdateParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
CustomerResponse customerResponse = client.v1().customers().update("x");
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
customer_response = stigg.v1.customers.update("x")
puts(customer_response)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Customers;
StiggClient client = new();
CustomerUpdateParams parameters = new() { ID = "x" };
var customerResponse = await client.V1.Customers.Update(parameters);
Console.WriteLine(customerResponse);stigg v1:customers update \
--api-key 'My API Key' \
--id xcurl --request PATCH \
--url https://api.stigg.io/api/v1/customers/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"name": "<string>",
"email": "jsmith@example.com",
"billingId": "<string>",
"metadata": {},
"integrations": [
{
"syncedEntityId": "<string>",
"id": "<string>"
}
],
"couponId": "<string>",
"timezone": "<string>",
"language": "<string>",
"passthrough": {
"stripe": {
"customerName": "<string>",
"billingAddress": {
"city": "<string>",
"country": "<string>",
"line1": "<string>",
"line2": "<string>",
"postalCode": "<string>",
"state": "<string>"
},
"shippingAddress": {
"city": "<string>",
"country": "<string>",
"line1": "<string>",
"line2": "<string>",
"postalCode": "<string>",
"state": "<string>"
},
"paymentMethodId": "<string>",
"taxIds": [
{
"type": "<string>",
"value": "<string>"
}
],
"invoiceCustomFields": {},
"metadata": {}
},
"zuora": {
"billingAddress": {
"city": "<string>",
"country": "<string>",
"line1": "<string>",
"line2": "<string>",
"postalCode": "<string>",
"state": "<string>"
},
"paymentMethodId": "<string>",
"metadata": {}
}
}
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/customers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'email' => 'jsmith@example.com',
'billingId' => '<string>',
'metadata' => [
],
'integrations' => [
[
'syncedEntityId' => '<string>',
'id' => '<string>'
]
],
'couponId' => '<string>',
'timezone' => '<string>',
'language' => '<string>',
'passthrough' => [
'stripe' => [
'customerName' => '<string>',
'billingAddress' => [
'city' => '<string>',
'country' => '<string>',
'line1' => '<string>',
'line2' => '<string>',
'postalCode' => '<string>',
'state' => '<string>'
],
'shippingAddress' => [
'city' => '<string>',
'country' => '<string>',
'line1' => '<string>',
'line2' => '<string>',
'postalCode' => '<string>',
'state' => '<string>'
],
'paymentMethodId' => '<string>',
'taxIds' => [
[
'type' => '<string>',
'value' => '<string>'
]
],
'invoiceCustomFields' => [
],
'metadata' => [
]
],
'zuora' => [
'billingAddress' => [
'city' => '<string>',
'country' => '<string>',
'line1' => '<string>',
'line2' => '<string>',
'postalCode' => '<string>',
'state' => '<string>'
],
'paymentMethodId' => '<string>',
'metadata' => [
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"createdAt": "2025-10-26T10:00:00.000Z",
"updatedAt": "2025-10-26T10:00:00.000Z",
"archivedAt": null,
"name": "John Doe",
"email": "john@example.com",
"billingId": "cus_MIhJJFnJL24HFH",
"id": "customer-6e24b4",
"billingCurrency": "usd",
"metadata": {},
"integrations": [],
"defaultPaymentMethod": {
"type": "CARD",
"billingId": "pm_1Q0PsIJvEtkwdCNYMSaVuRz6",
"cardLast4Digits": "1234",
"cardExpiryMonth": 12,
"cardExpiryYear": 2025
},
"couponId": "coupon-6e24b4",
"timezone": null,
"language": "en",
"passthrough": {
"stripe": {
"invoiceCustomFields": {}
},
"zuora": {}
}
}
}{
"message": "<string>"
}{
"message": "<string>",
"code": "Unauthenticated"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"code": "RateLimitExceeded"
}Authorizations
Server API Key
Headers
Account ID — optional when authenticating with a user JWT (Bearer token); falls back to the user's first membership. Ignored for API-key auth.
Environment ID — required when authenticating with a user JWT (Bearer token) on environment-scoped endpoints. Ignored for API-key auth (env is intrinsic to the key).
Path Parameters
The unique identifier of the entity
1 - 255Body
Partially update an existing customer. Only provided fields are updated.
The name of the customer
255The email of the customer
255The unique identifier for the entity in the billing provider
255The billing currency of the customer
usd, aed, all, amd, ang, aud, awg, azn, bam, bbd, bdt, bgn, bif, bmd, bnd, bsd, bwp, byn, bzd, brl, cad, cdf, chf, cny, czk, dkk, dop, dzd, egp, etb, eur, fjd, gbp, gel, gip, gmd, gyd, hkd, hrk, htg, idr, ils, inr, isk, jmd, jpy, kes, kgs, khr, kmf, krw, kyd, kzt, lbp, lkr, lrd, lsl, mad, mdl, mga, mkd, mmk, mnt, mop, mro, mvr, mwk, mxn, myr, mzn, nad, ngn, nok, npr, nzd, pgk, php, pkr, pln, qar, ron, rsd, rub, rwf, sar, sbd, scr, sek, sgd, sle, sll, sos, szl, thb, tjs, top, try, ttd, tzs, uah, uzs, vnd, vuv, wst, xaf, xcd, yer, zar, zmw, clp, djf, gnf, ugx, pyg, xof, xpf Additional metadata
Show child attributes
Show child attributes
List of integrations
Show child attributes
Show child attributes
Customer level coupon
1 - 255^[a-zA-Z0-9][a-zA-Z0-9_|.-]*$Timezone to use for this customer
255Language to use for this customer
255Vendor-specific billing passthrough fields.
Show child attributes
Show child attributes
Response
The updated customer object.
Response object
A customer can be either an organization or an individual
Show child attributes
Show child attributes
