I have strict firewall settings, so I can whitelist IPs only. How can I access the backend in this case?

Some shops or locations where you want to deploy card readers have very restrictive network setups. When you are running behind a restrictive firewall setup, you are now able to configure the SDK to use remote endpoints with well known IPs.

This setup should only be used if you have no opportunities to whitelist DNS names, which are:

  • api.pwtx.info
  • test.pwtx.info
  • ctpe.net
  • test.ctpe.net

The static IP solution offers the same throughput as our DNS version, but due to the additional hop over a static gateway, the latencies might increase slightly. We suggest to only use this setup in case you cannot avoid it!

For our TEST environment you need to whitelist the following IPs

  • 213.131.241.50
  • 213.131.241.51
  • 213.131.241.52
  • 185.147.172.64/26 (Starting June 2017)
  • 34.248.51.23 (Starting August 2017)
  • 52.17.141.42 (Starting August 2017)
  • 54.77.154.196 (Starting August 2017)
  • 52.18.81.151 (Starting August 2017)

To access our LIVE environment through a static IP gateway you need to whitelist the following IPs

  • 212.111.45.0/24
  • 185.147.172.128/25 (Starting June 2017)
  • 185.147.174.128/25 (Starting June 2017)
  • 52.30.218.70 (Starting August 2017)
  • 52.212.17.247 (Starting August 2017)
  • 52.211.44.162 (Starting August 2017)
  • 34.249.28.123 (Starting August 2017)

If you want to test your setup, try accessing https://fixed.api.pwtx.info/status (e.g. with your browser). You should see a basic status page. 

To make the SDK switch to the static IPs, simply change the provider mode. This is supported from version 2.7.0 onwards.

Android SDK setup example for Test:

final TransactionProvider transactionProvider = Mpos.createTransactionProvider(this, ProviderMode.TEST_FIXED, "MERCHANT_IDENTIFIER", "MERCHANT_SECRET_KEY");

Android SDK setup example for Live:

final TransactionProvider transactionProvider = Mpos.createTransactionProvider(this, ProviderMode.LIVE_FIXED, "MERCHANT_IDENTIFIER", "MERCHANT_SECRET_KEY");

iOS SDK setup example for Test:

MPTransactionProvider *transactionProvider = [MPMpos transactionProviderForMode:MPProviderModeTEST_FIXED merchantIdentifier:@"MERCHANT_IDENTIFIER" merchantSecretKey:@"MERCHANT_SECRET_KEY"];

iOS SDK setup example for Live:

MPTransactionProvider *transactionProvider = [MPMpos transactionProviderForMode:MPProviderModeLIVE_FIXED merchantIdentifier:@"MERCHANT_IDENTIFIER" merchantSecretKey:@"MERCHANT_SECRET_KEY"];

.NET setup example for Test:

Client.ConnectAndLogin(MERCHANT_IDENTIFIER, MERCHANT_SECRET, Environment.TEST_FIXED, (devices, error) =>{ /*...*/ });

.NET setup example for Live:

Client.ConnectAndLogin(MERCHANT_IDENTIFIER, MERCHANT_SECRET, Environment.LIVE_FIXED, (devices, error) =>{ /*...*/ });

P3 setup example for Test:

{
	"type": "LOGIN_MERCHANT_REQUEST",
	"resource": "/",
	"loginMerchantRequest": {
		"providerMode": "TEST_FIXED",
		"merchantIdentifier": "your-merchant-identifier",
		"merchantSecret": "your-merchant-secret"
	}
}

P3 setup example for Live:

{
	"type": "LOGIN_MERCHANT_REQUEST",
	"resource": "/",
	"loginMerchantRequest": {
		"providerMode": "LIVE_FIXED",
		"merchantIdentifier": "your-merchant-identifier",
		"merchantSecret": "your-merchant-secret"
	}
}

Can we help you?

If you cannot find your answer, contact us and we'll get in touch with you soon.