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

# Orange Money

> Orange Money Webpay — sandbox api.orange.com

<div style={{ display: "inline-block", width: "1rem", height: "1rem", background: "#FF6600", borderRadius: "2px", marginRight: "0.5rem", verticalAlign: "middle" }} />

**Orange Money** — Webpay (paiement par redirection web).

## Pays couverts

| Pays          | Code | Devise |
| ------------- | ---- | ------ |
| Côte d'Ivoire | CI   | XOF    |

D'autres marchés Orange (Sénégal, Mali, Burkina Faso…) sont sur la roadmap post-launch.

## URLs

| Type        | URL                                                            |
| ----------- | -------------------------------------------------------------- |
| Portail dev | [developer.orange.com](https://developer.orange.com)           |
| Token OAuth | `https://api.orange.com/oauth/v3/token`                        |
| Webpay      | `https://api.orange.com/orange-money-webpay/dev/v1/webpayment` |
| USSD client | `*144#`                                                        |

## Credentials requis

À renseigner dans **Settings → Stores → Orange** :

| Champ           | Type     | Description                                              |
| --------------- | -------- | -------------------------------------------------------- |
| `client_id`     | text     | Identifiant OAuth de votre application Orange Developer. |
| `client_secret` | password | Secret OAuth associé.                                    |
| `merchant_key`  | text     | Clé marchand fournie par Orange après activation Webpay. |

## Particularités

* **OAuth client\_credentials** : Orange exige un flow `grant_type=client_credentials` avec un corps `application/x-www-form-urlencoded` (pas du JSON). SandPay gère ça via le helper partagé `oauthClientCredentials`.
* L'authentification combine Basic auth (`client_id:client_secret` en base64) sur le token endpoint, puis Bearer sur les appels Webpay.
* Réponse Webpay : `pay_token` (string) et `payment_url` (string). SandPay stocke le `pay_token` comme `provider_tx_id`.
* Webpay est un flow **par redirection** : SandPay simule ce parcours — l'utilisateur serait normalement redirigé vers `payment_url` pour saisir son PIN.
* Les callbacks de retour (`return_url`, `cancel_url`, `notif_url`) pointent vers `sandpay.dev/orange/*` côté sandbox.
* Le champ `lang: "fr"` est forcé pour les marchés francophones.

## Voir aussi

* [Scénarios](/fr/scenarios) — driver de résultat indépendant de l'opérateur
* [MTN](/fr/operators/mtn), [Moov](/fr/operators/moov), [Airtel](/fr/operators/airtel)
