Sandbox

The Sandbox environment is a real system with exactly the same applications and APIs as the Live environment. Your Sandbox account configuration such as Payment Methods, Currencies and so on - is based on your business needs which we gather from you during the Merchant enrollment process. In our Sandbox environment you can make test payments using all payment methods configured on your Sandbox account.

Sandbox simulates specific behaviours of given payment methods. It replicates communication with the Payment suppliers as accurately as possible. In this article, you can find all necessary information about how to open your Sandbox account and what is the logic of the Sandbox testing procedures.

Account request

To register your Sandbox account, you will need to complete and submit the registration form. Once this is done, we will contact you to set up up your account according to your business needs.

API credentials

Once your Sandbox account is established, log into Merchant Back-office Sandbox and go to Home ‣ Info panel. Once there, copy your Merchant ID and then continue to the Secret Key widget to copy your Merchant Secret key.

Test integration

It is important to test your integration before going live.

Within the Sandbox environment we provide simple rules to simulate incoming payment scenarios so that you can test your integration. You can use this system to ensure your test integration is working as expected, before you switch your integration to the Live environment.

We use different amounts to test payment processing capacity and results in the Sandbox environment.

You should test following scenarios:

Happy flow

When you send the payment with an amount 51 and higher, Payment is successfully processed.

Endpoint GET /payins/{idPayin} returns status SUCCESS.

Required amount

The rules below allow you to simulate a scenario where the system modifies the required amount for payments identification purposes.

When you send the payment with paymentMethod = OfflineMethod and an amount equals to 50 then payment request returns moneyRequired attribute in paymentMethodResponse object set with decrement amount and Payment is successfully processed.

Endpoint GET /payins/{idPayin} returns status SUCCESS.

When you send the payment with paymentMethod = PROMPTPAY OR DUITNOW then, payment request returns moneyRequired attribute in paymentMethodResponse object set with decrement amount.

Endpoint GET /payins/{idPayin} returns moneyRequired attribute in paymentMethodResponse object set with decrement amount as well.

Non-happy flow

Processing failure

This flow allows you to simulate a situation where we have received a payment but the payment process failed due to technical issues (such as connectivity errors).

When you send the payment with an amount between 3 and less than 20, Payment fails to be processed in a very short period of time (few seconds).

Endpoint GET /payins/{idPayin} returns status FAILED.

Different amount received

This flow allows you to simulate a situation where we have received a payment but with different amount than it was requested in payment.

When you send the payment with an amount between 20 and less than 30, Payment fails to be processed in a very short period of time (few seconds).

Endpoint GET /payins/{idPayin} returns status FAILED.

When you send the payment with an amount between 30 and less than 40, Payment fails to be processed in a very short period of time (few seconds).

Endpoint GET /payins/{idPayin} returns status SUCCESS.

Incoming Payment expiration

This flow allows you to simulate a situation where we have received a payment but the payment process expired. This can happen for various reasons such as customer inactivity, a customer leaving the payment before it has processed or Payment processing has time out.

You can simulate this situation when you send a payment with an amount equals to 1. Then the Payment failure takes a longer time register (around 2 hours after the payment request expires).

Endpoint GET /payins/{idPayin} returns status PROCESSING before the payment request expires.

Endpoint GET /payins/{idPayin} returns status FAILED after the payment request expires.

Note

For all testing flows the CallBack is sent to the CallbackURL (specified during incoming payment creation via POST /payins/{idPayin} when the status is changed to SUCCESS or FAILED.