> ## Documentation Index
> Fetch the complete documentation index at: https://easybusinessdocumentation.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Réponses Webhook (IPN)

> Envoie une notification IPN au partenaire après le traitement d’une transaction.

Cette page documente les notifications IPN (Instant Payment Notification) que vous recevrez sur votre webhook.

Description:

* Type: Webhook (callback POST)
* Utilisation: KAYBIC AFRICA envoie automatiquement les mises à jour de statut de transaction à l'URL IPN que vous avez configurée.

## Exemple de réponse Webhook - SUCCESSFUL

```json theme={null}
{
  "transaction_id": "EFB.144358",
  "amount": 1000,
  "benefice": 1000,
  "commission": 0,
  "destination": "0500156008",
  "fee": 0,
  "response": "operation success",
  "error": "",
  "service_id": 14,
  "customer_name": "KAYBIC AFRICA",
  "state": "SUCCESSFUL",
  "custom_data": "custom_data",
  "ipn_url": "",
  "provider_id": null,
  "sms_link": 0,
  "created_at": "2022-10-18T02:38:44.000+00:00",
  "updated_at": "2022-10-18T02:38:44.000+00:00",
  "ipn_state": 0,
  "w_amount_after_transaction": "",
  "p_last_wallet_amount": 11,
  "p_new_wallet_amount": null,
  "p_id": 1,
  "hash": ""
}
```

## Exemple de réponse Webhook - FAILED

```json theme={null}
{
  "transaction_id": "EFB.144359",
  "amount": 2000,
  "benefice": 2000,
  "commission": 0,
  "destination": "0670123456",
  "fee": 0,
  "response": "",
  "error": "message de l'erreur",
  "service_id": 10,
  "customer_name": "KAYBIC AFRICA",
  "state": "FAILED",
  "custom_data": "transaction_ref_123",
  "ipn_url": "",
  "provider_id": null,
  "sms_link": 0,
  "created_at": "2022-10-18T02:38:44.000+00:00",
  "updated_at": "2022-10-18T02:38:44.000+00:00",
  "ipn_state": 0,
  "w_amount_after_transaction": "",
  "p_last_wallet_amount": 11,
  "p_new_wallet_amount": null,
  "p_id": 1,
  "hash": ""
}
```

## Champs importants

* `transaction_id`: Identifiant unique de la transaction
* `state`: Statut final de la transaction (`SUCCESSFUL` ou `FAILED`)
* `response`: Message de réponse en cas de succès
* `error`: Message d'erreur en cas d'échec
* `amount`: Montant de la transaction
* `custom_data`: Données personnalisées que vous avez envoyées lors de l'initiation

## Notes

* ⚠️ **Important:** Vous devez retourner un code HTTP 200 pour confirmer la réception du webhook.
* Si vous ne répondez pas, KAYBIC AFRICA tentera de renvoyer la notification plusieurs fois.
* Les webhooks arrivent généralement dans les secondes suivant le traitement de la transaction.
* Utilisez le champ `custom_data` pour réconcilier les transactions avec vos données internes.

Il n'existe pas de méthode spécifique pour configurer les webhooks, l'IPN est transféré directement dans [la requête pendant l'initialisation de la transaction](/api-reference/endpoint/transaction).


## OpenAPI

````yaml POST /votre_url_webhook
openapi: 3.1.0
info:
  title: API MARCHAND KAYBIC AFRICA
  description: |-
    Collection pour l'API KAYBIC AFRICA  API V1

    Documentation: https://documenter.getpostman.com/view/23936159/2s84DoT3w1

    BASE_URL: https://proxy-airtime.easytransfert.app/api_v1/transaction

    **Prérequis:**
    - Clé API valide
    - Pour Cashout: au moins un wallet opérateur configuré
    - Pour Cashin: suffisamment de fonds sur le compte partenaire
  version: 1.0.0
servers:
  - url: https://proxy-airtime.easytransfert.app/api_v1/transaction
security: []
paths:
  /votre_url_webhook:
    post:
      summary: Envoi de la réponse du webhook
      description: >-
        Envoie une notification IPN au partenaire après le traitement d’une
        transaction.
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: object
              properties:
                transaction_id:
                  type: string
                  example: EFB.144358
                amount:
                  type: number
                  example: 1000
                benefice:
                  type: number
                  example: 1000
                commission:
                  type: number
                  example: 0
                destination:
                  type: string
                  example: '0500156008'
                fee:
                  type: number
                  example: 0
                response:
                  type: string
                  example: operation success
                error:
                  type: string
                  example: message de l'erreur (si transaction Echec)
                service_id:
                  type: number
                  example: 14
                customer_name:
                  type: string
                  example: KAYBIC AFRICA
                state:
                  type: string
                  example: FAILED
                custom_data:
                  type: string
                  example: custom_data
                ipn_url:
                  type: string
                  example: ''
                provider_id:
                  type: 'null'
                  example: null
                sms_link:
                  type: number
                  example: 0
                created_at:
                  type: string
                  example: '2022-10-18T02:38:44.000+00:00'
                updated_at:
                  type: string
                  example: '2022-10-18T02:38:44.000+00:00'
                ipn_state:
                  type: number
                  example: 0
                w_amount_after_transaction:
                  type: string
                  example: ''
                p_last_wallet_amount:
                  type: number
                  example: 11
                p_new_wallet_amount:
                  type: 'null'
                  example: null
                p_id:
                  type: number
                  example: 1
                hash:
                  type: string
                  example: ''

````