> For the complete documentation index, see [llms.txt](https://qosic.gitbook.io/qospay/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://qosic.gitbook.io/qospay/merchant-api/discovery/operator-products.md).

# operator products

Utilisez cet endpoint pour les paiements de factures basés sur des produits et pour les opérateurs dont les produits représentent des banques ou d’autres destinations.

```http
GET /api/v1/payment/funds-transfer/operator/products?operatorId=ELECTRICITY HTTP/1.1
Host: api.example.com
Authorization: Bearer <access-token>
Accept: application/json
```

```bash
curl --get "https://api.example.com/api/v1/payment/funds-transfer/operator/products" \
  --header "Authorization: Bearer ${QOS_ACCESS_TOKEN}" \
  --header "Accept: application/json" \
  --data-urlencode "operatorId=ELECTRICITY"
```

### Réponse réussie — HTTP 200

```json
{
  "data": [
    {
      "productName": "Prepaid Electricity",
      "description": "Prepaid meter token",
      "productCode": "ELEC_PREPAID",
      "minPrice": "1000",
      "maxPrice": "50000",
      "currency": "NGN",
      "actualPrice": null
    }
  ],
  "message": "Success",
  "success": true,
  "responseCode": "00"
}
```

| Champ         | Signification                                                                                          |
| ------------- | ------------------------------------------------------------------------------------------------------ |
| `productName` | Nom d’affichage. Ne l’envoyez pas comme identifiant du produit.                                        |
| `description` | Description du produit ou de la destination.                                                           |
| `productCode` | Valeur à transmettre comme `productCode` dans les requêtes de validation et d’initiation.              |
| `minPrice`    | Montant minimum autorisé lorsqu’il est renseigné.                                                      |
| `maxPrice`    | Montant maximum autorisé lorsqu’il est renseigné.                                                      |
| `currency`    | Devise du produit. Elle doit correspondre à la devise de la transaction.                               |
| `actualPrice` | Prix fixe obligatoire lorsqu’il est renseigné ; sinon, choisissez un montant dans la plage configurée. |

{% hint style="warning" %}
Les messages HTTP `400` possibles incluent `Operator not found`, `Could not instantiate provider`, `No products found` ainsi que des messages de disponibilité du provider. Rafraîchissez d’abord la liste des opérateurs. Si l’opérateur reste présent dans la liste mais que la découverte des produits échoue de manière répétée, suspendez ce parcours produit.
{% endhint %}
