Aller au contenu

Vérification du téléphone du payeur

L’API d’identité est séparée de l’API marchande. Le contrat payer-openapi.json et le SDK TypeScript generated/payer-typescript couvrent uniquement la vérification synthétique du téléphone. Adresse locale : http://127.0.0.1:18190, sur votre machine seulement, car le bac à sable hébergé ne fait pas encore tourner l’API payeur. Aucun SMS réel n’est envoyé et aucun accès au compte émetteur n’est accordé.

Créez une demande avec POST /v1/payer/phone-challenges, une clé UUID Idempotency-Key, le numéro synthétique configuré, la clé publique P-256 et la langue fr, ln, sw ou en. La réponse affiche le numéro masqué, une expiration de cinq minutes et les octets exacts à signer dans signing_bytes (base64url sans padding). Ne journalisez jamais numéro complet, code, signature ou jeton.

Signez ces octets avec SHA256withECDSA et envoyez le code reçu par le fournisseur de test privé et la signature DER à POST /v1/payer/phone-challenges/{id}/verify. La réussite fournit un jeton de préparation à l’inscription, lié à l’appareil, valable deux minutes. Ce jeton n’est pas une session Futa et aucun endpoint de consommation n’est disponible à ce stade.

Conservez le corps et la clé d’idempotence après une réponse réseau incertaine. Une répétition exacte retrouve la réponse initiale sans nouveau code, nouvelle tentative ou prolongation. Une clé réutilisée avec un autre corps renvoie un conflit. La réponse de création reste un historique de création ; vérifiez toujours son expiration. Une nouvelle demande autorisée remplace le code précédent. Aucun renvoi automatique.