Update a customer
Update a customer by id
curl --request PATCH \
--url https://sandbox-api.paynext.com/customers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-API-Version: <x-api-version>' \
--data '
{
"address": {
"city": "San Francisco",
"line1": "123 Market Street",
"line2": "Suite 400",
"postal_code": "94105",
"state": "CA"
},
"email": "jane.doe@example.com",
"full_name": "Jane Doe",
"metadata": {
"key": "value"
},
"phone": "+1234567890"
}
'const options = {
method: 'PATCH',
headers: {
'X-API-Version': '<x-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
address: {
city: 'San Francisco',
line1: '123 Market Street',
line2: 'Suite 400',
postal_code: '94105',
state: 'CA'
},
email: 'jane.doe@example.com',
full_name: 'Jane Doe',
metadata: {key: 'value'},
phone: '+1234567890'
})
};
fetch('https://sandbox-api.paynext.com/customers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox-api.paynext.com/customers/{id}"
payload := strings.NewReader("{\n \"address\": {\n \"city\": \"San Francisco\",\n \"line1\": \"123 Market Street\",\n \"line2\": \"Suite 400\",\n \"postal_code\": \"94105\",\n \"state\": \"CA\"\n },\n \"email\": \"jane.doe@example.com\",\n \"full_name\": \"Jane Doe\",\n \"metadata\": {\n \"key\": \"value\"\n },\n \"phone\": \"+1234567890\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-Version", "<x-api-version>")
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://sandbox-api.paynext.com/customers/{id}")
.header("X-API-Version", "<x-api-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"address\": {\n \"city\": \"San Francisco\",\n \"line1\": \"123 Market Street\",\n \"line2\": \"Suite 400\",\n \"postal_code\": \"94105\",\n \"state\": \"CA\"\n },\n \"email\": \"jane.doe@example.com\",\n \"full_name\": \"Jane Doe\",\n \"metadata\": {\n \"key\": \"value\"\n },\n \"phone\": \"+1234567890\"\n}")
.asString();import requests
url = "https://sandbox-api.paynext.com/customers/{id}"
payload = {
"address": {
"city": "San Francisco",
"line1": "123 Market Street",
"line2": "Suite 400",
"postal_code": "94105",
"state": "CA"
},
"email": "jane.doe@example.com",
"full_name": "Jane Doe",
"metadata": { "key": "value" },
"phone": "+1234567890"
}
headers = {
"X-API-Version": "<x-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox-api.paynext.com/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([
'address' => [
'city' => 'San Francisco',
'line1' => '123 Market Street',
'line2' => 'Suite 400',
'postal_code' => '94105',
'state' => 'CA'
],
'email' => 'jane.doe@example.com',
'full_name' => 'Jane Doe',
'metadata' => [
'key' => 'value'
],
'phone' => '+1234567890'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-API-Version: <x-api-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"address": {
"city": "San Francisco",
"country": "AD",
"line1": "123 Market Street",
"line2": "Suite 400",
"postal_code": "94105",
"state": "CA"
},
"created_at": "2025-05-28T14:00:00Z",
"email": "alice.johnson@example.com",
"external_id": "ext_001",
"full_name": "Alice Johnson",
"id": "cus_b8d0fe7e-3a7f-4b5f-a68b-d31358b49c3f",
"metadata": {
"key": "value"
},
"payment_methods": [
{
"details": {
"bin": "411111",
"bin_data": {
"brand": "visa",
"country": "AD",
"currency_code": "<string>",
"description": "Chase Sapphire Preferred",
"funding": "debit",
"issuer": "Chase Bank",
"type": "consumer"
},
"exp_month": 12,
"exp_year": 2028,
"is_network_tokenized": true,
"last4": "1111",
"network_token": {
"bin": "48953700",
"last4": "0370",
"exp_month": 5,
"exp_year": 31,
"status": "active",
"last_synced_at": "2025-05-26T10:15:00Z"
},
"number": "4111111111111111"
},
"type": "CARD",
"billing_address": {
"city": "San Francisco",
"country": "AD",
"line1": "123 Market Street",
"line2": "Suite 400",
"postal_code": "94105",
"state": "CA"
},
"card_updater": true,
"fpan_out_of_sync": false,
"status": "active"
}
],
"phone": "+1-555-123-4567",
"subscriptions": [
{
"created_at": "2025-05-26T10:00:00Z",
"current_period_end": "<string>",
"cancelled_at": "2026-06-10T14:32:08Z",
"cancellation_details": {
"reason": "fraud_prevention",
"trigger_payment_id": "pay_e8a1b2c3-1d2e-3f4a-5b6c-7d8e9f0a1b2c"
},
"current_period_start": "<string>",
"id": "sub_123e4567-e89b-12d3-a456-426614174000",
"metadata": {
"key": "value"
},
"next_billing_date": "2025-06-26T12:00:00Z",
"past_due": {
"attempt_count": 2,
"max_attempts_count": 7
},
"plan": {
"id": "price_1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"interval": "days",
"interval_count": 1,
"name": "Pro Plan",
"price": {
"amount": 1999,
"currency": "AED"
},
"tax": {
"collect_tax": "<unknown>"
},
"trial_interval": "days",
"trial_interval_count": 14,
"trial_price": {
"amount": 1999,
"currency": "AED"
},
"type": "recurring"
},
"status": "trial",
"updated_at": "2025-05-27T10:00:00Z"
}
],
"updated_at": "2025-05-28T14:05:00Z"
}{
"error": {
"message": "some error message"
}
}{
"error": {
"message": "some error message"
}
}{
"error": {
"message": "some error message"
}
}{
"error": {
"message": "some error message"
}
}Authorizations
Authentication header of the form api key, where api key is your organization api key.
Headers
Specifies the version of the API to use
1.0.0 Path Parameters
The ID of the customer to update
Body
Update customer data
Billing address of the customer
Show child attributes
Show child attributes
Email address of the customer
"jane.doe@example.com"
Full name of the customer
"Jane Doe"
Custom metadata associated with the customer. A dictionary of key-value pairs that is deep-merged into any existing metadata.
Show child attributes
Show child attributes
{ "key": "value" }
Phone number of the customer in E.164 format
"+1234567890"
Response
OK
Address associated with customer
Show child attributes
Show child attributes
The date and time the customer was created in UTC format
"2025-05-28T14:00:00Z"
Email of the customer
"alice.johnson@example.com"
External ID of the customer
"ext_001"
Full name of the customer
"Alice Johnson"
Unique identifier
"cus_b8d0fe7e-3a7f-4b5f-a68b-d31358b49c3f"
Additional metadata as a JSON object
Show child attributes
Show child attributes
{ "key": "value" }
- Card API Schema
- PayPal API Schema
- Venmo API Schema
- CashApp API Schema
- Apple Pay API Schema
- Google Pay API Schema
Show child attributes
Show child attributes
Customer's phone number
"+1-555-123-4567"
Show child attributes
Show child attributes
The date and time the customer was last updated in UTC format
"2025-05-28T14:05:00Z"
Was this page helpful?
curl --request PATCH \
--url https://sandbox-api.paynext.com/customers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-API-Version: <x-api-version>' \
--data '
{
"address": {
"city": "San Francisco",
"line1": "123 Market Street",
"line2": "Suite 400",
"postal_code": "94105",
"state": "CA"
},
"email": "jane.doe@example.com",
"full_name": "Jane Doe",
"metadata": {
"key": "value"
},
"phone": "+1234567890"
}
'const options = {
method: 'PATCH',
headers: {
'X-API-Version': '<x-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
address: {
city: 'San Francisco',
line1: '123 Market Street',
line2: 'Suite 400',
postal_code: '94105',
state: 'CA'
},
email: 'jane.doe@example.com',
full_name: 'Jane Doe',
metadata: {key: 'value'},
phone: '+1234567890'
})
};
fetch('https://sandbox-api.paynext.com/customers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox-api.paynext.com/customers/{id}"
payload := strings.NewReader("{\n \"address\": {\n \"city\": \"San Francisco\",\n \"line1\": \"123 Market Street\",\n \"line2\": \"Suite 400\",\n \"postal_code\": \"94105\",\n \"state\": \"CA\"\n },\n \"email\": \"jane.doe@example.com\",\n \"full_name\": \"Jane Doe\",\n \"metadata\": {\n \"key\": \"value\"\n },\n \"phone\": \"+1234567890\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-Version", "<x-api-version>")
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://sandbox-api.paynext.com/customers/{id}")
.header("X-API-Version", "<x-api-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"address\": {\n \"city\": \"San Francisco\",\n \"line1\": \"123 Market Street\",\n \"line2\": \"Suite 400\",\n \"postal_code\": \"94105\",\n \"state\": \"CA\"\n },\n \"email\": \"jane.doe@example.com\",\n \"full_name\": \"Jane Doe\",\n \"metadata\": {\n \"key\": \"value\"\n },\n \"phone\": \"+1234567890\"\n}")
.asString();import requests
url = "https://sandbox-api.paynext.com/customers/{id}"
payload = {
"address": {
"city": "San Francisco",
"line1": "123 Market Street",
"line2": "Suite 400",
"postal_code": "94105",
"state": "CA"
},
"email": "jane.doe@example.com",
"full_name": "Jane Doe",
"metadata": { "key": "value" },
"phone": "+1234567890"
}
headers = {
"X-API-Version": "<x-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox-api.paynext.com/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([
'address' => [
'city' => 'San Francisco',
'line1' => '123 Market Street',
'line2' => 'Suite 400',
'postal_code' => '94105',
'state' => 'CA'
],
'email' => 'jane.doe@example.com',
'full_name' => 'Jane Doe',
'metadata' => [
'key' => 'value'
],
'phone' => '+1234567890'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-API-Version: <x-api-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"address": {
"city": "San Francisco",
"country": "AD",
"line1": "123 Market Street",
"line2": "Suite 400",
"postal_code": "94105",
"state": "CA"
},
"created_at": "2025-05-28T14:00:00Z",
"email": "alice.johnson@example.com",
"external_id": "ext_001",
"full_name": "Alice Johnson",
"id": "cus_b8d0fe7e-3a7f-4b5f-a68b-d31358b49c3f",
"metadata": {
"key": "value"
},
"payment_methods": [
{
"details": {
"bin": "411111",
"bin_data": {
"brand": "visa",
"country": "AD",
"currency_code": "<string>",
"description": "Chase Sapphire Preferred",
"funding": "debit",
"issuer": "Chase Bank",
"type": "consumer"
},
"exp_month": 12,
"exp_year": 2028,
"is_network_tokenized": true,
"last4": "1111",
"network_token": {
"bin": "48953700",
"last4": "0370",
"exp_month": 5,
"exp_year": 31,
"status": "active",
"last_synced_at": "2025-05-26T10:15:00Z"
},
"number": "4111111111111111"
},
"type": "CARD",
"billing_address": {
"city": "San Francisco",
"country": "AD",
"line1": "123 Market Street",
"line2": "Suite 400",
"postal_code": "94105",
"state": "CA"
},
"card_updater": true,
"fpan_out_of_sync": false,
"status": "active"
}
],
"phone": "+1-555-123-4567",
"subscriptions": [
{
"created_at": "2025-05-26T10:00:00Z",
"current_period_end": "<string>",
"cancelled_at": "2026-06-10T14:32:08Z",
"cancellation_details": {
"reason": "fraud_prevention",
"trigger_payment_id": "pay_e8a1b2c3-1d2e-3f4a-5b6c-7d8e9f0a1b2c"
},
"current_period_start": "<string>",
"id": "sub_123e4567-e89b-12d3-a456-426614174000",
"metadata": {
"key": "value"
},
"next_billing_date": "2025-06-26T12:00:00Z",
"past_due": {
"attempt_count": 2,
"max_attempts_count": 7
},
"plan": {
"id": "price_1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"interval": "days",
"interval_count": 1,
"name": "Pro Plan",
"price": {
"amount": 1999,
"currency": "AED"
},
"tax": {
"collect_tax": "<unknown>"
},
"trial_interval": "days",
"trial_interval_count": 14,
"trial_price": {
"amount": 1999,
"currency": "AED"
},
"type": "recurring"
},
"status": "trial",
"updated_at": "2025-05-27T10:00:00Z"
}
],
"updated_at": "2025-05-28T14:05:00Z"
}{
"error": {
"message": "some error message"
}
}{
"error": {
"message": "some error message"
}
}{
"error": {
"message": "some error message"
}
}{
"error": {
"message": "some error message"
}
}