Aller au contenu

Configuration

Prop Obligatoire Remarques
publicKey oui votre clé pk_
apiUrl oui https://hub.stablezact.com
isOpen / onClose oui vous contrôlez l’affichage
config oui le paiement lui-même, voir ci-dessous
onSuccess oui se déclenche à l’envoi, pas à la confirmation
onError recommandé appelé avec un message en cas d’échec
theme non light ou dark
config={{
amount: 49.99,
currency: 'USDC', // USDC or USDT
customerEmail: 'customer@example.com',
callbackUrl: 'https://yourstore.com/webhooks/stablezact',
orderId: 'ORD-1234',
metadata: { basket: 'b-99', channel: 'web' },
}}

currency désigne le stablecoin dans lequel le client paie, et non une monnaie fiat, et amount est libellé dans ce token.

Utilisez USDC ou USDT. Ce sont les deux seuls tokens configurés, tous réseaux confondus. DAI et BUSD passent la validation initiale mais échouent ensuite, car aucun réseau ne les prend en charge :

{ "error": "Currency DAI is not supported on the base network" }

Les codes de monnaie fiat sont rejetés :

{
"success": false,
"error": "Validation failed",
"message": "Unsupported currency: GBP"
}

Si vos prix sont en monnaie fiat, convertissez-les avant de créer le paiement. GET /currency/rates renvoie les taux utilisés ailleurs dans le système.

Votre propre référence pour l’achat. Placez-la au niveau supérieur, pas dans metadata : un orderId au niveau supérieur sert aussi à reconnaître une nouvelle tentative, de sorte qu’une requête répétée crée un seul paiement au lieu de deux. Un orderId glissé dans metadata est enregistré, mais il ne sert à rien pour cela. Consultez Réessayer en toute sécurité.

Du JSON arbitraire, renvoyé à chaque lecture du paiement et inclus dans les webhooks. Utilisez-le pour tout ce que vous souhaitez transmettre d’autre. Il est ignoré lorsqu’il s’agit de déterminer si une requête est une nouvelle tentative, et c’est pourquoi la référence de commande a sa place dans orderId plutôt qu’ici.

L’adresse à laquelle les webhooks sont livrés pour ce paiement. Définissez-la pour chaque paiement plutôt que de manière globale ; consultez Webhooks.

Les chaînes sur lesquelles un client peut payer sont déterminées par les wallets de règlement configurés sur votre compte marchand, et non par quoi que ce soit dans config. Une chaîne sans wallet n’est pas proposée, et la création directe d’un paiement sur une telle chaîne est rejetée :

{
"error": "You haven't set up a wallet address for the Polygon network",
"message": "Please configure a Polygon-specific wallet in your merchant settings before accepting payments on this network.",
"network": "polygon"
}