pty_*) is Natural’s representation of a real-world identity. It ties together your Agents, Wallets, and the authorization you grant through Connect. An external party (epty_*) is a counterparty not on Natural; a party is on Natural. Read yours with GET /parties/me.
There are two types of party: individuals and businesses. Most developers sign up as a business so they can invite teammates.
Every party clears Compliance (KYB for businesses, KYC for individuals).
Handles
Every party can claim a handle, the@name other parties use to pay or request money from you without knowing an email, phone number, or party ID. Agents get composed handles under their party (@acme-support), so a handle also names who an agent acts for.
Claim or rename your handle in the dashboard, or with PUT /parties/me/handle. Handles cannot be cleared: every party keeps one once claimed. A signed-in user or the party’s API key can change a handle; agent keys cannot, and an unverified party gets party_not_verified. Renaming releases the previous name into a 14-day hold, during which only your party can take it back.
Brand color
A brand color belongs to the party. Business owners and admins can edit it in Settings, and API callers can useGET /parties/{partyId}/branding and PATCH /parties/{partyId}/branding.
Reads require party.read; updates require party.update. To act for another party, pass its ID using a credential authorized by an active delegation with the required permission. Agent-bound credentials must also have the required agent permissions.
Send brandColor inside data.attributes as #RGB or #RRGGBB. Responses use uppercase, six-digit hex. Send null to reset to the default. Updates require an Idempotency-Key header; reuse it only when retrying the same update. Branding is stored separately in each product environment.
Business profile photos
The branding endpoint also manages a business party’s profile photo. Authorized API keys and agents can change it on the business’s behalf usingparty.update permission. Personal-party photo changes are not supported by this endpoint.
- Call
POST /parties/{partyId}/branding/photo-uploadswithcontentTypeandsizeBytesinsidedata.attributes. JPEG, PNG, and WebP files up to 5 MB are supported. - POST multipart form data to the returned
uploadUrl, including every returneduploadFieldsvalue and the image as the finalfilefield. Upload URLs expire; request a new upload if needed. - Call
PATCH /parties/{partyId}/brandingwith the returnedobjectKeyasavatarObjectKeyinsidedata.attributesand anIdempotency-Keyheader.
avatarObjectKey: null to remove the photo, or include brandColor to update both together. Photo and color changes in a combined request are saved atomically. Reads return the public photo in avatarUrl.
Business profile photos are managed in Live and reflected in Sandbox through identity synchronization. Sandbox cannot create photo uploads or change the shared photo. Brand color remains local to each environment.
Canonical examples
These docs use three parties as running examples:Kendall Developer (business party)
Kendall is an agent developer who has integrated Natural into his AI property management platform. He:- Uses agents to automate vendor and contractor payments
- Uses Natural to allow his agents to pay his customers
Eric Customer (business party)
Eric runs a property management company and uses Kendall’s agents. He:- Onboards as Kendall’s customer through Connect and authorizes Kendall’s agents to pay on his behalf
- Uses Kendall’s agents to pay vendors and contractors automatically
Klaire Contractor (individual party)
Klaire is a plumber who receives payments from businesses. She:- Is sent money by Kendall’s agents on behalf of Eric
- Signs up to claim her first payment from Eric