# Accept a payment with PayPay

Learn how to set up your integration with PayPay.

# Checkout


> Stripe automatically presents your customers payment method options by evaluating their currency, payment method restrictions, and other parameters. We recommend that you configure your payment methods from the Stripe Dashboard using the instructions in [Accept a payment](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=stripe-hosted).
> 
> If you want to continue manually configuring the payment methods you present to your customers with Checkout, use this guide. Otherwise, update your integration to [configure payment methods in the Dashboard](https://docs.stripe.com/payments/dashboard-payment-methods.md).

PayPay is a single-use payment method that requires customers to authenticate their payment. Customers pay by being redirected from your website or app, authorizing the payment with PayPay, then returning to your website or app. You get immediate notification of whether the payment succeeded or failed.

## Determine compatibility

**Supported business locations**: JP

**Supported currencies**: `jpy`

**Presentment currencies**: `jpy`

**Payment mode**: Yes

**Setup mode**: No

**Subscription mode**: No

To support PayPay payments, a Checkout Session must satisfy all of the following conditions:

- *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.

- The total amount must be between 50 JPY and 1,000,000 JPY.

## Accept a payment

> Build an integration to [accept a payment](https://docs.stripe.com/payments/accept-a-payment.md?integration=checkout) with Checkout before using this guide.

This guide describes how to enable PayPay and shows the differences between accepting a card payment and using PayPay.

Important: Don’t pass `payment_method_types` when creating Checkout Sessions. Instead, enable payment methods in the Dashboard and use dynamic payment methods. Stripe determines which payment methods to show based on currency, amount, and customer location. See https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods for details.

### Enable PayPay as a payment method

[Enable PayPay](https://dashboard.stripe.com/settings/payment_methods) in your Dashboard. With [dynamic payment methods](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md), Stripe automatically displays PayPay to eligible customers. If you’re currently specifying `payment_method_types`, see the [migration guide](https://docs.stripe.com/payments/dashboard-payment-methods.md).

When creating a new [Checkout Session](https://docs.stripe.com/api/checkout/sessions.md), make sure all `line_items` use the same currency.

#### Manage payment methods from the Dashboard

Create a PaymentIntent on your server with an amount and currency. In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default. You can manage payment methods from the [Dashboard](https://dashboard.stripe.com/settings/payment_methods). Stripe handles the return of eligible payment methods based on factors such as the transaction’s amount, currency, and payment flow. Make sure **PayPay** is turned on in the [payment methods settings](https://dashboard.stripe.com/settings/payment_methods) page.

#### Manually list payment methods

#### Ruby

```ruby
client.v1.checkout.sessions.create({
  mode: 'payment',
  payment_method_types: ['card', 'paypay'],
  line_items: [{
    price_data: {
      # To accept `paypay`, all line items must have currency:jpy
      currency: 'jpy',
      product_data: {
        name: 'T-shirt'
      },
      unit_amount: 1000
    },
    quantity: 1
  }],
  success_url: 'https://example.com/success'
})
```

### 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 PayPay as the payment method and click the **Pay** button.

## See also

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

