Crear un cliente
POST /v1/clients registra a un cliente en el programa de fidelidad y devuelve el enlace de su tarjeta, para enviárselo por SMS o correo.
/v1/clientsRegistra a un cliente, como si hubiera escaneado el cartel, y devuelve el objeto cliente con lien_carte: la página donde añade su tarjeta a Apple Wallet o Google Wallet. Se ponen los sellos de bienvenida del comercio, como en el registro.
Cuerpo (JSON)
+33612345678). Si no, 400 telephone_invalide.true) cuando el comercio exige sus condiciones (conditions_exigees de GET /v1/commerce); si no, 422 conditions_requises.Atención : esta ruta no elimina duplicados: si la llamas dos veces, crea dos clientes. Busca primero con GET /v1/clients, o pasa directamente por POST /v1/passages con creer_si_absent: true, que solo crea el cliente si no existe.
El cliente creado por la API nunca queda suscrito a los SMS de ofertas: no ha recibido la información.
Ejemplo
curl https://app.stampywallet.com/v1/clients \
-H "Authorization: Bearer sw_live_votre_cle" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: inscription-0412" \
-d '{"prenom": "Léa", "telephone": "+33612345678"}'const r = await fetch('https://app.stampywallet.com/v1/clients', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.STAMPY_CLE}`,
'Content-Type': 'application/json',
'Idempotency-Key': 'inscription-0412',
},
body: JSON.stringify({ prenom: 'Léa', telephone: '+33612345678' }),
});
const client = await r.json();
console.log(client.lien_carte);import os, requests
r = requests.post(
"https://app.stampywallet.com/v1/clients",
headers={"Authorization": f"Bearer {os.environ['STAMPY_CLE']}",
"Idempotency-Key": "inscription-0412"},
json={"prenom": "Léa", "telephone": "+33612345678"},
)
lien = r.json()["lien_carte"]Respuesta
201 Created y el objeto cliente, por ejemplo:
{
"id": "c2a91f3e-7d40-4b8a-a3c5-91e0d6f4b2c7",
"prenom": "Léa",
"nom": null,
"telephone": "+33612345678",
"email": null,
"carte": "X7k2pQ9mLw",
"lien_carte": "https://stampywallet.com/c/X7k2pQ9mLw",
"cree_le": "2026-10-25T10:41:52.120Z",
"etat": { "mode": "tampons", "tampons": 1, "points": null, "objectif": 10, "restants": 9,
"prochaine_recompense": { "seuil": 10, "libelle": "Una baguette tradicional gratis" },
"recompenses_disponibles": [], "recompenses_obtenues": 0,
"dernier_passage": null, "premium": null }
}Nota : envía lien_carte al cliente por el canal que prefieras: StampyWallet no le escribe en este paso.
Actualizado el