# Testing

Before accepting live payments, we highly recommend testing your integration to ensure that it works correctly. Our test mode allows you to simulate payments and test the functionality of your integration without making any actual transactions.

To simulate a payment, you can use special test values provided by our platform. This will allow you to confirm that your integration is working as expected before going live. Please note that test payments are only valid on our test platform.

### How to use test mode?

From your account go to **Configuration** > **API Keys & Tokens** > **Access token**, you must generate the **Test Mode** access token.&#x20;

{% hint style="info" %}
You can use test mode even if your account has not yet been activated.
{% endhint %}

{% hint style="warning" %}
Rate limits

If you are testing your requests in the sandbox environment and begin to receive **429** HTTP errors, it is recommended to decrease the frequency of your requests. These errors may occur due to our rate limiter being stricter in test mode compared to production mode.
{% endhint %}

{% hint style="warning" %}
Transaction limits

Please note that there is a transaction limit per x hours in the sandbox environment to prevent misuse and ensure system stability. This limit restricts the number of transactions that can be processed within a specific time frame. Exceeding this limit may result in rejected transactions. It is important to keep track of the transaction volume and ensure it stays within the allowed limits.
{% endhint %}

{% hint style="info" %}
All mobile numbers used in the **Testing** documentation are owned by [Plutu](https://plutu.ly)
{% endhint %}

### Adfali Test

**Success**

<table><thead><tr><th width="249.46769366219854">Mobile number</th><th width="150">OTP</th><th>Status</th><th data-hidden></th></tr></thead><tbody><tr><td>0913632323</td><td>1111</td><td>Success</td><td></td></tr></tbody></table>

&#x20;**Errors**

<table><thead><tr><th width="244.66666666666663">Mobile number</th><th width="150">OTP</th><th>Error code</th><th data-hidden></th></tr></thead><tbody><tr><td>0913632323</td><td>Any OTP</td><td>CONFIRMATION_ERROR</td><td></td></tr><tr><td>0923632323</td><td>Any OTP</td><td>CHECK_BANK_ACCOUNT</td><td></td></tr><tr><td>Any mobile number</td><td>Any OTP</td><td>NOT_SUBSCRIBED</td><td></td></tr></tbody></table>

You can review the [Errors](https://docs.plutu.ly/errors#adfali-errors) section for all possible errors

### Sadad Test

**Success**

<table><thead><tr><th width="202.2850551201142">Mobile number</th><th width="150">Birth year</th><th width="150">Code</th><th>Status</th></tr></thead><tbody><tr><td>0913632323</td><td>Any</td><td>111111</td><td>Success</td></tr></tbody></table>

&#x20;**Errors**

<table><thead><tr><th width="195">Mobile number</th><th width="150">Birth year</th><th width="150">Code</th><th>Error code</th></tr></thead><tbody><tr><td>0913632323</td><td>Any</td><td>888888</td><td>OTP_EXPIRED</td></tr><tr><td>0913632323</td><td>Any</td><td>999999</td><td>NOT_ALLOWED_AMOUNT</td></tr><tr><td>0913632323</td><td>Any</td><td>Any OTP</td><td>INVLIAD_OTP</td></tr><tr><td>Any mobile number</td><td>Any</td><td>Any OTP</td><td>INVALID_MOBILE_NUMBER_OR_BIRTH_YEAR</td></tr></tbody></table>

You can review the [Errors](https://docs.plutu.ly/errors#sadad-errors) section for all possible errors

### Local Bank Card Test

Prior to accepting live payments through the Local Bank Card service provider, we advise you to test your integration to ensure that it functions properly. Our test platform simulates payment transactions for testing purposes only and does not involve the actual transfer of funds.

{% hint style="success" %}
To test a successful transaction, click **Pay Now** on the checkout page and the transaction will complete after which you will be redirected back to the return URL.
{% endhint %}

{% hint style="danger" %}
To test the cancellation status, after clicking **Cancel**, the transaction will be canceled and then redirected back to the return URL.
{% endhint %}

### T-Lync Test

When integrating with T-Lync for accepting payments, we recommend testing your integration using our test mode. This will allow you to simulate payment transactions without involving the T-Lync service. Test payments are only valid for testing purposes and do not involve any real transactions.

{% hint style="success" %}
To test a successful transaction, select the payment method and click **Pay Now** on the checkout page, the transaction will complete after which you will be redirected back to the return URL.
{% endhint %}

### MPGS Test

We recommend testing your MPGS integration through Plutu before accepting live payments to ensure it is working correctly. You can use our test platform to simulate payment transactions, but please note that test payments are not valid for actual transactions.

{% hint style="success" %}
To simulate a successful transaction, click the **Pay Now** button on the checkout page. The transaction will be processed and you will be redirected to the return URL once it is completed.
{% endhint %}

{% hint style="danger" %}
To test the cancellation status, click the **Cancel** button during the checkout process. The transaction will then be canceled and you will be redirected back to the return URL.
{% endhint %}
