# Accept a WeChat Pay payment

Use the Payment Intents and Payment Methods APIs to accept WeChat Pay, a digital wallet popular with customers from China.

> This guide helps you integrate WeChat Pay in your online checkout flow. For in-person payments with Stripe Terminal, visit [Additional payment methods](https://docs.stripe.com/terminal/payments/additional-payment-methods.md).

# Checkout


WeChat Pay is a [single-use](https://docs.stripe.com/payments/payment-methods.md#usage) payment method. Customers pay with WeChat Pay by scanning the QR code that they see during Checkout. Completing the payment redirects customers back to your website.

## Determine compatibility

**Supported business locations**: AU, AT, BE, BG, CA, CY, CZ, DK, EE, FI, FR, DE, GR, HK, HU, IE, IT, JP, LV, LT, LU, MT, NL, NO, PL, PT, RO, SG, SK, SI, ES, SE, CH, GB, US

**Supported currencies**: `aud, cad, cny, eur, gbp, hkd, jpy, sgd, usd, dkk, nok, sek, chf`

**Presentment currencies**: `aud, cad, cny, eur, gbp, hkd, jpy, sgd, usd, dkk, nok, sek, chf`

**Payment mode**: Yes

**Setup mode**: Not yet

**Subscription mode**: Not yet

A Checkout Session must satisfy all of the following conditions to support WeChat Pay payments:

- *Prices* (Prices define how much and how often to charge for products. This includes how much the product costs, what currency to use, and the interval if the price is for subscriptions) for all line items must be in the same currency. If you have line items in different currencies, create separate Checkout Sessions for each currency.
- You can only use one-time line items (WeChat Pay Checkout Sessions don’t support recurring *subscription* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) plans).

## Accept a payment

> This guide builds on the foundational [accept a payment](https://docs.stripe.com/payments/accept-a-payment.md?integration=checkout) Checkout integration.

### Enable WeChat Pay as a payment method

When creating a new [Checkout Session](https://docs.stripe.com/api/checkout/sessions.md), you need to:

1. [Enable WeChat Pay](https://dashboard.stripe.com/settings/payment_methods) in your Dashboard. Stripe automatically displays WeChat Pay to eligible customers using [dynamic payment methods](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md). If you currently specify `payment_method_types`, see the [migration guide](https://docs.stripe.com/payments/dashboard-payment-methods.md).
2. Pass the `client` as `web` in the `payment_method_options.wechat_pay` hash.
3. Make sure all your `line_items` use the same currency.

#### Stripe-hosted page

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "line_items[0][price_data][currency]=sgd" \
  -d "line_items[0][price_data][product_data][name]=T-shirt" \
  -d "line_items[0][price_data][unit_amount]=2000" \
  -d "line_items[0][quantity]=1" \
  -d mode=payment \
  -d "payment_method_options[wechat_pay][client]=web" \
  --data-urlencode "success_url=https://example.com/success"
```

#### Full embedded page

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "line_items[0][price_data][currency]=sgd" \
  -d "line_items[0][price_data][product_data][name]=T-shirt" \
  -d "line_items[0][price_data][unit_amount]=2000" \
  -d "line_items[0][quantity]=1" \
  -d mode=payment \
  -d "payment_method_options[wechat_pay][client]=web" \
  --data-urlencode "return_url=https://example.com/return" \
  -d ui_mode=embedded_page
```

### Fulfill your orders

After accepting a payment, learn how to [fulfill orders](https://docs.stripe.com/checkout/fulfillment.md).

## Test your integration 

When testing your Checkout integration, select WeChat Pay as the payment method and click the **Pay** button, which renders a QR code.

Scanning the QR code while testing routes you to a Stripe hosted page, which allows you to simulate authorizing the test payment.

## See also

- [Checkout fulfillment](https://docs.stripe.com/checkout/fulfillment.md)
- [Customizing Checkout](https://docs.stripe.com/payments/checkout/customization.md)

