Gestion des Ordres de Paiement

Vue d'ensemble

Cette section présente l'API de gestion des ordres de paiement, qui constitue le point de départ de tout processus de transaction dans le système. Elle permet la création, la gestion et le suivi des demandes de paiement entre les plateformes marchandes et leurs clients.

Fonctionnalités couvertes

Notre API d'ordres de paiement propose une solution flexible pour :

Création d'ordres

  • Génération d'ordres de paiement standards avec montant fixe
  • Création d'ordres via liens de paiement (paylink) pour un partage facilité
  • Support de montants optionnels pour une flexibilité client
  • Configuration des URLs de redirection (succès/échec)

Gestion des flux de paiement

  • Confirmation des paiements avec validation des identifiants de transaction
  • Récupération des détails d'ordres via slugs publics
  • Intégration avec les plateformes marchandes
  • Support multidevise et notifications personnalisables

Types d'ordres supportés

  • Ordres standards : pour les intégrations directes avec checkout
  • Paylinks : pour le partage de liens de paiement par email, SMS ou réseaux sociaux
  • Support des dates d'expiration configurables

Architecture et workflow

L'API suit un workflow en trois étapes principales :

  1. Création : génération de l'ordre avec ses paramètres (POST /api/v1/order)
  2. Traitement : l'utilisateur effectue le paiement via l'interface générée
  3. Confirmation : validation finale avec les identifiants de transaction (POST /api/v1/order/confirm)

Chaque ordre est identifié par un slug unique et reste accessible publiquement pour consultation des détails et statuts de paiement.

| Action | Endpoint | |---|---| | POST | /api/v1/order | | POST | /api/v1/order/paylink | | POST | /api/v1/order/confirm | | GET | /api/v1/order/by-slug/{slug}|

Creation d'order de paiement

Endpoint: POST /api/v1/order

Crée un ordre de paiement.

Exemple de Requête

{
  "amount": 5000,
  "currency": "USD",
  "reference": "ORD-1001",
  "notifyBy": "EMAIL",
  "successURL": "https://app.com/success",
  "failureURL": "https://app.com/failure"
}

Exemple de Réponse

{
  "message": "Ordre créé",
  "body": {
    "paymentId": "abc123",
    "url": "https://pay.com/abc123"
  }
}

Création d'un ordre de paiement par lien

Endpoint: POST /api/v1/order/paylink

Crée un ordre de paiement par lien avec des articles optionnels.

Exemple de Requête

{
  "amount": 5000,
  "currency": "USD",
  "reference": "ORD-1001",
  "notifyBy": "EMAIL",
  "successURL": "https://app.com/success",
  "failureURL": "https://app.com/failure"
}

Exemple de Réponse

{
  "message": "Ordre créé",
  "body": {
    "paymentId": "abc123",
    "url": "https://pay.com/abc123"
  }
}

Confirmation d'un ordre de paiement

Endpoint: POST /api/v1/order/confirm

Confirme le paiement en utilisant l'identifiant de paiement et l'identifiant de transaction.

Exemple de Requête

{
  "paymentId": "TR558-7654-00432",
  "transactionId": "54556765",
  "platformReference": "TGFR44356"
}

Exemple de Réponse

{
  "message": "success message",
  "body": {}
}

Récupération d'un ordre de paiement par slug

Endpoint: GET /api/v1/order/by-slug/{slug}

Récupère les détails d'un ordre de paiement public à l'aide de son slug.

Paramètres de la requête

  • Orderslug : slug de l'order de paiement

Réponse

{
  "message": "succes message",
  "body": {
    "slug": "3345-00900-6666",
    "status": "PENDING",
    "paymentType": "PAY_LINK",
    "amount": 0,
    "currency": "CFA",
    "langKey": "fr",
    "metaData": "string",
    "expirationDate": "2025-06-01T00:26:53.634Z",
    "paymentLinks": [
      {
        "slug": "3345-00900-6666",
        "url": "example@ingenovatech.com",
        "status": "PENDING",
        "amount": 0
      }
    ],
    "subscribedPaymentMethods": [
      {
        "slug": "3345-00900-6666",
        "url": "example@ingenovatech.com",
        "status": "PENDING",
        "amount": 0
      }
    ],
    "platform": {
      "slug": "4454-6612-9909",
      "name": "louverture",
      "image": "string",
      "reference": "443NNK",
      "url": "example@ingenovatech.com",
      "description": "platform",
      "status": "ACTIVATED",
      "metaData": "string"
    },
    "successURL": "example@ingenovatech.com",
    "failureURL": "example@ingenovatech.com",
    "optionalAmount": true
  }
}