Aller au contenu
NATI SOLUTIONS , accueil

Developers

Pensé pour les développeurs, dès la première requête.

API REST versionnée, erreurs explicites, idempotence, webhooks signés, sandbox, API Explorer et exemples prêts à copier.

Quick Start en 3 minutes

Créez un compte, récupérez une clé sandbox et envoyez votre premier événement.

Idempotence partout

Idempotency-Key sur tous les POST : une coupure réseau ne double jamais une action.

Webhooks signés

HMAC-SHA256, horodatage, anti-rejeu, relances exponentielles, identifiants de dédoublonnage.

Observabilité

request_id, trace_id, correlation_id et timeline complète pour chaque événement.

Exemples multi-langages

cURL, PHP, Laravel, JavaScript, Node.js, Python.

// Laravel — envoyer un événement
Http::withToken(config('services.nati.secret'))
    ->withHeaders(['Idempotency-Key' => $payment->id])
    ->post('https://api.nati.bot/v1/events', [
        'type' => 'withdrawal.requested',
        'id' => $withdrawal->id,
        'customer' => ['external_id' => $user->id, 'email' => $user->email],
        'data' => ['amount' => 150000, 'currency' => 'XOF',
                   'transaction_id' => $withdrawal->reference],
        'metadata' => ['ip' => request()->ip(), 'device_id' => $deviceId],
    ]);

// Webhook reçu si vos règles le demandent :
// { "type": "hold.requested", "data": { "hold": { "id": "hold_…",
//   "transaction_id": "…", "status": "requested" } } }
// Votre système confirme : POST /v1/holds/{id}/confirm

Cycle de vie de l'API

États : ACTIVE → DEPRECATED → SUNSET_SCHEDULED → REMOVED. Dans /v1, seuls les changements additifs sont permis ; un retrait passe par une dépréciation annoncée. Une opération dépréciée continue de fonctionner à l'identique et ses réponses portent Deprecation: @<secondes Unix> (RFC 9745) et Link: <…>; rel="deprecation" ; Sunset (RFC 8594) n'apparaît que lorsqu'une date d'arrêt a été décidée. Durée de la fenêtre de migration : à décider par le propriétaire.

Opérations HTTP

Aucune opération de l'API v1 n'est dépréciée, planifiée pour arrêt ou retirée.

Valeurs de contrat

Valeurs de contrat dépréciées (pas d'en-tête HTTP : ce ne sont pas des URI)
ValeurContratÉtatDepuisArrêtRemplacement
verification.failed Type d'événement webhook Dépréciée 2026-10-06 non décidée verification.review_required, verification.additional_data_required, verification.expired, verification.cancelled

verification.failed : Nati Verify n'a pas d'échec terminal automatique : une issue défavorable devient une revue humaine ou une action demandée au client. Toujours accepté dans un abonnement v1, jamais émis ; retrait possible uniquement dans /v2.

SDK 1.8 : les deux SDK signalent l'en-tête Deprecation reçu (rappel onDeprecation, avertissement non bloquant) et les types de webhook dépréciés (DEPRECATED_WEBHOOK_TYPES, Nati\Webhook::DEPRECATED_TYPES).