The Customer Profile API provides registered customers with full control over their account data: personal details, saved delivery addresses, and favorited businesses. Every endpoint in this group is protected by theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/CRISTIANCAMACH34/Zippi/llms.txt
Use this file to discover all available pages before exploring further.
require_customer guard, which validates the customer JWT and enforces that each customer can only read and modify their own data.
All endpoints below require a valid customer JWT issued at login. Include it as
Authorization: Bearer {token} on every request. Tokens expire after the
number of minutes configured in JWT_ACCESS_TOKEN_EXPIRES_MINUTES (default: 4
minutes as set in .env.example). Use the refresh flow to obtain a new access
token without re-authenticating.Personalized Home
Returns a personalized homepage payload for the logged-in customer, including business recommendations, featured businesses, and recent order suggestions.GET /api/v1/customer/home
This endpoint does not require authentication at the route level — it is
publicly accessible. However, when a customer JWT is present the response may
be personalised in future versions. Currently it returns the same marketplace
home data regardless of authentication state.
cURL
Response
Active business categories. Same shape as
GET /api/v1/business-categories.Up to 3 featured business-branch cards.
Up to 6 popular business-branch cards.
Up to 4 nearby business-branch cards (first 4 in alphabetical order).
Businesses with active promotions. May be empty.
All branches currently in
OPERANDO state.Get Customer Profile
Returns the current customer’s name, email, and phone.GET /api/v1/customer/profile
Requires customer JWT.
cURL
Response
Customer ID as a string (numeric).
Full name of the customer.
Phone number (unique identifier for the customer record).
Email address, or
null if not set.Internal notes on the customer record (
notas), or null if none have been set.ISO 8601 UTC timestamp of account creation.
Example response
Update Customer Profile
Updates the authenticated customer’s name and/or email address. Phone number cannot be changed through this endpoint.PUT /api/v1/customer/profile
Requires customer JWT.
Request Body
New display name. Trimmed and truncated to 120 characters. Omit to leave
unchanged.
New email address. Pass an empty string or
null to clear the email field.
Omit to leave unchanged.cURL
Response
Returns the full updated profile object. Same shape as Get Customer Profile.List Saved Addresses
Returns all delivery addresses saved to the customer’s account, with the default address first.GET /api/v1/customer/addresses
Requires customer JWT.
cURL
Response
Array of address objects, ordered with the default address first, then by
creation date ascending.
Address ID as a string (numeric).
Street address text (
direccion_texto).Optional delivery reference or landmark.
Latitude coordinate, or
null if not set.Longitude coordinate, or
null if not set.Whether this is the customer’s currently selected default delivery address.
Example response
Create Address
Saves a new delivery address to the customer’s account.POST /api/v1/customer/addresses
Requires customer JWT.
Request Body
Full street address text. This field is required — a missing or empty address
returns HTTP 422.
Optional delivery reference, landmark, or apartment/floor details.
Latitude coordinate (−90 to 90). Optional but recommended for accurate courier routing.
Longitude coordinate (−180 to 180). Optional but recommended for accurate courier routing.
When
true, this address becomes the default and all other saved addresses
are demoted. Defaults to false.cURL
Response
Returns the created address object. HTTP 201 on success. Same shape as an element of the list addresses response.Update Address
Updates an existing saved address. Only provided fields are changed.PUT /api/v1/customer/addresses/:id
Requires customer JWT. The address must belong to the authenticated customer.
Path Parameters
Numeric ID of the address to update.
Request Body
New street address text. Omit to leave unchanged.
New reference text. Pass an empty string or
null to clear it.cURL
Response
Returns the full updated address object. Returns 404 if the address ID does not exist or belongs to a different customer.Delete Address
Permanently removes a saved address from the customer’s account.DELETE /api/v1/customer/addresses/:id
Requires customer JWT. The address must belong to the authenticated customer.
Path Parameters
Numeric ID of the address to delete.
cURL
Response
Set Default Address
Marks one saved address as the default delivery address. All other addresses for this customer are demoted to non-default atomically.POST /api/v1/customer/addresses/:id/default
Requires customer JWT.
Path Parameters
Numeric ID of the address to promote as default.
cURL
Response
Returns the promoted address object withisDefault: true. Returns 404 if
the address does not exist or belongs to a different customer.
Example response
List Favorite Businesses
Returns the lists of businesses and products the customer has marked as favorites. Favorites are stored as customer metadata and updated through the frontend.GET /api/v1/customer/favorites
Requires customer JWT.
cURL
Response
List of favorited business reference IDs (e.g.
["biz-12-branch-5", "biz-8-branch-2"]).
May be empty.List of favorited product reference IDs (e.g.
["prod-101", "prod-205"]).
May be empty.Example response
The
require_customer guard enforces strict ownership — a customer JWT can
only access, modify, or delete data that belongs to that customer’s own account.
Attempting to access another customer’s addresses or profile will return HTTP
403 or 404 (fail-closed).