The payment simulator (payment-simulator) is a test provider for non-card payments. It uses the TRX_TYPE_PAYMENT feature and the POST /api/transactions/payment endpoint.
Methods
The simulator accepts the methods below. Send the id in options.payment_method_type.
Local payment methods
| id | Method | Currency |
|---|---|---|
blik |
BLIK | PLN |
sofort |
Sofort | EUR, GBP |
ideal |
iDEAL | EUR, GBP |
mybank |
MyBank | EUR, GBP |
multibanco |
Multibanco | EUR, GBP |
paysafecard |
Paysafecard | EUR, GBP |
skrill |
Skrill | EUR, GBP |
neteller |
Neteller | EUR, GBP |
rapid_transfer |
Rapid Transfer | EUR, GBP |
epay_bg |
epay.bg | EUR, GBP |
mbway |
MB WAY | EUR, GBP |
vodafone_cash |
Vodafone Cash | EGP |
orange_cash |
Orange Money | EGP |
etisalat_cash |
Etisalat Cash | EGP |
instapay |
InstaPay | EGP |
axis_pay |
AxisPay | EGP |
we_pay |
WE Pay | EGP |
cash |
Cash (Egypt) | EGP |
Other methods
| id | Method |
|---|---|
payment_open_banking |
Open Banking |
payment_upi |
UPI |
payment_wallets |
Wallets |
payment_bank_transfr |
Bank Transfer |
payment_qr_code |
QR Code |
google-pay-redirect |
Google Pay, redirect |
apple-pay-redirect |
Apple Pay, redirect |
interac-redirect |
Interac, redirect |
openbanking-redirect |
Open Banking, redirect |
Spelling
The ids are exact. payment_bank_transfr has no "e" and rapid_transfer, epay_bg and axis_pay use underscores, while google-pay-redirect uses hyphens.
Request
Use the normal payment request and add the method id in options.
{
"terminal_id": "TERM001",
"reference": "ORDER-123456",
"method": "WALLETS",
"amount": 10000,
"currency": "PLN",
"country": "PL",
"customer_ip": "203.0.113.10",
"return_url": "https://shop.example/return",
"error_url": "https://shop.example/error",
"cancel_url": "https://shop.example/cancel",
"options": { "payment_method_type": "blik" }
}
The response carries a redirect.url. Send the customer's browser there.
What happens next
- The customer lands on a simulator page named after the method, with Approve and Decline buttons.
- The button sets the transaction to
APPROVEDorDECLINED, as a provider webhook would. - The browser goes back to your
return_url(orerror_url), and your webhook and status checks report the result as usual.
The page only works for a transaction that was routed to a simulator with that method id. Any other transaction id or method returns a 404.
Currency check
Local methods take only their own currencies (see the table above). In another currency:
- the request is declined with a message such as BLIK: currency EUR not supported;
- a hosted payment page session does not offer the method.
Methods without a redirect
For the methods that don't redirect, the simulator answers from metadata, using the keys on the Simulator page (response_code, response_message and so on). Without metadata the payment is approved.