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

# Couverture des APIs

> La liste complète des endpoints GIMgar Sud intégrés dans la version actuelle (v0.3.0) du SDK Flutter.

Cette page recense les endpoints intégrés dans le SDK Flutter GimPay, version **0.3.0**, avec leur méthode d'accès côté façade `Gimpay`. Référence : collection Postman « Registre des APIs (GIM Gar Sud) v1.0.9 ».

<Info>
  Le SDK couvre **47 endpoints**, y compris des endpoints de contrat **v2** et de gestion des **documents d'identité** qui ne figurent pas encore dans la [référence API principale](/api-reference/introduction) de cette documentation, construite à partir de la spécification technique v1.1. Ces domaines seront réconciliés dans une prochaine mise à jour de la référence API.
</Info>

## Authentification

| Méthode | Endpoint             | Façade                                  |
| ------- | -------------------- | --------------------------------------- |
| POST    | `/api/v1/auth/token` | interne (automatique + refresh sur 401) |

## Wallets (instruments de paiement)

| Méthode | Endpoint                                          | Façade                                                                           |
| ------- | ------------------------------------------------- | -------------------------------------------------------------------------------- |
| POST    | `/api/v1/wallets/card`                            | `Gimpay.enrollCard`                                                              |
| POST    | `/api/v1/wallets/bank-account`                    | `Gimpay.enrollAccount`                                                           |
| POST    | `/api/v1/wallets/mobile-wallet`                   | `Gimpay.enrollMobileWallet`                                                      |
| PUT     | `/api/v1/wallets/{referenceWallet}/lock`          | `Gimpay.lockWallet`                                                              |
| PUT     | `/api/v1/wallets/{referenceWallet}/unlock`        | `Gimpay.unlockWallet`                                                            |
| PUT     | `/api/v1/wallets/{referenceWallet}/unenroll`      | `Gimpay.unenrollWallet`                                                          |
| GET     | `/api/v1/wallets/{referenceWallet}/balance`       | `Gimpay.getBalance` (body = `double`)                                            |
| GET     | `/api/v1/wallets/{referenceWallet}/movements`     | `Gimpay.getMovements`                                                            |
| GET     | `/api/v1/wallets?indicatif=&phone=`               | `Gimpay.getWalletsByPhone`                                                       |
| GET     | `/api/v1/wallets/{referenceWallet}/operations`    | `Gimpay.getWalletOperations`                                                     |
| GET     | `/api/v1/wallets/{referenceWallet}/authorization` | `Gimpay.checkWalletAuthorization` (body = `bool`)                                |
| GET     | `/api/v1/wallets/type`                            | `Gimpay.getWalletTypes` (body = liste de codes → `List<TypeInstrumentPaiement>`) |

## Opérations

| Méthode | Endpoint                                         | Façade                                   |
| ------- | ------------------------------------------------ | ---------------------------------------- |
| POST    | `/api/v1/operations`                             | `Gimpay.executeOperation`                |
| PUT     | `/api/v1/operations/{referenceOperation}/cancel` | `Gimpay.cancelOperation` (body = `null`) |

## Usagers

| Méthode | Endpoint                                                               | Façade                                             |
| ------- | ---------------------------------------------------------------------- | -------------------------------------------------- |
| POST    | `/api/v1/users`                                                        | `Gimpay.enrollClient`                              |
| GET     | `/api/v1/users/{referenceUsager}/wallets`                              | `Gimpay.getUserWallets`                            |
| GET     | `/api/v1/users/{referenceUsager}/operations`                           | `Gimpay.getUserOperations`                         |
| GET     | `/api/v1/users/{referenceUsager}/authorization`                        | `Gimpay.checkUserAuthorization` (body = `bool`)    |
| GET     | `/api/v1/users/{referenceUsager}/mmps`                                 | `Gimpay.getFavoriteMmps`                           |
| POST    | `/api/v1/users/{referenceUsager}/mmps/{referenceMmp}`                  | `Gimpay.addFavoriteMmp` (body = `null`)            |
| DELETE  | `/api/v1/users/{referenceUsager}/mmps/{referenceMmp}`                  | `Gimpay.removeFavoriteMmp` (body = `null`)         |
| GET     | `/api/v1/users/{referenceUsager}/beneficiaries`                        | `Gimpay.getBeneficiaries`                          |
| GET     | `/api/v1/users/{referenceUsager}/beneficiaries/{referenceBeneficiary}` | `Gimpay.getBeneficiary` (endpoint hors collection) |
| POST    | `/api/v1/users/{referenceUsager}/beneficiaries`                        | `Gimpay.addBeneficiary` (body = `null`)            |
| DELETE  | `/api/v1/users/{referenceUsager}/beneficiaries/{referenceBeneficiary}` | `Gimpay.removeBeneficiary` (body = `null`)         |

## OTP & vérifications

| Méthode | Endpoint                                         | Façade                                                                                                 |
| ------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
| POST    | `/api/v1/otp/debit`                              | `Gimpay.generateDebitOtp` (body = `bool`)                                                              |
| POST    | `/api/v1/otp/confirm`                            | `Gimpay.confirmOtp` (body = `bool` ; 5 champs obligatoires, `numero` 8-10 caractères, `indicatif` 1-3) |
| POST    | `/api/v1/check-existence`                        | `Gimpay.checkWalletExistence` (body = `bool` ; les 4 champs sont obligatoires)                         |
| GET     | `/api/v1/terminals/{serialNumber}/authorization` | `Gimpay.checkTerminalAuthorization` (body = `bool`)                                                    |

## Référentiels (pays, MMP, services, contributeurs)

| Méthode | Endpoint                                                                   | Façade                                                                                          |
| ------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| GET     | `/api/v1/countries`                                                        | `Gimpay.countries`                                                                              |
| GET     | `/api/v2/countries/{codeIso}`                                              | `Gimpay.getCountry` (contrat **v2**, même structure que la liste)                               |
| GET     | `/api/v1/mmps/{refMmp}/serviceTypes/{refServiceType}/services`             | `Gimpay.getMmpServiceByType` (retourne **un** `Service` ; les 2 query params sont obligatoires) |
| GET     | `/api/v1/contributors/{ref}/serviceTypes/{refServiceType}/contributors`    | `Gimpay.getContributorsByServiceType` (retourne `List<ContributorSummary>`)                     |
| GET     | `/api/v1/contributors?typeInstrument=&codeISO=`                            | `Gimpay.getContributors`                                                                        |
| GET     | `/api/v1/contributors/{referenceContributor}/wallets/{identifiant}`        | `Gimpay.getWalletDetails`                                                                       |
| GET     | `/api/v1/countries/{codeIso}/mmps`                                         | `Gimpay.getMmpsByCountry`                                                                       |
| GET     | `/api/v1/countries/{codeIso}/mmps/{referenceMmp}/contributors`             | `Gimpay.getContributorsByCountryAndMmp`                                                         |
| GET     | `/api/v1/mmps/{referenceMmp}/services`                                     | `Gimpay.getMmpServices`                                                                         |
| GET     | `/api/v1/mmps/{referenceMmp}/contributors/{referenceContributor}/services` | `Gimpay.getContributorServices`                                                                 |
| GET     | `/api/v1/services/{referenceService}/fees?amount=`                         | `Gimpay.calculateFees`                                                                          |
| GET     | `/api/v2/contributors/{referenceContributor}/transparent-mmp`              | `Gimpay.getTransparentMmp` (le contrat **v2** remplace la v1)                                   |

## Documents d'identité

| Méthode | Endpoint                                    | Façade                                                                                              |
| ------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| POST    | `/api/v1/users/{referenceUsager}/documents` | `Gimpay.createDocument` (recto obligatoire, verso optionnel, aucun contrôle de format côté backend) |
| PUT     | `/api/v1/documents`                         | `Gimpay.updateDocument` (images non modifiables)                                                    |
| PUT     | `/api/v1/documents/{reference}/unenroll`    | `Gimpay.unenrollDocument` (body = `null`)                                                           |
| GET     | `/api/v1/users/{referenceUsager}/documents` | `Gimpay.getUserDocuments`                                                                           |
| GET     | `/api/v1/documents/type?country=`           | `Gimpay.getDocumentTypes`                                                                           |
| GET     | `/api/v1/documents/{reference}`             | `Gimpay.getDocument`                                                                                |
| GET     | `/api/v1/documents/{reference}/base64`      | `Gimpay.getDocumentBase64` (body = chaîne brute)                                                    |

## Exclus du périmètre

| Méthode | Endpoint                                                     | Raison                                                  |
| ------- | ------------------------------------------------------------ | ------------------------------------------------------- |
| GET     | « New Request », « conditions-of-use », « general consents » | Requêtes orphelines sans URL dans la collection source. |

## Étapes suivantes

<CardGroup cols={2}>
  <Card title="Glossaire" icon="book" href="/glossary/enumerations">
    Le détail des objets du domaine et de toutes les énumérations du contrat.
  </Card>

  <Card title="Démarrage rapide" icon="rocket" href="/sdks/quickstart">
    Suivez un parcours d'intégration type.
  </Card>

  <Card title="Gestion des erreurs" icon="triangle-exclamation" href="/sdks/error-handling">
    Exceptions typées et bonnes pratiques.
  </Card>
</CardGroup>
