> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Asia-Pacific Payment Methods

> Accept GCash in the Philippines, Alipay HK and FPS in Hong Kong, and Touch 'n Go in Malaysia on one-time payments, billed in each market's local currency.

Let customers in the Philippines, Hong Kong, and Malaysia pay with the wallet or bank transfer they use every day. Dodo Payments supports **GCash** (Philippines), **Alipay HK** and **FPS** (Hong Kong), and **Touch 'n Go** (Malaysia) on one-time payments. Each method is billed in its local currency, and the customer pays by scanning a QR code shown at checkout.

<Note>
  This page covers the Philippines, Hong Kong, and Malaysia. For other Asian markets, see [India](/features/payment-methods/india) for UPI and Rupay, [South Korea](/features/payment-methods/south-korea) for Kakao Pay, Naver Pay, and PAYCO, and [WeChat Pay](/features/payment-methods/wechat) for Chinese customers.
</Note>

## Why Asia-Pacific Wallets Matter

<CardGroup cols={3}>
  <Card title="Wallet-First Markets" icon="wallet">
    GCash is the most popular digital wallet in the Philippines, and Touch 'n Go is the largest e-wallet in Malaysia.
  </Card>

  <Card title="Low Card Penetration" icon="credit-card">
    Credit card use is low in the Philippines compared with card-first markets. Local wallets and bank transfers reach customers that a card-only checkout misses.
  </Card>

  <Card title="Instant Settlement" icon="bolt">
    FPS runs 24 hours a day in Hong Kong, and funds reach the payee almost immediately, so checkout can confirm the payment while the customer waits.
  </Card>
</CardGroup>

## Supported Methods

The table lists each method's market, billing currency, and minimum amount. The minimum is the checkout minimum for that currency, so it applies to every payment method on a checkout in that currency.

| Method | Country | Billing Currency | Subscriptions | Min Amount |
| :- | :- | :- | :-: | :- |
| **GCash** | Philippines | PHP | No | 50.00 PHP |
| **Alipay HK** | Hong Kong | HKD | No | 4.00 HKD |
| **FPS** | Hong Kong | HKD, CNY | No | 4.00 HKD / 4.00 CNY |
| **Touch 'n Go** | Malaysia | MYR | No | 4.00 MYR |

<Warning>
  **All four methods are one-time only.** None of them appear on subscription checkouts or support any other recurring charge. Include `credit` and `debit` on subscription checkouts so customers in these markets can still sign up.
</Warning>

<Info>
  Customers pay in their local currency. Payments made with these four methods settle to your **USD** wallet. Card payments on the same checkout settle in USD.
</Info>

### Method Details

<AccordionGroup>
  <Accordion title="GCash (Philippines)">
    GCash is the most popular e-wallet in the Philippines. At checkout, the customer selects **GCash**, clicks **Pay**, and scans the QR code with the GCash app to approve the payment.

    Offered on **one-time** checkouts billed to the **Philippines (`PH`)** in **PHP**.
  </Accordion>

  <Accordion title="Alipay HK (Hong Kong)">
    Alipay HK is the Hong Kong edition of Alipay. It serves the local market and settles in Hong Kong dollars. It is a separate method from the mainland China Alipay product. Checkout labels it **AlipayHK**.

    Offered on **one-time** checkouts billed to **Hong Kong (`HK`)** in **HKD**. Alipay HK settles in HKD only, so it does not appear on a CNY checkout, even when the billing country is Hong Kong.
  </Accordion>

  <Accordion title="FPS (Hong Kong)">
    FPS (Faster Payment System) is Hong Kong's real-time payment system, launched by the Hong Kong Monetary Authority. It connects banks and e-wallets, runs 24 hours a day, and supports Hong Kong dollars and Chinese yuan. The customer scans the QR code with a banking or e-wallet app, and the funds arrive almost immediately.

    Offered on **one-time** checkouts billed to **Hong Kong (`HK`)** in either **HKD** or **CNY**.
  </Accordion>

  <Accordion title="Touch 'n Go (Malaysia)">
    Touch 'n Go is the largest e-wallet in Malaysia. The customer scans the QR code with the Touch 'n Go app and confirms the payment there.

    Offered on **one-time** checkouts billed to **Malaysia (`MY`)** in **MYR**.
  </Accordion>
</AccordionGroup>

## Configuration

### API Method Types

Pass these values in `allowed_payment_method_types`:

| Type | Description |
| :- | :- |
| `gcash` | GCash wallet (Philippines) |
| `ali_pay_hk` | Alipay HK wallet (Hong Kong) |
| `fps` | FPS real-time bank transfer (Hong Kong) |
| `touch_n_go` | Touch 'n Go wallet (Malaysia) |

### Example: Philippines Checkout

```javascript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
  allowed_payment_method_types: ['gcash', 'credit', 'debit'],
  billing_currency: 'PHP',
  billing_address: {
    country: 'PH',
    zipcode: '1226'
  },
  return_url: 'https://example.com/success'
});
```

### Example: Hong Kong Checkout

```javascript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
  allowed_payment_method_types: ['ali_pay_hk', 'fps', 'credit', 'debit'],
  billing_currency: 'HKD',
  billing_address: {
    country: 'HK',
    zipcode: '999077'
  },
  return_url: 'https://example.com/success'
});
```

### Example: Malaysia Checkout

```javascript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
  allowed_payment_method_types: ['touch_n_go', 'credit', 'debit'],
  billing_currency: 'MYR',
  billing_address: {
    country: 'MY',
    zipcode: '50450'
  },
  return_url: 'https://example.com/success'
});
```

### Requirements

A method appears at checkout only when all of these are true:

1. The **billing country** matches the method's market: `PH` for GCash, `HK` for Alipay HK and FPS, `MY` for Touch 'n Go.
2. The **billing currency** matches the method: PHP, HKD (or CNY for FPS), or MYR.
3. The checkout is a **one-time payment**, not a subscription.
4. **[Adaptive Currency](/features/adaptive-currency)** is enabled. Without it, `billing_currency` is ignored, and checkout can't bill in PHP, HKD, CNY, or MYR.

<Warning>
  If Adaptive Currency is disabled, customers in these markets are not billed in their local currency, and none of these methods appear.
</Warning>

## Testing

<Steps>
  <Step title="Enable test mode">
    Turn off the **Live Mode** switch in the dashboard sidebar, and use API keys created in test mode.
  </Step>

  <Step title="Set the billing country and currency">
    Create a one-time checkout with the billing address country and billing currency for the method you are testing:

    | Method | Billing Country | Billing Currency |
    | :- | :- | :- |
    | GCash | `PH` | `PHP` |
    | Alipay HK | `HK` | `HKD` |
    | FPS | `HK` | `HKD` or `CNY` |
    | Touch 'n Go | `MY` | `MYR` |

    Include the method type in `allowed_payment_method_types`. These methods are not offered on subscription checkouts.
  </Step>

  <Step title="Select the method and confirm">
    Select the payment method at checkout and click **Pay**. A QR code opens in a full-screen overlay with a 10-minute countdown, and checkout checks the payment status while the overlay is open.
  </Step>

  <Step title="Verify the checkout behavior">
    Confirm that the method appears only for the matching country and currency, and that the QR code renders.
  </Step>
</Steps>

<Note>
  Test-mode QR codes come from the wallet provider's test environment and may behave differently from a live payment.
</Note>

## Best Practices

<AccordionGroup>
  <Accordion title="Lead with the local wallet">
    In the Philippines and Malaysia, many customers expect to pay with a local wallet. List GCash or Touch 'n Go next to cards on checkouts for these markets.
  </Accordion>

  <Accordion title="Offer both Hong Kong methods">
    Alipay HK and FPS serve different customers: wallet users and bank-transfer users. Include both on HKD checkouts so each customer sees the method they prefer.
  </Accordion>

  <Accordion title="Keep cards on subscription checkouts">
    Every method on this page is one-time only, so a subscription checkout that lists only local wallets has no method to show. Include `credit` and `debit` for recurring plans.
  </Accordion>

  <Accordion title="Match currency to region">
    These methods require their local billing currency. If your catalog is priced in USD or EUR, enable Adaptive Currency so customers are quoted and billed in PHP, HKD, CNY, or MYR.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Method not appearing at checkout">
    **Check:**

    1. Is the billing country `PH`, `HK`, or `MY`, matching the method?
    2. Is the billing currency PHP, HKD, CNY, or MYR, matching the method?
    3. Is this a one-time payment? None of these methods appear on subscriptions.
    4. Is the method (`gcash`, `ali_pay_hk`, `fps`, or `touch_n_go`) included in `allowed_payment_method_types`?
    5. Is Adaptive Currency enabled?
    6. Does the amount meet the currency minimum in [Supported Methods](#supported-methods)?

    **Solution:** Remove `allowed_payment_method_types` temporarily to see every eligible method, then find the condition that fails.
  </Accordion>

  <Accordion title="Alipay HK missing on a CNY checkout">
    **Cause:** Alipay HK settles in HKD only. A checkout billed to Hong Kong in CNY offers FPS but never Alipay HK.

    **Solution:** Bill in HKD to offer Alipay HK, or include `fps` for CNY checkouts in Hong Kong.
  </Accordion>

  <Accordion title="Wallet missing on a subscription">
    **Cause:** GCash, Alipay HK, FPS, and Touch 'n Go are one-time only and are not offered for recurring billing.

    **Solution:** Use `credit` and `debit` for subscriptions in these markets.
  </Accordion>

  <Accordion title="Payment not confirming">
    **Cause:** The customer must scan the QR code and approve the payment in a wallet or banking app. If the customer closes the app before approving, the payment stays incomplete.

    **Solution:** Use webhooks for the final payment status instead of the return redirect. See the [Webhooks guide](/developer-resources/webhooks).
  </Accordion>
</AccordionGroup>

## Related Pages

<CardGroup cols={2}>
  <Card title="Payment Methods Overview" icon="credit-card" href="/features/payment-methods">
    See all supported payment methods.
  </Card>

  <Card title="Adaptive Currency" icon="globe" href="/features/adaptive-currency">
    Bill customers in their local currency, including PHP, HKD, CNY, and MYR.
  </Card>

  <Card title="Checkout Guide" icon="book" href="/developer-resources/checkout-session">
    Complete checkout implementation guide.
  </Card>

  <Card title="Testing Process" icon="flask" href="/miscellaneous/testing-process">
    Test data and checkout testing guidance.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.