Skip to main content
Ce mode est utilisé exclusivement lorsque la Banque est techniquement incapable d’émettre des appels sortants (Callback Push).

A. Principe général

  • Le Connecteur initie les requêtes
  • La Banque reste source de vérité du statut
  • Le Polling Inverse :
    • NE REMPLACE PAS le Callback Push
    • N’EST UTILISÉ QUE comme mécanisme de secours
  • Le Polling Inverse s’applique **uniquement aux ordres en statut **PENDING ou push async

B. Endpoint de requête de statut (côté Banque)

Endpoint

curl -X GET /payment-orders/{orderId}/status

Authentification et sécurité

La requête DOIT être protégée par :
  • mTLS obligatoire
  • Authentification applicative obligatoire :
    • OAuth 2.0 (Bearer ou DPoP)
    • ou API Key selon le contrat

En-têtes requis

En-têteObligatoireDescription
X-TimestampOuiHorodatage ISO-8601 UTC
X-NonceOuiProtection anti-replay
X-SignatureOuiSignature cryptographique du Connecteur
AuthorizationOuiBearer / DPoP / X-API-Key
X-Client-IdOuiIdentifiant du Connecteur

Paramètre de chemin

ParamètreTypeDescription
orderIdStringIdentifiant métier unique de l’ordre

Exemple

curl -X GET /payment-orders/PAY-2025-0001/status

C. Comportement attendu du Connecteur (client)

Fréquence de polling

Le Connecteur DOIT implémenter une stratégie de polling adaptative :
  • fréquence initiale courte (ex : 30s – 1min)
  • intervalle progressif (backoff exponentiel)
  • plafond maximal configurable (ex : 10–15 minutes)

Règles de sécurité

  • Chaque requête DOIT être signée via X-Signature
  • La signature DOIT couvrir :
    • la méthode HTTP
    • l’URI
    • les paramètres
    • les en-têtes critiques

Condition d’arrêt (CRITIQUE)

Le polling inverse s’arrête uniquement lorsque la Banque retourne un statut final.
Statuts finaux :
  • SUCCESS
  • FAILED

D. Format JSON de la réponse (côté Banque)

La Banque retourne une enveloppe JSON standard contenant un seul objet de mise à jour de statut.

Réponse – 200 OK

{
  "reference": "PAY-2025-0001",
  "bank_reference": "BNK-778899",
  "status": "PENDING | SUCCESS | FAILED",
  "reasonCode": "BUS_INSUFFICIENT_FUNDS",
  "reasonMessage": "Insufficient balance on debtor account.",
  "processed_at": "2025-11-19T07:30:00Z"
}

Règles associées

  • reference DOIT correspondre à l’ordre interrogé
  • reasonCode et reasonMessage sont :
    • **OBLIGATOIRES si **status = FAILED
  • processed_at est la date de traitement bancaire

E. Codes HTTP et comportements

Code HTTPSignificationAction du Connecteur
200 OKStatut disponibleMettre à jour l’état local
404 Not FoundOrdre inconnuArrêter le polling + alerte
429 Too Many RequestsLimite atteinteAppliquer backoff
4xx / 5xxErreur techniqueRetry selon stratégie

F. Exemple de requête – Polling inverse (Mintlify)

cURL

curl -X GET "https://bank.example.com/payment-orders/PAY-2025-0001/status" \
  -H "Authorization: Bearer <access_token>" \
  -H "X-Client-Id: CONNECTOR_X" \
  -H "X-Timestamp: 2025-11-19T07:30:00Z" \
  -H "X-Nonce: 550e8400-e29b-41d4-a716-446655440000" \
  -H "X-Signature: <signature>"