# Guide iPayMoney Sandbox

## Sandbox

La sandbox IpayMoney permet de tester l'API sans utiliser des utilisateurs réels.

### Numéros de téléphone de test

Voici les numeros de test à utiliser pour les paiements mobile.

| MSISDN      | Scénario             |
| ----------- | -------------------- |
| 40410000000 | success              |
| 40410000001 | success              |
| 40410000002 | error                |
| 40410000003 | error                |
| 40410000004 | insufficient\_fund   |
| 40410000005 | insufficient\_fund   |
| 40410000006 | declined             |
| 40410000007 | declined             |
| 40410000008 | pending(180secondes) |
| 40410000009 | pending(180secondes) |

## Request a Payment

<mark style="color:green;">`POST`</mark> `https://i-pay.money/api/v1/payments`

#### Headers

| Name                    | Type   | Description                                                                                                                 |
| ----------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------- |
| Ipay-Payment-Type       | string | Doit comporter \***mobile**\* ou \***card**\*                                                                               |
| Ipay-Target-Environment | string | Vous avez le choix en \***sandbox**\* quand vous êtes en environnement sandbox ou \***live**\* quand vous êtes en mode live |
| Authorization           | string | Vous devez envoyer une chaîne de caractère comportant l’expression \***Bearer**\* et votre clé privée                       |
| Content-Type            | string | voici la valeur à envoyer: application/json                                                                                 |

#### Request Body

| Name            | Type   | Description                                                                                       |
| --------------- | ------ | ------------------------------------------------------------------------------------------------- |
| customer\_name  | string | Nom du client                                                                                     |
| currency        | string | **XOF**                                                                                           |
| country         | string | Devez envoyer le code du pays de transaction. Exemple: **BJ** pour le Bénin, **NE** pour le Niger |
| amount          | string | Vous devez entrer un montant supérieur à **100**                                                  |
| transaction\_id | string | Envoyer une réference à la transaction que vous voulez effectuée                                  |
| msisdn          | string | Vous devez mettre l'un des numéro test listés dans le tableau ci-dessus                           |

{% tabs %}
{% tab title="200 En cas de succès" %}

```
{
    "status": "succeeded",
    "reference": "vslfxgawkpkm"
}
```

{% endtab %}

{% tab title="400 Numéro invalid" %}

```
{
    "message": "Bad Request: Incorrect MSISDN| Missing params| Bad Request: Not Allowed Environment|Bad Request: Not Allowed Payment Type|Bad Request: Missing Authentication Key"
}
```

{% endtab %}

{% tab title="401 " %}

```
{    
    status: 401
    message: 'Unauthorized: No Valid Key'
}
```

{% endtab %}

{% tab title="403 " %}

```
{ 
    status: 403, 
    message: 'Forbidden: Environment Not Available' 
}
```

{% endtab %}

{% tab title="406 " %}

```
{ 
    status: 406, 
    message: 'Not Acceptable: Invalid Content Type' 
}
```

{% endtab %}

{% tab title="422 Réference non valide/ ou la référence exite déjà" %}

```
{
    "status": "failed",
    "message": "External Reference Not Valid"
}
```

{% endtab %}
{% endtabs %}

## Get a Payment Status

<mark style="color:blue;">`GET`</mark> `https://i-pay.money/api/v1/payments/#{reference}`

#### Path Parameters

| Name      | Type   | Description                                                               |
| --------- | ------ | ------------------------------------------------------------------------- |
| reference | string | Vous devez entrer la référence que vous avez reçu en réponse lors du Post |

#### Headers

| Name                    | Type   | Description                                                                                                           |
| ----------------------- | ------ | --------------------------------------------------------------------------------------------------------------------- |
| Content-Type            | string | Voici la valeur à envoyer: application/json                                                                           |
| Authorization           | string | Vous devez envoyer une chaîne de caractère comportant l'expression \***Bearer**\* et votre clé privé                  |
| Ipay-Payment-Type       | string | Doit comporter \***mobile**\* ou \***card**\*                                                                         |
| Ipay-Target-Environment | string | Vous avez le choix en \*sandbox\* quand vous êtes en environnement sandbox   ou \*live\* quand vous êtes en mode live |

{% tabs %}
{% tab title="200 " %}

```
{
    "external_reference": "Reference-13409",
    "reference": "vslfxgawkpkm",
    "status": "failed",
    "msisdn": "22787505050"
}
```

{% endtab %}
{% endtabs %}
