Skip to main content
GET
Get customer profile

Authorizations

X-API-Key
string
header
required

Per-company partner API key (zupy_pk_…). Validated by Zupy against the company integration key hash (Story 14.x); send it on every request as the X-API-Key header. Scoped read-write to the owning company's data.

Path Parameters

id
string
required

Unique identifier for this customer.

Response

Customer profile with personal details, loyalty status, and contact information.

id
string
required
read-only
full_name
string
required
read-only
avatar_url
string
required
read-only
email
string
required
read-only
phone
string
required
read-only
cpf
string
required
read-only
birth_date
string
required
read-only
points_balance
integer
required
read-only
points_earned
integer
required
read-only

Total points earned in this program.

points_spent
integer
required
read-only

Total points spent in this program.

tier
enum<string>
required

Loyalty tier levels: default, bronze, silver, gold, platinum, diamond.

Available options:
default,
bronze,
silver,
gold,
platinum,
vip
card_number
string
required
read-only

Card identifier in format ZP-UNIQUEID-PID that matches the wallet card barcode

join_date
string<date-time>
required
read-only
last_activity_date
string<date-time> | null
required
read-only

Date of customer's last activity in the program

is_active
boolean
required
read-only
zupy_balance
string
required
read-only
program_id
string
required
read-only
program_name
string
required
read-only
rfm_segment
string | null
required
read-only

RFM segment name (e.g., Champions)

company_id
string
required
read-only
created_at
string<date-time>
required
read-only
updated_at
string<date-time>
required
read-only
is_email_verified
boolean
read-only

true when the customer has confirmed ownership of email (e.g. clicked a verification link). false for contacts imported from a partner (Repediu, Anota AI…) that were never proved by the owner. Use this to decide whether to trust email for transactional communication.

is_phone_verified
boolean
read-only

true when the customer has confirmed ownership of phone via WhatsApp OTP. Same imported-contact caveat as is_email_verified — unchecked contacts are 'on file' but never proved.