POST
/
api
/
v1
/
transaction
/
init
Initialiser une transaction
curl --request POST \
  --url https://api-m.dexchange.sn/api/v1/transaction/init \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "externalTransactionId": "<string>",
  "serviceCode": "<string>",
  "amount": 500100,
  "number": "<string>",
  "callBackURL": "<string>",
  "successUrl": "<string>",
  "failureUrl": "<string>"
}'
{
  "message": "<string>",
  "transaction": {
    "success": true,
    "transactionId": "<string>",
    "externalTransactionId": "<string>",
    "transactionType": "<string>",
    "amount": 123,
    "transactionFee": 123,
    "number": "<string>",
    "callBackURL": "<string>",
    "successUrl": "<string>",
    "failureUrl": "<string>",
    "status": "<string>",
    "cashout_url": "<string>",
    "webhook": "<string>"
  }
}

Initialiser une Transaction

Initialisez une nouvelle transaction de paiement.

Endpoint

POST /api/v1/transaction/init

Headers

NomTypeRequisDescription
AuthorizationstringOuiBearer YOUR_API_KEY
Content-TypestringOuiapplication/json

Corps de la Requête

{
  "externalTransactionId": string,    // Votre référence unique
  "serviceCode": string,              // Code du service
  "amount": number,                   // Montant (200-1,000,000 FCFA)
  "number": string,                   // Numéro de téléphone
  "callBackURL": string,              // URL de notification
  "successUrl": string,               // URL de redirection succès
  "failureUrl": string               // URL de redirection échec
}

Paramètres

ParamètreTypeRequisDescription
externalTransactionIdstringOuiVotre identifiant unique de transaction
serviceCodestringOuiCode du service de paiement
amountnumberOuiMontant en FCFA (min: 200, max: 1,000,000)
numberstringOuiNuméro de téléphone format: ^[0-9]$
callBackURLstringOuiURL pour les notifications webhook
successUrlstringOuiURL de redirection après succès
failureUrlstringOuiURL de redirection après échec

Réponse

Réponse Réussie

{
  "message": "Transaction initiated successfully",
  "success": true,
  "transaction": {
    "transactionId": "TID123456789",
    "serviceName": "Orange Money Senegal",
    "serviceCode": "OM_SN_CASHOUT",
    "ApiTransactionId": "OM789012345",
    "transactionType": "CASHOUT",
    "transactionAmount": 1000,
    "transactionFee": 20,
    "number": "771234567",
    "Status": "PENDING",
    "INITIATED_AT": "2024-03-20T10:30:00Z"
  }
}

Réponse d’Erreur

{
  "message": ["Description de l'erreur"],
  "success": false
}

Codes d’Erreur

Code HTTPDescription
400Paramètres invalides ou montant incorrect
401Clé API invalide
403API en maintenance
409ID de transaction externe déjà utilisé

Validations

  1. Montant
    • Minimum: 200 FCFA
    • Maximum: 1,000,000 FCFA
  2. Numéro de Téléphone
    • Format: 9 chiffres
    • Sans indicatif pays
    • Uniquement des caractères numériques

Exemple de Requête

curl -X POST https://api-m.dexchange.sn/api/v1/transaction/init \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "externalTransactionId": "INV-001",
    "serviceCode": "OM_SN_CASHOUT",
    "amount": 1000,
    "number": "771234567",
    "callBackURL": "https://your-domain.com/callback",
    "successUrl": "https://your-domain.com/success",
    "failureUrl": "https://your-domain.com/failure"
  }'

Webhook de Notification

Lorsque le statut de la transaction change, un webhook est envoyé à l’URL spécifiée dans callBackURL:
{
  "id": "TID123456789",
  "externalTransactionId": "INV-001",
  "transactionType": "CASHOUT",
  "AMOUNT": 1000,
  "FEE": 20,
  "PHONE_NUMBER": "771234567",
  "STATUS": "SUCCESS",
  "CUSTOM_DATA": "{}",
  "COMPLETED_AT": "2024-03-20T10:35:00Z",
  "BALANCE": 50000,
  "PREVIOUS_BALANCE": 51020,
  "CURRENT_BALANCE": 50000
}

Authorizations

Authorization
string
header
required

Entrez votre clé API comme: Bearer <API_KEY>

Body

application/json

Détails de la transaction

The body is of type object.

Response

201
application/json

Transaction initiée avec succès

The response is of type object.