• NOTICE: Xfers will be undergoing a prolonged service disruption to its Maybank account from the 25th of May 2017. Here's an update onthe status.

Getting Started With Testing 

Before making your integration live, please create a testing environment and account using our documentation. If you need help after reading this, check out our commonly asked questions or request invite to chat with our developers on our private Google Group. 

Getting Started With Testing 

1. Types of API Keys
2. Testing 
3. Converting to Live Account 

1. Types of API Keys 

Generate an API V2 and V3 key
API Keys
There are so many different API keys. Which ones should I use? 

The majority of our APIs uses this, including Shopify plugin. For our SDKs, you can set this by:

\Xfers\Xfers::setApiKey('the-key'); # PHP
xfers.api_key = 'the-key' # Python
Xfers.set_api_key 'the-key' # Ruby
Xfers.apiKey = "the-key"; # Java

What the above does is to set a HTTP header in subsequent API requests to Xfers, like so:


Only used for Xfers Connect. Need this set of special keys to go through Xfers Connect as it requires higher privileges due to access to other customers' xfers wallet. https://docs.xfers.io/#xfers-connect

For our SDKs, you pass in the app_api_key as params to the connect.authorize and connect.get_token functions. What the above does is to set a HTTP header in that particular API request to Xfers, like so: X-XFERS-APP-API-KEY: THE-APP-API-KEY


Our legacy V2 API keys. These API keys are only used for our WooCommerce, Opencart and Magento plugins.

user_api_token N/A

This is NOT available in your dashboard. This is only gotten from the connect flow and is actually one of your customer's X-XFERS-USER-API-KEY.

Some of the things you can do with this are listed here: https://docs.xfers.io/#what's-next

Why do I not see the V3 X-XFERS-USER-API-KEY in my dashboard? 
You can generate the key by clicking on the green "Create Token" button. 
Why do I not see the V2 X-XFERS-USER-API-KEY in my dashboard? 
You would need to first convert your account to a merchant account using this link: https://sandbox.xfers.io/merchant_conversion

2. Testing

Create a sandbox account at https://sandbox.xfers.io/account_registration if you do not already have one.

Use the sandbox endpoints. The rest is the same. Note that sandbox and live environments are COMPLETELY independent. Any accounts you created on one will not appear on the other.

Since sandbox is only for testing, when you want to do a top up, you do not have to actually transfer in the money from a bank. Use the “Simulate bank transfer” box at the bottom of your screen.

Test Credit Card Numbers

Genuine card information cannot be used in sandbox accounts. Instead, use any of the following test cards to create a successful payment:
4242424242424242 Visa
4012888888881881 Visa
4000056655665556 Visa (debit)
5555555555554444 Mastercard
5200828282828210 Mastercard (debit)
5105105105105100 Mastercard (prepaid)
378282246310005 American Express
371449635398431 American Express

Simulate Bank Transfers

To simulate a bank transfer in the sandbox environment, we have provided a “Simulate Bank Transfer” box at the bottom of every page in https://sandbox.xfers.io. The description field (Desc) is what you would write in the comments section when doing an actual bank transfer. It has been pre-filled with the mobile number of your xfers sandbox account for convenience.

Simply type in the amount you want to transfer and click the “Simulate Bank Transfer” button. Once the page auto-refreshes, your Xfers wallet will increase in value by the amount you entered.
Bank Transfer Simulate

Callback Notifications

See http://docs.xfers.io/#payment-notifications.

If notify_url is passed in when creating a charge, Xfers will send a POST request to that URL on success/failure/expiration of the charge.

Please acknowledge the callback by providing a HTTP 200 status.

Success - Charge is successfully paid for by the user and money is transferred to your platform’s Xfers Wallet.
Failure - User has cancelled the charge
Expiration - Charge has expired (default 48 hours. Can set it using the hrs_to_expirations param when creating a charge) 

3. From Testing To Live 

I've finished testing on sandbox. What should I do now? 
You now need to create a Xfers account, sign in and 
1. Verify your NRIC at https://www.xfers.io/verify_nric
2. Upgrade your account to a merchant account by going to https://www.xfers.io/account_settings and click on convert to merchant and upload the necessary information.
3. Provide us with your business details at https://www.xfers.io/verification_merchant
4. To activate credit card processing, add a bank account with Xfers and inform [email protected] when it is done. We will proceed to activate the feature.
5. Change all endpoints from sandbox to production (including the corresponding API keys) by referring to https://docs.xfers.io/#apis-endpoints