> ## Documentation Index
> Fetch the complete documentation index at: https://docs.i-pay.money/llms.txt
> Use this file to discover all available pages before exploring further.

# Vue d'ensemble

> Contrats partenaires et intégrations à accès restreint, sur demande.

Cette rubrique documente des contrats `/api/v1` **réservés** : parcours carte historique, paiements dynamiques et endpoints partenaires. Ils ne sont pas activés par défaut sur une clé marchand standard — contactez `support@i-pay.money` pour vérifier votre éligibilité et faire activer l'accès avant d'intégrer l'un de ces parcours.

N'utilisez ces contrats que si iMoney Encaissement vous a explicitement confirmé l'accès : le comportement décrit ici ne s'applique pas à une intégration marchand standard, qui doit utiliser la [Référence API](/api-reference/transactions) publique.

> **Note :** seules les routes `/api/v1` sont couvertes par cette rubrique. D'éventuelles routes `v2` existent dans le code mais ne sont pas opérationnelles pour une intégration tierce — elles ne font pas partie de l'offre publique ni de cette documentation.

## Parcours carte historique

Trois endpoints couvrent un parcours de paiement par carte bancaire avec challenge 3D Secure, distinct du contrat mobile money standard.

| Méthode | Endpoint                                   | Usage                                                                                                               |
| ------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
| `POST`  | `/api/v1/request_payment_page`             | Parcours carte historique. Préférez le SDK ou une page hébergée, sauf activation explicite par iMoney Encaissement. |
| `POST`  | `/api/v1/payments/bank_card_payment`       | Endpoint carte réservé aux intégrations autorisées et conformes PCI DSS. Ne journalisez jamais `pan` ou `cvv`.      |
| `POST`  | `/api/v1/payments/send_device_information` | Envoie les informations device/navigateur requises par le partenaire bancaire pour le challenge 3DS.                |

Requête `bank_card_payment` (numéro de carte de test, jamais une donnée réelle) :

```json theme={null}
{
  "amount": 1000,
  "country": "NE",
  "currency": "XOF",
  "msisdn": "22796123456",
  "transaction_id": "ORDER-1001",
  "customer_name": "Client Test",
  "pan": "4111111111111111",
  "exp": "12/29",
  "cvv": "123"
}
```

Réponse de challenge 3DS renvoyée après soumission des informations device :

```json theme={null}
{
  "reference": "PAY-REFERENCE",
  "public_reference": "PUBLIC-REFERENCE",
  "state": "AWAIT_3DS",
  "acs_url": "https://<acs-url>",
  "base64_encoded_cqeq": "<payload>",
  "term_url_get": "https://<domaine>/api/sdk/v1/emv_challenges",
  "notification_url": "https://<domaine>/api/sdk/v1/emv_challenges?reference=PAY-REFERENCE"
}
```

Le challenge se conclut sur les deux endpoints EMV suivants :

| Méthode | Endpoint                 | Usage                                                                                                                   |
| ------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| `GET`   | `/api/v1/emv_challenges` | Affiche le formulaire challenge. Paramètres requis : `acs_url`, `base64_encoded_cqeq`, `notification_url`, `reference`. |
| `POST`  | `/api/v1/emv_challenges` | Soumet le résultat `cres`. `PURCHASED` fait passer le paiement à `succeeded`, `FAILED` le fait passer à `failed`.       |

```json theme={null}
{
  "reference": "PAY-REFERENCE",
  "cres": "<challenge-result>"
}
```

Voir [Moyens de paiement (accès restreint)](/integrations-specialisees/methode-de-paiements) pour le détail des moyens de paiement carte concernés.

## Paiements dynamiques partenaires

Contrat réservé aux partenaires autorisés. La création et l'expiration exigent la clé marchand et un `Secret-Hash` fournisseur ; la consultation exige les en-têtes fournisseur.

| Méthode | Endpoint                                      | Usage                                                                                      |
| ------- | --------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `POST`  | `/api/v1/dynamic_payments`                    | Crée une référence de paiement dynamique. Authentification marchand et partenaire requise. |
| `GET`   | `/api/v1/dynamic_payments/{reference}`        | Lit une référence de paiement dynamique.                                                   |
| `POST`  | `/api/v1/dynamic_payments/{reference}/expire` | Expire une référence encore ouverte et sans paiement existant.                             |

Création :

```json theme={null}
{
  "title": "Invoice 1001",
  "amount": 1000,
  "payment_type": "one_time"
}
```

Lecture :

```json theme={null}
{
  "reference": "DYNAMIC-PUBLIC-REFERENCE",
  "title": "Invoice 1001",
  "amount": 1000,
  "payment_type": "one_time",
  "status": "open",
  "collected_amount": 0,
  "remaining_amount": 1000
}
```

| Statut | Message                                   |
| ------ | ----------------------------------------- |
| `400`  | Dynamic Payment Already Closed            |
| `400`  | Dynamic Payment Already Expired           |
| `400`  | Dynamic Payment Has Existing Payments     |
| `404`  | Payment reference not found               |
| `404`  | Payment Not Found                         |
| `404`  | Invalid Public Reference For This Gateway |

## Paiements partenaires par référence

Endpoints réservés aux fournisseurs configurés. Ils ne doivent pas être utilisés avec une simple clé marchand.

| Méthode | Endpoint                                     | Usage                                                   |
| ------- | -------------------------------------------- | ------------------------------------------------------- |
| `GET`   | `/api/v1/boa_ne_payments/{reference}`        | Lit une référence partenaire BOA NE.                    |
| `GET`   | `/api/v1/amana_ne_payments/{reference}`      | Lit une référence partenaire Amana NE.                  |
| `GET`   | `/api/v1/alizza_imoney_payments/{reference}` | Lit une référence partenaire Alizza iMoney.             |
| `POST`  | `/api/v1/boa_ne_payments`                    | Crée un paiement partenaire sur une référence publique. |

```json theme={null}
{
  "reference": "PUBLIC-REFERENCE",
  "amount": 1000,
  "country": "NE",
  "currency": "XOF",
  "transaction_id": "PROVIDER-TRANSACTION",
  "msisdn": "22796123456",
  "customer_name": "Client Test"
}
```

| Statut | Message                                                               |
| ------ | --------------------------------------------------------------------- |
| `402`  | Payment Closed                                                        |
| `402`  | Payment Expired                                                       |
| `402`  | Amount Not Valid                                                      |
| `403`  | Contact le support: [support@i-pay.money](mailto:support@i-pay.money) |
| `404`  | Gateway not supported                                                 |
| `404`  | Invalid Public Reference                                              |
| `404`  | Payment Not Exists                                                    |

## Marchands partenaires

Endpoints partenaires `/api/v1/merchants` pour consulter et payer une référence marchand. Les types de paiement autorisés pour ce contrat sont `boa_ne`, `alizza`, `nita_ne` et `ussd`.

| Méthode | Endpoint                        | Usage                                                        |
| ------- | ------------------------------- | ------------------------------------------------------------ |
| `GET`   | `/api/v1/merchants/{reference}` | Lit la référence publique du marchand.                       |
| `POST`  | `/api/v1/merchants`             | Crée un paiement marchand avec référence, montant et msisdn. |

```json theme={null}
{
  "reference": "PUBLIC-REFERENCE",
  "amount": 1000,
  "msisdn": "22796123456"
}
```
