LogoLuckyFastPay Docs

Command Palette

Search for a command to run...

Transaction REST API

L’API Transaction REST permet d’initier des transactions de paiement via les services intégrés (Orange Money (Centrafrique)). L’opérateur est déterminé automatiquement en fonction du numéro du client.

format

En-têtes

Méthode POST
Url de base https://api.luckyfastpay.pro
Chemin /{code-url}/rest
Encodage application/json

En-têtes requis

  • Content-Type: application/json
  • X-Secret: sk_live_xxx
  • X-Callback-MediaType: application/json (optionnel)

À propos de X-Callback-MediaType

Spécifie le format du callback envoyé par LuckyFastPay à la fin de la transaction.

  • `application/json` (par défaut)
  • `application/xml` (optionnel)
  • `text/xml` (optionnel)
Cet en-tête s’applique aux transactions de type `PAYMENT` et `GIVE_CHANGE`.

Paramètres

NomEmplacementTypeObligatoireDescription
code-urlpathstringOuiCode URL marchand
X-SecretheaderstringOuiVotre clé secrète
X-Callback-MediaTypeheaderstringNonFormat de données de l'objet callback

Corps de la requête (JSON)

NomTypeObligatoireDescription
agentstringNonIdentifiant de l'agent
amountnumberOuiMontant de la transaction (>150 XAF)
productstringNonNom du produit
referencestringOuiRéférence unique (max 15 caractères).
servicestringNonService de transaction. Pour cette API, utilisez RESTFUL.
callback_url_codestringNonCode de l’URL de callback (requis pour PAYMENT et GIVE_CHANGE).
customer_account_numberstringNonNuméro du client (20 caractères max)
operation_account_codestringOuiCode du compte d'opération
transaction_typestringOuiType de transaction, par exemple PAYMENT ou GIVE_CHANGE.
owner_chargestringOuiEntité supportant les frais LuckyFastPay : MERCHANT (défaut) ou CUSTOMER
operator_owner_chargestringNonEntité supportant les frais opérateur
free_infostringNonInformation libre
operator_codestringOuiCode opérateur du numéro client à débiter.

Exemples

Cet endpoint traite les opérations de manière asynchrone. Les deux opérations PAYMENT et GIVE_CHANGE partagent le même flux : la réponse immédiate n’est qu’un accusé de prise en compte (PENDING), et le statut définitif est livré via le callback décrit ci-dessous.

Exemple de requête (PAYMENT)

Langage
curl --location 'https://api.luckyfastpay.pro/XXXXXXXXXX/rest' \
--header 'X-Secret: sk_live_xxx' \
--header 'X-Callback-MediaType: application/json' \
--header 'Content-Type: application/json' \
--data {
  "agent": "AGENT-1",
  "amount": 600,
  "reference": "5632907",
  "service": "RESTFUL",
  "callback_url_code": "HPPPY",
  "customer_account_number": "7704100006",
  "operation_account_code": "ACC_6756EE73253F6",
  "transaction_type": "PAYMENT",
  "owner_charge": "MERCHANT",
  "operator_owner_charge": "MERCHANT",
  "operator_code": "ORANGE_RCA"
}

Exemple de requête (GIVE_CHANGE)

Langage
curl --location 'https://api.luckyfastpay.pro/XXXXXXXXXX/rest' \
--header 'X-Secret: sk_live_xxx' \
--header 'X-Callback-MediaType: application/json' \
--header 'Content-Type: application/json' \
--data {
  "agent": "AGENT-1",
  "amount": 200,
  "reference": "REF181127519",
  "service": "RESTFUL",
  "callback_url_code": "HPPPY",
  "customer_account_number": "7704100006",
  "operation_account_code": "ACC_672CD66E148BD",
  "transaction_type": "GIVE_CHANGE",
  "owner_charge": "MERCHANT",
  "operator_owner_charge": "MERCHANT",
  "operator_code": "ORANGE_RCA"
}

Exemple de réponse (PENDING)

{
  "status" "PENDING",
  "status_code" "200",
  "operator_code" "ORANGE_RCA",
  "transaction_id" "PAY240420250001",
  "reference" "5632907",
  "operation_account_code" "ACC_6756EE73253F6",
  "message" "Votre transaction 5632907 a été initiée avec succès et est en cours de traitement."
}

Exemple de réponse (FAILED)

{
  "status" "FAILED",
  "status_code" "400",
  "operator_code" "ORANGE_RCA",
  "transaction_id" "PAY240420250001",
  "reference" "5632907",
  "operation_account_code" "ACC_6756EE73253F6",
  "message" "Votre transaction 5632907 a échoué."
}

À propos du callback

Toutes les opérations de cet endpoint — PAYMENT et GIVE_CHANGE — sont asynchrones. Une fois la transaction finalisée (SUCCESS ou FAILED), LuckyFastPay envoie une unique notification (callback) à l’URL configurée. Ne validez jamais une opération sur la réponse initiale PENDING — attendez toujours ce callback.

Exemple de callback

{
  "transaction_id" "PAY240420250001",
  "reference" "REF123456",
  "status" "SUCCESS",
  "amount" 200,
  "customer_account_number" "7704100006",
  "fees" 5,
  "total_amount" 205,
  "owner_charge" "CUSTOMER",
  "free_info" "Paiement de test",
  "transaction_type" "PAYMENT",
  "status_code" "200",
  "operator_code" "ORANGE_RCA",
  "operation_account_code" "ACC_6756EE73253F6",
  "terminal_id" "12345",
  "terminal_label" "Terminal principal",
  "operator_owner_charge" "MERCHANT",
  "operator_fees" 3,
  "amount_credited" 200
}
Le payload identifie l’opération via transaction_type. Un PAYMENT porte amount_credited (crédité sur votre compte d’opération) ; un GIVE_CHANGE porte à la place amount_debited (débité de votre compte d’opération).

Pourquoi répondre au callback ?

La réponse au callback permet à LuckyFastPay de :

  • S’assurer que vous avez bien reçu la notification
  • Considérer la livraison du callback comme réussie

Réponse attendue (accusé de réception)

Lors de la réception d'un callback, pour confirmer que vous l'avez bien reçu, vous devez répondre avec `response_code` and `transaction_id`. Cette réponse au callback est obligatoire en environnement de test afin de valider les tests effectués.

{
  "response_code" 200,
  "transaction_id" "PAY240420250001"
}