id. The access token only grants access to the customer linked to the original OIDC sub claim, so id must match the token’s customer id.
Requires a Fire spark access token obtained through token
exchange.
Path parameters
| Parameter | Required | Description |
|---|---|---|
id | Yes | External customer identifier. Must match the token’s customer id. |
Request
curl "https://firespark.cloud/api/storefront/v1/customers/auth0|abc123" \
-H "Authorization: Bearer ACCESS_TOKEN"
Response
The response wraps a single customer object indata. Storefront responses omit internal fields such as birthday.
{
"data": {
"uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"merchant_id": "22222222-2222-2222-2222-222222222222",
"id": "auth0|abc123",
"name": "John Smith",
"email": "john@example.com",
"status": "ACTIVE",
"is_anonymous": false,
"email_verified": false,
"phone_verified": false,
"phone": "+593991234567",
"registration_date": "2026-01-15T10:30:00Z",
"gender": "MALE",
"dob": "1990-05-20T00:00:00Z",
"document_type": "CI",
"document_number": "1712345678",
"country": "EC",
"delivery_addresses": [
{
"alias": "Home",
"address_line1": "Av. Amazonas 123",
"address_line2": "Apt 4B",
"city": "Quito",
"state": "Pichincha",
"zip": "170150",
"country": "EC",
"reference": "Near the park",
"latitude": -0.1807,
"longitude": -78.4678,
"instructions": "Ring the bell",
"preferred": true,
"metadata": null
}
],
"billing_profiles": [
{
"alias": "Personal",
"type": "INDIVIDUAL",
"legal_name": "John Smith",
"address_line1": "Av. Amazonas 123",
"city": "Quito",
"country": "EC",
"tax_id": "1712345678",
"tax_id_type": "CI",
"preferred": true,
"metadata": null
}
],
"devices": [
{
"id": "iphone-15-pro",
"os": "IOS",
"fcm_token": "fcm-token-abc123",
"created_at": "2026-01-10T08:00:00Z",
"updated_at": "2026-01-15T10:30:00Z"
}
],
"consent": {
"marketing": true
},
"notification_preferences": {
"email": true,
"push": true,
"push_token": "ExponentPushToken[abc]",
"push_token_expires_at": "2026-12-15T00:00:00Z"
},
"metadata": {}
}
}
Customer fields
| Field | Required | Type | Description |
|---|---|---|---|
uid | Yes | uuid | Fire spark internal identifier. |
merchant_id | Yes | uuid | Fire spark merchant identifier. |
id | Yes | string | Your external customer identifier. |
name | Yes | string | Full name. |
email | Yes | string \ | null | Email address. Null for anonymous customers. |
status | Yes | string | ACTIVE or INACTIVE. |
is_anonymous | Yes | boolean | Whether this is a guest customer. |
email_verified | Yes | boolean | Whether the email address is verified. |
phone_verified | Yes | boolean | Whether the phone number is verified. |
gender | No | string \ | null | MALE, FEMALE, or OTHER. |
dob | No | datetime \ | null | Date of birth (ISO 8601 with offset). |
document_type | No | string \ | null | Government ID type. |
document_number | No | string \ | null | Government ID number. |
country | No | string \ | null | Customer country. |
phone | Yes | string \ | null | Phone number in international format. |
registration_date | Yes | datetime | When the customer was registered. |
delivery_addresses | No | array | Saved delivery addresses (max 10). |
billing_profiles | No | array | Billing profiles with tax identifiers (max 10). |
devices | No | array | Push devices (max 10). |
consent | No | object \ | null | Marketing advertising consent. |
notification_preferences | No | object | Email and push delivery preferences. |
metadata | No | object \ | null | Custom metadata (max 1MB serialized). |
Delivery address
| Field | Required | Type | Description |
|---|---|---|---|
alias | Yes | string | Label such as “Home” or “Office”. |
address_line1 | Yes | string | Primary street address. |
address_line2 | No | string | Apartment, suite, or floor. |
city | No | string | City. |
state | No | string | State or province. |
zip | No | string | Postal code. |
country | No | string | Country. |
reference | No | string | Landmark or reference point. |
latitude | No | number | Latitude between -90 and 90. |
longitude | No | number | Longitude between -180 and 180. |
instructions | No | string | Delivery instructions. |
preferred | No | boolean | Default address. Defaults to false. At most one address may be preferred. |
metadata | No | object \ | null | Custom metadata for this address. |
Billing profile
| Field | Required | Type | Description |
|---|---|---|---|
alias | Yes | string | Label such as “Personal” or “Business”. |
type | Yes | string | INDIVIDUAL or BUSINESS. |
legal_name | Yes | string | Legal name for invoicing. |
address_line1 | Yes | string | Primary billing address. |
address_line2 | No | string | Additional address line. |
city | No | string | City. |
state | No | string | State or province. |
zip | No | string | Postal code. |
country | No | string | Country. |
tax_id | Yes | string | Tax identifier value. |
tax_id_type | Yes | string | One of VAT, EIN, SSN, TIN, NIF, CUIT, RUT, NIT, RCN, RUC, CI, DNI, PASSPORT, or OTHER. |
preferred | No | boolean | Default profile. Defaults to false. At most one profile may be preferred. |
metadata | No | object \ | null | Custom metadata for this profile. |
Device
| Field | Required | Type | Description |
|---|---|---|---|
id | Yes | string | External device identifier. |
os | Yes | string | IOS, ANDROID, or WEB. |
fcm_token | Yes | string | Firebase Cloud Messaging token. |
created_at | Yes | datetime | When the device was registered. |
updated_at | Yes | datetime | When the device was last updated. |
Consent
Marketing opt-in only. Transactional messages (for example, an order nearby) do not require this flag; they only need the matching channel innotification_preferences. Marketing messages need both the channel and consent.marketing.
| Field | Type | Default | Description |
|---|---|---|---|
marketing | boolean | false | Advertising and promotions on any channel |
Notification preferences
| Field | Type | Default | Description |
|---|---|---|---|
email | boolean | true | Receive emails |
push | boolean | true | Receive push notifications |
push_token | string | — | Push notification token. Present only with push_token_expires_at. |
push_token_expires_at | datetime | — | Present only with push_token. |
Error responses
| Status | Description |
|---|---|
401 | Missing or invalid access token. |
403 | The id does not match the token’s customer id. |
404 | No customer found with the given id. |