diff --git a/commerce_dps_pxpay.inc b/commerce_dps_pxpay.inc
index fe152e2..420d71e 100644
--- a/commerce_dps_pxpay.inc
+++ b/commerce_dps_pxpay.inc
@@ -7,10 +7,22 @@
 
 /**
  * Generate request; if valid, return URL to redirect to.
+ * 
+ * @param  array  $transaction   Transaction array containing request data to DPS
+ * @param  string $currency_code The currency code
+ * 
+ * @return string
  */
-function commerce_dps_pxpay_generate_request($transaction) {
-  // Ensure amount is dd.cc
-  $transaction['amount'] = number_format($transaction['amount'], 2, '.', '');
+function commerce_dps_pxpay_generate_request($transaction, $currency_code) {
+
+  switch ($currency_code) {
+    case 'JPY':
+      $transaction['amount'] = number_format($transaction['amount'], 0, '', '');
+      break;
+    default:
+      $transaction['amount'] = number_format($transaction['amount'], 2, '.', '');
+      break;
+  }
 
   $xml = '<GenerateRequest>';
   $xml .= '  <PxPayUserId>' . $transaction['user_id'] . '</PxPayUserId>';
diff --git a/commerce_dps_pxpay.module b/commerce_dps_pxpay.module
index 820a00b..021308e 100644
--- a/commerce_dps_pxpay.module
+++ b/commerce_dps_pxpay.module
@@ -307,7 +307,7 @@ function commerce_dps_pxpay_order_form($form, &$form_state, $order, $settings) {
     'log'         => $settings['commerce_dps_pxpay_log_transactions'],
   );
 
-  if ($url = commerce_dps_pxpay_generate_request($transaction)) {
+  if ($url = commerce_dps_pxpay_generate_request($transaction, $currency_code)) {
     drupal_goto($url);
   }
   else {
