id externo indicado. El access token solo permite acceder al cliente vinculado al claim OIDC sub, por lo que id debe coincidir con el id del token.
Requiere un access token de Fire spark obtenido mediante intercambio de
token.
Parámetros de ruta
| Parámetro | Requerido | Descripción |
|---|---|---|
id | Sí | Identificador externo del cliente. Debe coincidir con el id del token. |
Solicitud
curl "https://firespark.cloud/api/storefront/v1/customers/auth0|abc123" \
-H "Authorization: Bearer ACCESS_TOKEN"
Respuesta
La respuesta envuelve un objeto cliente endata. Las respuestas de Storefront no incluyen campos internos como birthday.
{
"data": {
"uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"merchant_id": "22222222-2222-2222-2222-222222222222",
"id": "auth0|abc123",
"name": "Juan Pérez",
"email": "juan@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": "Casa",
"address_line1": "Av. Amazonas 123",
"address_line2": "Depto 4B",
"city": "Quito",
"state": "Pichincha",
"zip": "170150",
"country": "EC",
"reference": "Cerca del parque",
"latitude": -0.1807,
"longitude": -78.4678,
"instructions": "Tocar el timbre",
"preferred": true,
"metadata": null
}
],
"billing_profiles": [
{
"alias": "Personal",
"type": "INDIVIDUAL",
"legal_name": "Juan Pérez",
"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": {}
}
}
Campos del cliente
| Campo | Requerido | Tipo | Descripción |
|---|---|---|---|
uid | Sí | uuid | Identificador interno de Fire spark. |
merchant_id | Sí | uuid | Identificador de comercio en Fire spark. |
id | Sí | string | Tu identificador externo del cliente. |
name | Sí | string | Nombre completo. |
email | Sí | string \ | null | Correo electrónico. Null para clientes anónimos. |
status | Sí | string | ACTIVE o INACTIVE. |
is_anonymous | Sí | boolean | Si es un cliente invitado. |
email_verified | Sí | boolean | Si el correo está verificado. |
phone_verified | Sí | boolean | Si el teléfono está verificado. |
gender | No | string \ | null | MALE, FEMALE u OTHER. |
dob | No | datetime \ | null | Fecha de nacimiento (ISO 8601 con offset). |
document_type | No | string \ | null | Tipo de documento de identidad. |
document_number | No | string \ | null | Número de documento de identidad. |
country | No | string \ | null | País del cliente. |
phone | Sí | string \ | null | Teléfono en formato internacional. |
registration_date | Sí | datetime | Fecha de registro del cliente. |
delivery_addresses | No | array | Direcciones de entrega guardadas (máx. 10). |
billing_profiles | No | array | Perfiles de facturación (máx. 10). |
devices | No | array | Dispositivos push (máx. 10). |
consent | No | object \ | null | Consentimiento de marketing. |
notification_preferences | No | object | Preferencias de entrega de email y push. |
metadata | No | object \ | null | Metadatos personalizados (máx. 1MB serializado). |
Dirección de entrega
| Campo | Requerido | Tipo | Descripción |
|---|---|---|---|
alias | Sí | string | Etiqueta como “Casa” u “Oficina”. |
address_line1 | Sí | string | Dirección principal. |
address_line2 | No | string | Apartamento, piso o suite. |
city | No | string | Ciudad. |
state | No | string | Estado o provincia. |
zip | No | string | Código postal. |
country | No | string | País. |
reference | No | string | Punto de referencia. |
latitude | No | number | Latitud entre -90 y 90. |
longitude | No | number | Longitud entre -180 y 180. |
instructions | No | string | Instrucciones de entrega. |
preferred | No | boolean | Dirección predeterminada. Por defecto false. Solo una puede ser preferred. |
metadata | No | object \ | null | Metadatos personalizados de esta dirección. |
Perfil de facturación
| Campo | Requerido | Tipo | Descripción |
|---|---|---|---|
alias | Sí | string | Etiqueta como “Personal” o “Empresa”. |
type | Sí | string | INDIVIDUAL o BUSINESS. |
legal_name | Sí | string | Nombre legal para facturación. |
address_line1 | Sí | string | Dirección de facturación principal. |
address_line2 | No | string | Línea adicional de dirección. |
city | No | string | Ciudad. |
state | No | string | Estado o provincia. |
zip | No | string | Código postal. |
country | No | string | País. |
tax_id | Sí | string | Valor del identificador fiscal. |
tax_id_type | Sí | string | Uno de VAT, EIN, SSN, TIN, NIF, CUIT, RUT, NIT, RCN, RUC, CI, DNI, PASSPORT u OTHER. |
preferred | No | boolean | Perfil predeterminado. Por defecto false. Solo uno puede ser preferred. |
metadata | No | object \ | null | Metadatos personalizados de este perfil. |
Dispositivo
| Campo | Requerido | Tipo | Descripción |
|---|---|---|---|
id | Sí | string | Identificador externo del dispositivo. |
os | Sí | string | IOS, ANDROID o WEB. |
fcm_token | Sí | string | Token de Firebase Cloud Messaging. |
created_at | Sí | datetime | Fecha de registro del dispositivo. |
updated_at | Sí | datetime | Última actualización del dispositivo. |
Consentimiento
Solo opt-in de marketing. Los mensajes transaccionales (por ejemplo, un pedido cerca) no requieren este flag; solo necesitan el canal ennotification_preferences. Los mensajes de marketing necesitan el canal y consent.marketing.
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
marketing | boolean | false | Publicidad y promociones en cualquier canal |
Preferencias de notificación
| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
email | boolean | true | Recibir correos |
push | boolean | true | Recibir notificaciones push |
push_token | string | — | Token de notificaciones push. Solo aparece junto con push_token_expires_at. |
push_token_expires_at | datetime | — | Solo aparece junto con push_token. |
Errores
| Estado | Descripción |
|---|---|
401 | Access token ausente o inválido. |
403 | El id no coincide con el id del token. |
404 | No se encontró un cliente con ese id. |