Customer Portal API
Update Customer
Update authenticated customer.
PATCH
/
v1
/
customer-portal
/
customers
/
me
python (new sdk)
from polar.v2026_04 import Polar
polar = Polar("polar_oat_xxx")
response = polar.customer_portal.customers.update()
print(response)import { createPolar } from "@polar-sh/sdk/2026-04";
const polar = createPolar({
accessToken: "polar_oat_xxx",
});
const response = await polar.customerPortal.customers.update(
{},
);
console.log(response);curl --request PATCH \
--url https://api.polar.sh/v1/customer-portal/customers/me \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"billing_name": "<string>",
"billing_address": {
"line1": "<string>",
"line2": "<string>",
"postal_code": "<string>",
"city": "<string>",
"state": "<string>"
},
"tax_id": "<string>",
"default_payment_method_id": "<string>"
}
'import requests
url = "https://api.polar.sh/v1/customer-portal/customers/me"
payload = {
"billing_name": "<string>",
"billing_address": {
"line1": "<string>",
"line2": "<string>",
"postal_code": "<string>",
"city": "<string>",
"state": "<string>"
},
"tax_id": "<string>",
"default_payment_method_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
billing_name: '<string>',
billing_address: {
line1: '<string>',
line2: '<string>',
postal_code: '<string>',
city: '<string>',
state: '<string>'
},
tax_id: '<string>',
default_payment_method_id: '<string>'
})
};
fetch('https://api.polar.sh/v1/customer-portal/customers/me', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.polar.sh/v1/customer-portal/customers/me",
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([
'billing_name' => '<string>',
'billing_address' => [
'line1' => '<string>',
'line2' => '<string>',
'postal_code' => '<string>',
'city' => '<string>',
'state' => '<string>'
],
'tax_id' => '<string>',
'default_payment_method_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.polar.sh/v1/customer-portal/customers/me"
payload := strings.NewReader("{\n \"billing_name\": \"<string>\",\n \"billing_address\": {\n \"line1\": \"<string>\",\n \"line2\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n },\n \"tax_id\": \"<string>\",\n \"default_payment_method_id\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.polar.sh/v1/customer-portal/customers/me")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"billing_name\": \"<string>\",\n \"billing_address\": {\n \"line1\": \"<string>\",\n \"line2\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n },\n \"tax_id\": \"<string>\",\n \"default_payment_method_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.polar.sh/v1/customer-portal/customers/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"billing_name\": \"<string>\",\n \"billing_address\": {\n \"line1\": \"<string>\",\n \"line2\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n },\n \"tax_id\": \"<string>\",\n \"default_payment_method_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"email": "<string>",
"email_verified": true,
"name": "<string>",
"billing_name": "<string>",
"billing_address": {
"line1": "<string>",
"line2": "<string>",
"postal_code": "<string>",
"city": "<string>",
"state": "<string>"
},
"tax_id": {
"[0]": "<string>"
},
"oauth_accounts": {},
"default_payment_method_id": "<string>",
"locale": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
customer_sessionmember_session
Customer session tokens are specific tokens that are used to authenticate customers on your organization. You can create those sessions programmatically using the Create Customer Session endpoint.
Body
application/json
Response
Customer updated.
Creation timestamp of the object.
Last modification timestamp of the object.
The ID of the object.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
individual, team Was this page helpful?
⌘I
python (new sdk)
from polar.v2026_04 import Polar
polar = Polar("polar_oat_xxx")
response = polar.customer_portal.customers.update()
print(response)import { createPolar } from "@polar-sh/sdk/2026-04";
const polar = createPolar({
accessToken: "polar_oat_xxx",
});
const response = await polar.customerPortal.customers.update(
{},
);
console.log(response);curl --request PATCH \
--url https://api.polar.sh/v1/customer-portal/customers/me \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"billing_name": "<string>",
"billing_address": {
"line1": "<string>",
"line2": "<string>",
"postal_code": "<string>",
"city": "<string>",
"state": "<string>"
},
"tax_id": "<string>",
"default_payment_method_id": "<string>"
}
'import requests
url = "https://api.polar.sh/v1/customer-portal/customers/me"
payload = {
"billing_name": "<string>",
"billing_address": {
"line1": "<string>",
"line2": "<string>",
"postal_code": "<string>",
"city": "<string>",
"state": "<string>"
},
"tax_id": "<string>",
"default_payment_method_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
billing_name: '<string>',
billing_address: {
line1: '<string>',
line2: '<string>',
postal_code: '<string>',
city: '<string>',
state: '<string>'
},
tax_id: '<string>',
default_payment_method_id: '<string>'
})
};
fetch('https://api.polar.sh/v1/customer-portal/customers/me', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.polar.sh/v1/customer-portal/customers/me",
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([
'billing_name' => '<string>',
'billing_address' => [
'line1' => '<string>',
'line2' => '<string>',
'postal_code' => '<string>',
'city' => '<string>',
'state' => '<string>'
],
'tax_id' => '<string>',
'default_payment_method_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.polar.sh/v1/customer-portal/customers/me"
payload := strings.NewReader("{\n \"billing_name\": \"<string>\",\n \"billing_address\": {\n \"line1\": \"<string>\",\n \"line2\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n },\n \"tax_id\": \"<string>\",\n \"default_payment_method_id\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.polar.sh/v1/customer-portal/customers/me")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"billing_name\": \"<string>\",\n \"billing_address\": {\n \"line1\": \"<string>\",\n \"line2\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n },\n \"tax_id\": \"<string>\",\n \"default_payment_method_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.polar.sh/v1/customer-portal/customers/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"billing_name\": \"<string>\",\n \"billing_address\": {\n \"line1\": \"<string>\",\n \"line2\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\"\n },\n \"tax_id\": \"<string>\",\n \"default_payment_method_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"email": "<string>",
"email_verified": true,
"name": "<string>",
"billing_name": "<string>",
"billing_address": {
"line1": "<string>",
"line2": "<string>",
"postal_code": "<string>",
"city": "<string>",
"state": "<string>"
},
"tax_id": {
"[0]": "<string>"
},
"oauth_accounts": {},
"default_payment_method_id": "<string>",
"locale": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}
